- 插入引导盘,或者不插,只要能进grub,一切好说(不过要看看有grub可用的命令么,例如kernel什么的(这个是grub))。
- find (hdx,x)/
这一步就是找出rootfs所在的位置,更多不赘述,可参考前面grub的配置文档。。 - 这一步,就比较个性了,在用命令载入内核时,grub是kernel
例如:
1 | grub>kernel (hdx,x)/boot/vmlinuz-version ro root=/dev/rootfs_position |
但是grub2就不是这样了,示例二:
帮好友引导OpenSUSE时,
1 | grub>linux (hdx,x)/boot/vmlinuz-version |
不过fedora貌似就不是这样:
1 |
|
其实还可能不同,因为忘记当时怎么写的了,这两个是后来查看grub.cfg得到的,肯定不是这样的,不过内核肯定是linux开头,initramfs是init开头的,自行补全。哈哈,后来觉得,可能是由于grub2在对待i386和x86_64时加载命令有点不同,不过我想强调的是:
使用help命令
1 | grub>help |
查看可用的命令,,不要随意看网上的教程就拿来操作,当然知道原理除外。。
- 系统起来了,这又有问题了,怎么生成配置文件,这个也是最为重要的。。
示例一:
OpenSUSE:
1 | #grub2-install /dev/sda |
但是fedora不是这样:
1 | #grub2-install /dev/sda |
grub2-install:错误: /usr/lib/grub/x86_64/modinfo.sh doesn’t exist. Please specify –target or –directory.
当时就好奇了,为什么OpenSUSE写这么简单就可以,为什么fedora就不行,后来觉得,还是没掌握更深的,你懂得。。
既然没有这个文件,我就要看看这个目录下有什么东西,
1 | #ls /usr/lib/grub/ |
tab补全试试,会发现有个i386-pc文件,
1 | #ls /usr/lib/grub/i386-pc | grep modinfo.sh |
真会有这个文件啊,看样子知道怎么解决了。。
1 | #grub2-install --target=i386-pc /dev/sda |
没报错,爽!
1 | #grub2-mkconfig -o /boot/grub2/grub.cfg |
引导就成功了!!!
#补充,当重新启动时,可以看到选项栏,但是当随便启动一个,可能会提示No linuxefi和initefi(貌似这两个命令),反正我是遇到了,
重新引导进系统,再
1 | #grub2-install -target=i386-pc /dev/sda |
可以看到加载内核和initramfs的命令变了,,
1 | #reboot |
至此搞定。。。