有感于千里不留行兄的用grub4dos实现多重live启动(详见:http://forum./viewtopic.php?f=77&t=226247) 但这个问题有个麻烦是必须要把内核解压到文件夹下,以grub4dos载入,进而实现live启动。 既然grub2有loopback命令可以载入iso文件,能不能直接用grub2实现硬盘liveCD的启动呢?况且grub2是U9.10默认带的,update-grub很方便,也懒的再折腾grub4dos了。 经过一晚上的google搜索和实验,已成功完成。具体思路如下: 1 将下载的iso放入分区中,分区任意。(我这里ntfs和ext4均通过,其他未测试) 2 在grub2启动项挂载iso。比如我的电脑有C: D: E: F: ,NTFS格式和ext4, swp分区。将a.iso放在D:盘根目录下。grub2启动项上按c进入命令行模式, 代码: loopback lo1 (hd0,2)/a.iso 3 代码: insmod ntfs #因为D盘是NTFS格式。 3 代码: linux (lo1)/casper/vmlinuz boot=casper iso-san/filename=/a.iso noeject noprompt -- #原版的ubuntu9.10CD的启动内核在casper文件夹下,其他linux发行版请自行修改; 4 代码: initrd (lo1)/casper/initrd.lz #相关文件名请自行修改; 5 代码: boot 完成。测试新氧的9.04, U原版CD通过。均是CD版,DVD版未测试。 把1~4直接写入到/etc/grub.d/40.custom下,直接生成grub.cfg. 具体代码如下: 代码: menuentry "Ubuntu LiveCD On D:(这里名称任意)" { loopback lo1 (hd0,2)/a.iso insmod ntfs linux (lo1)/casper/vmlinuz boot=casper iso-san/filename=/a.iso noeject noprompt -- initrd (lo1)/casper/initrd.lz } 然后 代码: update-grub 大功告成! 依此类推,可以填加任意多个liveCD了,你的启动菜单也会变的很壮观,但其实不占用过多的硬盘空间,只是各个ISO而已。 现在可以轻松自己打包各自的liveCD,再加上grub2有自己的启动盘,这样,不管是从机子硬盘还是移动硬盘、U盘、光驱内启动grub2,都可以应用以上思路直接启动硬盘或移动硬盘、U盘内的iso文件,而且是ISO的live系统,不影响移动硬盘、U盘的正常使用, grub2实在是强大。 |
|