保持在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來的時候,這樣的系統,什么時候誰是誰的宿主,誰是誰的寄生虛擬?