LiveLinux系列(2)–使用Grub2启动不同媒介
上一篇文章介绍了如何在U盘上安装grub2,这篇讲解一下如何编写grub.cfg文件来启动不同的启动媒介,包括启动安装好的操作系统,Linux光盘镜像,PE光盘镜像等。
1.启动已安装的WinXP/Vista/Win7系统
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os { insmod part_msdos insmod ntfs set root='(/dev/sda,msdos1)' chainloader +1 }
核心的部分是
set root='(/dev/sda,msdos1)' chainloader +1
set root 语句是设置安装Windows系统的分区,'(/dev/sda,msdos1)’等价于(hd0,1)。
2.启动已安装的Linux系统
menuentry 'Ubuntu, with Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos3)' linux /boot/vmlinuz-2.6.38-11-generic root=UUID=9fbd205b-1151-41c8-b48f-c8e0887f8d60 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.38-11-generic }
上述给出的比较详细的写法,实际上可以写的更加简单一些:
insmod part_msdos insmod ext2 set root='(/dev/sda,msdos3)' linux /boot/vmlinuz-2.6.38-11-generic root=UUID=9fbd205b-1151-41c8-b48f-c8e0887f8d60 ro initrd /boot/initrd.img-2.6.38-11-generic
linux是代替grub中的kernel指令,该指令后面的root参数必不可少,root参数后面要给出linux系统安装分区的位置,可以用uuid表示,如给出的例子所示,也可以用(hd0,3)这种传统的方法表示。
3.启动WinPE文件
menuentry 'Win7PE' --class windows --class os { set root='(/dev/sda,msdos4)' ntldr /boot/win7pe.bin }
直接使用使用ntldr启动即可。
4.启动Dos镜像文件
Dos镜像文件一般为img格式,需要通过memdisk来启动,一般img会带上对应的memdisk文件。对于大于1.44Mb
的img文件,还需要添加c h s参数。实例如下:
menuentry 'DTSTool' --class dos --class os { set root='(/dev/sda,msdos4)' linux16 /boot/isolinux/memdisk c=147 h=5 s=36 floppy initrd16 /boot/imgs/DTStool.IMA }
使用linux16和initrd16来启动Dos镜像,c,h,s参数的设置方法可以参考:
http://www.syslinux.org/wiki/index.php/MEMDISK