保持在newinitrd目录下:
#findall . | cpio ——quiet -c -o > ……/usbboot
#cd ……
#gzip -9 usbboot
#cp usbboot.gz /boot/initrd-2.6.21.1-usb.img
这个时候,/boot下就有一个可用于从USB硬盘上引导的initrd镜像了。
最后就是修改grub.conf了:
cat /etc/grub.conf
title Fedora Core (2.6.21.1)
root (hd0,0)
kernel /vmlinuz-2.6.21.1 ro root=LABEL=/
initrd /initrd-2.6.21.1.img
title Fedora Core USB Boot(2.6.21.1)
root (hd0,0)
kernel /vmlinuz-2.6.21.1 ro root=LABEL=/
initrd /initrd-2.6.21.1-usb.img
我只是复制了原来的一个引导项,相应地把initrd这一行改成了新的文件名,把title加上了USB Boot字样,其它的原样照搬。
到这里就可以shutdown虚拟机里的操作系统,关闭虚拟机,重启电脑,选择从移动硬盘上启动,顺利的话,你的移动硬盘上的linux就引导起来了。
后话:
其实我认为完全可以通过修补mkinitrd就能做直接编译完内核后make install生成支持从USB移动硬盘上引导的内核来,估计已经有linux爱好者和开发者完成了这项工作,不过玩和用linux的其中一个乐趣就是通过动手来了解系统的原理,因此我也没有动手去改mkinitrd。
如果成功地从移动硬盘上引导了Linux后,再装上VMWare For Linux或是再用qemu,又可以从虚拟机里引导出宿主机盘上的windws来了,只不过,我的本本上装的是OEM版的XP,引导后由于硬件环境改变,该死的M$要求我激活它(想想我也没有违反最终用户许可协议吧,在不同时使用的情况下有权在另一台机器上安装同样的副本以作备用,而且……我用的是同一台机器呀。)怀念使用盗版Windows 2K的时候。
在Linux下的虚拟机中引导出原来宿主机上的Windows来的时候,这样的系统,什么时候谁是谁的宿主,谁是谁的寄生虚拟?