如何更改 ubuntu 启动的设备?

如何更改 ubuntu 启动的设备?

我有一台带有内置 SSD(我们称之为三星 SSD)的笔记本电脑,我想在通过 USB3 连接的外部 SSD(我们称之为 vertex2)上安装 ununtu 12.04。

我下载了 ubuntu iso 并从中创建了一个可启动的 usb 密钥。

然后我在 USB 密钥上启动,并按照 ubuntu 安装:

  /dev/sda is the internal samsung-SSD.
  /dev/sdb is the usb key from which I am installing
  /dev/sdc is the external vertex2 on which I am installing.

安装完成,这次我从 vertex2 启动 ubuntu。但由于 usb 密钥不再存在,vertex2 被称为 /dev/sdb。Ubuntu 尝试在 /dev/sdc 上启动并失败,因为 /dev/sdc 不存在。

因此 BusyBox 终端出现,并显示以下消息

放弃等待 root 设备。常见问题...

在这个终端,我可以执行以下操作:

# only vertex2 is plugged
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # vertex2

# removing vertex2
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2

# pluging usb
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # usb stick

# pluging vertex2 in addition to usb stick
> ls /dev | grep sd
/dev/sda # samsung SSD
/dev/sda1
/dev/sda2
/dev/sdb # usb stick
/dev/sdc # vertex2

现在顶点2被称为/dev/sdc(就像安装过程中一样)。

> exit # this command tries to resume the boot process

这样我就可以在 ubuntu 上启动了。

所以我的问题是:如何配置 ubuntu 以便它尝试启动/dev/sdb代替/dev/sdc

我可以用mount和来实现这个目的chroot吗?

编辑:我的fstab

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc2 during installation
UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c /               ext2    errors=remount-ro 0       1
# swap was on /dev/sdc5 during installation
UUID=56498034-3361-4d7d-ae7f-dc8e69b582ed none            swap    sw              0       0

我不明白的是,在我的 fstab 中,vertex2 是通过其 UUID 来识别的。因此,它显示为 sdb 还是 sdc 并不重要。然而,只有当它显示为 sdc 时,我才能启动……我尝试在 fstab 中用 sdb 替换 vertex UUID,但没有帮助。这就像在启动时使用其他文件来挂载驱动器一样。


编辑2:在启动菜单中,我可以编辑条目。如果我编辑 ubuntu 条目(按e),我会看到以下文本:

recordfail
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd2,msdos2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos2 --hint-efi=hd2,msdos2 --hint-baremetal=ahci2,msdos2  25\
86eee0-5f24-462b-b44d-5c9a25aebe6c
        else
          search --no-floppy --fs-uuid --set=root 2586eee0-5f24-462b-b44d-5c9a25aebe6c
        fi
        linux   /boot/vmlinuz-3.5.0-17-generic root=/dev/sdc2 ro   quiet splash $vt_handoff
        initrd  /boot/initrd.img-3.5.0-17-generic

如果我将 sdc2 更改为 sdb2,然后按 f10 恢复启动,ubuntu 将成功启动(没有 BusyBox 提示)。

此文本位于/boot/grub/grub.cfg。但我不应该直接编辑它。它有这个标题:

#                                                                                                                                
# DO NOT EDIT THIS FILE                                                                                                          
#                                                                                                                                
# It is automatically generated by grub-mkconfig using templates                                                                 
# from /etc/grub.d and settings from /etc/default/grub                                                                           
#   

我在 grub 配置中看不到 /dev/sdc2:

> sudo grep -r "sdc2" /etc/grub.d/
> #no results

sdc2 来自哪里?如何将其永久更改为 sdb2?(启动菜单中的更改只是暂时的。)

答案1

您应该尝试设置以下之一:

GRUB_DEVICE_UUID=2586eee0-5f24-462b-b44d-5c9a25aebe6c
GRUB_DEVICE=/dev/sdb

在文件中:/etc/default/grub

然后运行:sudo update-grub

相关内容