web-dev-qa-db-ja.com

実行中のシステムから他のハードディスクにUbuntuをインストールする

DVDまたはUSBから起動せずに、接続されている(マウントされていない)ディスクにUbuntuをインストールしたい。目標は、Ubuntuを外部ディスクにインストールし、プラグを抜き、他のコンピューターにプラグインして実行することです。

私はそれが20分などかかることを知っています。私は単にそれを再起動する必要なく、実行中のシステムからそれをしたいです。

私のオプションは何ですか?

編集:より明確にするために、私はこのシナリオを持っています:

  • 私の友人は空のディスクが付属しています
  • 実行中のシステム(Ubuntu)からそのディスクにシステムをインストールします
  • 友人はディスクを自分のマシンに戻し、このインストールされたシステムを起動します。

そのため、USBキーを使用したソリューションや自分のシステムをコピーするソリューションは、必要なものではありません。

5
Ondra Žižka

Ubuntuマシンを使用している場合、実行中のシステムを外付けハードドライブにコピーするだけです。

外付けハードドライブが既にパーティション分割されていると仮定しましょう。この例では、/と/ homeの2つのパーティションを使用します。

$ Sudo mkdir -p /target
$ Sudo mount /media/external-hdd/main /target
$ Sudo sync
$ Sudo cp -ax / /target
$ Sudo mount /media/external-hdd/home /target/home
$ Sudo cp -ax /home /target/home

cp -axは異なるファイルシステムを横断せず、アーカイブされます(権限を保持、シンボリックリンクをたどらないなど)。

次に、ターゲットディスクのgrub設定とfstabを更新する必要があります。 chrootを使用できますが、前に必要なものは次のとおりです。

$ Sudo mount -o bind /sys /target/sys
$ Sudo mount -o bind /proc /target/proc
$ Sudo mount -o bind /dev /target/dev

これで、chrootの準備ができました。

$ Sudo chroot /target
# (now you are in the external HD as root)

ここで、fstabとgrubのUUIDを更新する必要があります。 UUIDを取得するには、次を実行できます。

# blkid

次に、/ etc/fstabで、blkidで取得した適切なIDのUUIDを置き換えます。

最後のステップは、ブート用の構成を更新し、ブートローダーを外部ハードドライブにインストールすることです。私の場合、grubを使用しているので、/boot/grub/menu.lstを編集しています。そこで、# kopt=root=UUID=... roで始まる行を置き換え、UUIDの内容をルートファイルシステムがあるパーティションに置き換える必要があります。

# grub-install /device/name
# update-grub

/ device/nameは外部hddです。

その後、chrootを終了してデバイスをアンマウントできます。

# ^D
$ Sudo umount /target/sys
$ Sudo umount /target/proc
$ Sudo umount /target/dev
$ Sudo umount /target/home
$ Sudo umount /target/

そして、ディスクを使用する準備ができているはずです。一度起動すると、正しくマウント解除されなかったため、fsckが実行される可能性があります(コンテンツをライブでコピーしました)。

5
gpoo

そのためにdebootstrapを使用できます。これはまさに必要なものです。 このリンク をご覧ください。

3
ortang

ISOイメージがある場合は、この記事に記載されている2つのツールのいずれかを使用して、ライブシステムで起動可能なUSBを作成できます。

https://wiki.ubuntu.com/LiveUsbPendrivePersistent

ユニティにUSBを入力するだけで、そのようなディスクを作成するプログラムが表示されます。

2