grub 2.0 g2ldr制做

原来一个虚拟机上的grub, 仍是1.99版的。一时闲来手贱,莫名奇妙的想升级成2.0版。 php

参照这个http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=245472&start=0把g2ldr升级一下。结果,grub不能正确识别root设备,而后进入修复模式。 html

查了半天,不得要领。最后找到bean大大最先的教程,参见2007年的这个贴子:http://bbs.znpc.net/forum.php?mod=viewthread&tid=3696。发现bean一开始是用g2hdr.bin做core.img的引导头,后来的教程才改成用lnxboot.img做引导头。 node

关于lnxboot.img,参见grub手册,http://www.gnu.org/software/grub/manual/html_node/Images.html#Images,做用是让grub的core.img看其来像linux内核,能够被LILO等引导程序引导。 linux

尝试一下,用g2hdr做引导头,一举成功。制做方法: ios

grub-mkimage -d /usr/lib/grub/i386-pc -O i386-pc -p "/boot/grub" -o ./core.img biosdisk part_gpt part_msdos fat ntfs exfat
cat /usr/lib/grub/i386-pc/g2hdr.img ./core.img > ./g2ldr

另外要注意的事项是2.0版的grub模块都是到grub/i386-pc目录下加载。因此要把除grub.cfg外的文件都移到grub/i386-pc目录下。若是是efi版本的,模块文件则要移到grub/x86_64-efi目录下。 shell

相关文章
相关标签/搜索