我有一台带有内置 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