Ubuntu パーティションを新しい SSD に閉じた後、grub update を実行する必要がありますか?

Ubuntu パーティションを新しい SSD に閉じた後、grub update を実行する必要がありますか?

私は Ubuntu を使い始めたばかりで、12.04 LTS を数か月使用しています。160GB の Seagate 回転メディア ドライブにインストールし、Windows Vista とデュアル ブートしていますが、すべて順調です。最近、120GB の Kingston HyperX SSD をインストールし、Clonezilla を使用して Ubuntu パーティションを SSD にクローンしました。これは問題なく機能し、Kingston のみを接続すると、問題なく起動できます。

最終的には、キングストンの SSD から起動し、データ用に Seagate を使用し、時々 Vista を起動するつもりです。(Seagate 上の元の Ubuntu インストールはバックアップとして残しておきます)

PC が起動したら、Esc キーを押してブート メニューを表示し、Kingston を選択して grub メニューを表示すると、時折、実際には Seagate から起動しているように見えます。これは、ディスクがアクセスされている音が聞こえ、システム モニターで Ubuntu に使用可能なスペースを確認できるためわかります。

Kingston のみを接続すると Ubuntu は正常に起動するので、正常に機能していることはわかっていますが、Seagate も接続すると、Ubuntu が grub メニューで混乱し、Seagate から起動したり Kingston から起動したりすることがあります。

私の質問は、(Seagate 上の Ubuntu インストールを削除する以外に)システムを新しい場所に再配置するために、Kingston のみを接続した状態で grub update を実行する必要があると思いますか?

前もって感謝します。

答え1

何が起こったのかと言うと、クローン作成の結果、同じ UUID を持つ 2 つのパーティションが作成されます。そのため、起動中の Grub やマウント中の OS はそれらを区別できません。

  1. ライブ CD または USB キーを使用して起動します。
  2. 自動マウントされたパーティションをアンマウントします。
  3. ターミナルを開き、実行してsudo fdisk -lSSD パーティション デバイス パスを確認します。
  4. SSDクローンパーティションの新しいUUIDを生成します(/dev/sda1あなたのケースではそう見える)

    tune2fs /dev/sdxy -U random
    
  5. 次の場所から UUID をコピーします:

    sudo blkid /dev/sdxy
    

    SSD パーティション (/dev/sda1) をマウントし、/etc/fstab古い UUID を新しいものに更新するように編集します。

    sudo nano /media/ssd_part/etc/fstab
    

    /media/ssd_part/取り付けられている場所です。

    root の行にコピーした UUID で古い UUID を変更します/:

    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda1 during installation
    UUID=4c0c4c6d-708b-45b0-b9e9-a5e6a7de491e /               ext4    errors=remount-ro 0       1
    # /media/sneetsher/gnu_files/ was on /dev/sda5 during installation
    UUID=bf958b50-c15a-45fd-b946-36ab1612045b /media/sneetsher/gnu_files/ ext4    defaults        0       2
    # swap was on /dev/sda2 during installation
    UUID=d15727d5-78c2-4a46-aa67-66895d7f6371 none            swap    sw              0       0
    

    このマウントポイントがあるこの行を参照してください/

     UUID=4c0c4c6d-708b-45b0-b9e9-a5e6a7de491e /               ext4    errors=remount-ro 0       1
    
  6. SSDにGrubを再インストールする

    sudo grub-install --root-directory=/media/ssd_part /dev/sdx
    

この時点で、SSD 上の grub はすべての OS を認識します。一方、HDD 内の grub では、SSD からの Ubuntu はまだリストされません。

各ドライブにブート フラグ付きのパーティションがある場合、BIOS はブート順序リストの最初のドライブをブートします。したがって、古い HDD からブートした場合は、その grub を更新します。

sudo update-grub2

すると、両方のドライブにすべての OS がリストされた GRUB が存在します。

関連情報