我遇到了一个不寻常的问题。我在我的系统上安装了 lubuntu 12.10 AMD64,将 / 和 /boot 放在 SSD 上,其余的放在硬盘上。除了 /boot 之外的所有内容都已加密。一切都很顺利,直到 SSD 开始产生 I/O 错误。看来我必须将其退回更换,这意味着几周内都无法使用它。
作为替代方案,我将 / 和 /boot 中的所有内容复制到 SD 卡上,并在其上安装了 grub ( grub-install /dev/sdf
),并认为我可以使用 SD 卡作为启动盘,直到替换的 SSD 到达。但是,Grub 似乎不同意 - 一旦 SSD 断开连接并再次打开系统电源,Grub 就会从 SD 卡启动,但只会显示:
error: no such device: 5ab2e581-some-guid.
grub rescue>
我无法识别它所抱怨的 GUID - 它不在 grub.cfg、grubenv 或我在 /boot 中找到的任何其他文本文件中,并且sudo blkid
没有显示它。
将我能找到的有关此提示的信息拼凑在一起,我得出了以下命令集,这些命令似乎应该能够从这里手动启动内核:
set root=(hd0,msdos1)/boot
set prefix=(hd0,msdos1)/boot/grub
insmod linux
linux (hd0,msdos1)/boot/vmlinuz-3.5.0-26-generic root=/dev/sde1 rootdelay=5
boot
但是内核似乎没有注意到 SD 卡,并且没有说我需要提供适当的root=
参数并提供可用分区的列表 - 但列表是空的。
另一方面,如果我这样做:
set root=(hd0,msdos1)/boot
set prefix=(hd0,msdos1)/boot/grub
insmod linux
linux (hd0,msdos1)/boot/vmlinuz-3.5.0-26-generic
initrd (hd0,msdos1)/boot/initrd.img-3.5.0-26-generic
boot
它启动到 initrd 映像,我可以在其中看到我的 SD 卡(在 /dev/sde1 上,而不是 /dev/sdf1,这是我在上面的命令中得到 sde1 的地方),但似乎也没有任何方法可以从这里启动它。
我不知道我在这里错过了什么——这个未知的 GUID grub 正在寻找什么,为什么它无法找到并启动 SD 卡上的内核?
答案1
好吧,在某种程度上,我确实设法让它工作了……我放弃了修复 SD 卡上的 grub 的尝试,并在其上安装了全新的 lubuntu 安装,然后将旧系统根目录中的所有内容复制到其上。主要问题是必须编辑 /etc/fstab 和 /etc/crypttab 来处理不同的 GUID 和设备路径。(由于 /dev/sda 被删除,所有内容都向上移动了一个字母。)这样做之后,它至少可以运行,尽管我怀疑有些东西没有完全很好地融合在一起,因为我现在打开终端时从 .bashrc(或某个地方?)收到很多错误……但无论如何,一切似乎都在正常运转。