web-dev-qa-db-ja.com

UbuntuをSSDに転送し、HDDを家に置いておく方法は?

既存のUbuntu Trusty(14.04.1)システム(PPAからインストールされたアプリを含む)をSSDに転送したいと思います。既存のホームディレクトリをハードディスクに保持したい)。最善の方法は何ですか?できればUbuntuの再インストールを伴わない方法が望ましいですか?

7
John Rose

ライブメディアから起動する場合、これは3つのステップに分けられます。

  1. オペレーティングシステムのデータを新しいドライブにコピーする

    開始する前に、新しいドライブに 正しいパーティションテーブル があることを確認してください。 GPTは(ほとんど)EFI用であり、ブートローダー用の特別なパーティションが必要です。 MBRインストールで新しいオペレーティングシステムパーティションを起動可能としてマークすることを忘れないでください。

    ライブメディアからrsyncを使用することが、ファイルをコピーする最も実用的なソリューションです。

    Sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
    
  2. 新しいドライブにブートローダーをインストールします

    Sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
    

    /dev/sdXは、新しいドライブの実際のデバイス名に変更する必要があります。

    MBRの代わりにEFIをインストールしている場合は、Sudo apt-get install grub-efi-AMD64を実行してEFIモードでライブメディアを起動し、新しいドライブにE​​FIシステムパーティション(ESP)を作成し、ESPが/media/$mountpoint_of_new_drive/boot/efiにマウントします(または--efi-directoryオプションを使用します grub-install manpage をご覧ください)。

  3. 設定を更新します

    /etc/fstab/のUUIDを更新する必要があります。 Sudo blkid /dev/sdXYを実行して新しいオペレーティングシステムパーティションのUUIDを取得し、引用符なしでUUIDをコピーし、Sudo nano /media/$mountpoint_of_new_drive/etc/fstabを実行して、次のような行の既存のUUIDを置き換えます。

    # / was on /dev/sda2 during installation
    UUID=a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc    /    ext4    errors=remount-ro    0 1
    

    ただし、行を置き換える前に、次のボタンを押してコピーを作成できます。 Ctrl+K そして Ctrl+U。ホームはまだ古いドライブにあるため、古いUUIDは正しいはずです。マウントポイントを/home/$your_username$your_usernameをユーザーのホームディレクトリの名前に置き換えてください)といくつかのオプション(relatime,acl2に注意してください)終わり):

    # Mountpoint for home or user partition
    UUID=063a996a-0303-42b2-b719-af920fd105fa    /home/$your_username  ext4    relatime,acl     0 2
    

    で保存 Ctrl+O そして終了 Ctrl+X

    個々のホームディレクトリを個別のhome- partition(これは、ユーザーのホームディレクトリが/homeとしてマウントされている単なるパーティションに移動することを検討する必要があります。 fstab、もう一度Sudo rsync -avを使用してデータをコピーできます。 既に/パーティションの一部である場合、/ homeディレクトリを別のパーティションに移動するにはどうすればよいですか? )この方法でユーザーごとに新しい行を作成します。

    SSDに新しいswapパーティションを作成した場合は、これのUUIDも更新する必要があります。

    # SSD swap
    UUID=b7c315cb-cf89-463b-888a-185a1faa8250       none            swap    sw                              0       0
    

    さらに、/media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resumeのスワップパーティションのUUIDを更新し、新しいドライブから最初に起動した後にSudo update-initramfs -k all -uを実行し、hibernationが再び機能するように再起動する必要があります。

    EFIインストールの場合も、fstabのESPのマウントポイントも更新することを忘れないでください。

    複雑に見えますが、実行するのは簡単で、詳細を説明するのは難しくて時間がかかります。


トラブルシューティング

grub-installが何らかの形でUEFIでのインストールに失敗する

ヒント:GRUBがSudo apt-get install grub-efi-AMD64について何かを言うときにi386-pcを実行するのを忘れた可能性があります。

  • /を含むルート(/boot)パーティションのコンテンツをコピーしましたか?
  • ESPのコンテンツをコピーしましたか?必要がなければそれをしてください。

    • 新しいESPでEFI/ubuntu/grub.cfgを編集します。 UUIDを新しいルートパーティションのUUIDに置き換えるだけで十分です。そうでない場合は、この例のhd0,gpt2部分も適宜変更してください。これは、ファイルの内容が通常どのように見えるかです:

      search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2
      set prefix=($root)'/boot/grub'
      configfile $prefix/grub.cfg
      
  • oldインストールから起動し、Sudo update-grubを実行します。os-proberは他のパーティションで新しいインストールを見つけ、GRUBエントリを追加します。

    • この新しいエントリを起動します。
    • ここでSSDから起動する必要があります。ここで再度Sudo update-grubを実行して、SSDのGRUB構成を更新および修正します。
  • efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"を実行して、新規/転送されたインストール用のブートローダーを新しいブートオプションとしてUEFI NVRAMに追加します。 /dev/sdXは新しいハードドライブのデバイス名、Yはパーティション番号です。
6
LiveWireBT