将我的 Ubuntu 分区克隆到新的 ssd 后,我需要运行 grub 更新吗?

将我的 Ubuntu 分区克隆到新的 ssd 后,我需要运行 grub 更新吗?

我对 Ubuntu 还比较陌生,使用 12.04 LTS 已经有几个月了。我把它安装在 160GB Seagate 旋转媒体驱动器上,与 Windows Vista 进行双启动,一切运行良好。我最近安装了 120GB Kingston HyperX ssd,并使用 Clonezilla 将 Ubuntu 分区克隆到 ssd。这很顺利,只要连接 Kingston,我就可以毫无问题地启动它。

最终我打算从金士顿固态硬盘启动并使用希捷存储数据,偶尔启动到 Vista。(将原始 Ubuntu 安装保留在希捷存储上作为备份)

当我的电脑启动时,我按下 esc 键来获取启动菜单,选择金士顿,获取 grub 菜单,并且间歇性地它似乎实际上是从 Seagate 启动的;我知道这一点,因为我可以听到正在访问的磁盘以及在系统监视器中看到 Ubuntu 可用的空间。

仅连接金士顿时,Ubuntu 启动正常,因此我知道它可以运行 - 但是当也连接希捷时,我认为 Ubuntu 在 grub 菜单中感到困惑,有时从希捷启动,有时从金士顿启动。

我的问题是(除了删除 Seagate 上的 Ubuntu 安装之外)您是否认为我需要运行 grub 更新,只连接金士顿,以让系统重新适应新家?

提前致谢。

答案1

我认为发生了以下情况:克隆导致两个分区具有相同的 UUID。因此启动时 Grub 或安装时 OS 无法区分它们。

  1. 使用实时 CD 或 USB 密钥启动。
  2. 卸载任何自动安装的分区。
  3. 打开终端,运行sudo fdisk -l就可以看到你的SSD分区设备路径。
  4. 为 SSD 克隆分区生成新的 UUID(似乎/dev/sda1适用于您的情况)

    tune2fs /dev/sdxy -U random
    
  5. 从以下位置复制该 UUID:

    sudo blkid /dev/sdxy
    

    挂载 SSD 分区(/dev/sda1),编辑/etc/fstab以将旧 UUID 更新为新 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 可以识别所有操作系统。而 HDD 上的 grub 仍然没有列出 SSD 上的 Ubuntu。

如果每个驱动器都有一个带启动标志的分区。BIOS 将启动启动顺序列表中的第一个驱动器。因此,如果您从旧硬盘启动,请更新其 grub。

sudo update-grub2

然后两个驱动器都有 grub,其中列出了所有操作系统。

相关内容