
不是grub太复杂,而是你没有搞清楚grub只是一个引导程序,grub将内核文件装入后就将控制权交给内核了,内核的引导参数需要你自己配置,你这个配置就没有告诉内核从哪装入root(前面的set root只是告诉grub从哪儿找到vmlinuz),所以无法启动的。
当然还要注意的一点是grub的设备号很容易受设备的变动影响而发生改变的,如硬盘通常是sda1,但从USB启动往往会导致USB变为sda1而硬盘变为了sda2,所以最好是用uuid定位设备。
initramfs启动错误提示,是因为VMware安装linux在物理硬盘并没有更新grub所致,没关系,我也经历过。parrot os反复重装后发现了真正的解决方案。
1,(initramfs)blkid。查看并找到linux根目录所在,“dev/sdxx:uuid=?”。当然,也可以通过其他方法得到相关信息,比如DG。
2, reboot电脑,在出现grub引导列表时,按下“e”。这是为了“edit”引导列表,以进入linux进一步修改。
3,“Loading Linux............”下面那行,“...........root=/dev/sda5 ro............" 改成 "..........root=/dev/sdxx rw..........." 然后,按F10 重新引导启动。这里,dev/sdxx就是你在第一步查看到的。
截至目前,你已经可以进入Linux了,但是,不是一劳永逸,还需要进一步修改/boot/grub
4,进入Linux后,打开终端,以管理员身份update-grub。更新扫描所有可启动项,生成新的启动引导列表。也就是将/dev/sdxx的引导方式更新为uuid。因为,在不同电脑,硬件的/dev/sdxx顺序不同,但是uuid是不变的。
最后,你可以打开/boot/grub/grub.cfg确认是否更新成功。
现在,你可以重启/关机了,enjoy你的linux to go移动硬盘了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)