中間借用的工具也從開始用的VMWare換成了現(xiàn)在的qemu。
當(dāng)然,不排除有優(yōu)良的發(fā)行版本和更新的內(nèi)核源碼和工具可以不再用自己DIY,以下只是講講我自己動手的經(jīng)歷:
首先,要有一個(gè)可分區(qū)安裝linux的USB移動硬盤,理論上FLASH U盤也可以,SD/XD等閃存卡+讀卡器也可以,不過FLASH芯片的速度相對還是慢了些,實(shí)用程度遠(yuǎn)沒有用移動硬盤高。這里還要提到移動硬盤最好是支持USB 2.0的,用的主板最好也如此,USB1.0和1.1的速度上,實(shí)用程度也很低。理論上用IEEE 1394火線接口的移動硬盤更快,只是我沒有條件試過。
再首先,移動硬盤的USB/IDE轉(zhuǎn)換板也有點(diǎn)講究,我先后試過的幾種移動硬盤轉(zhuǎn)接板中,以那種標(biāo)有IBM的小板子的移動硬盤盒最差,就算是在Windows下,也經(jīng)常有硬盤離線的情況發(fā)生,一般用那種整塊墊著硬盤的底板的移動硬盤盒不錯(cuò),最好就是單口就能供電啟動。
其次,準(zhǔn)備一套發(fā)行版的Linux安裝光盤,當(dāng)然,ISO文件也成,這里假設(shè)的當(dāng)然是我們從Windows環(huán)境下開始,如果當(dāng)前用的是linux,可能還不用那么麻煩。
第三、準(zhǔn)備一套可用的虛擬機(jī)環(huán)境,如果不在乎盜版或是你己經(jīng)為之合法地付費(fèi),那么首選VMWare,這幾乎是X86平臺下虛擬X86平臺的性能取好的虛擬機(jī)軟件了,虛擬速度幾乎達(dá)到1:1,如果一定要合法地使用軟件,那么就用qemu吧,去哪里下載,請自己找。
第四、把移動硬盤連接到Windows 宿主機(jī)上來,正確地認(rèn)出來,這里假設(shè)當(dāng)前宿主機(jī)只有一塊內(nèi)部硬盤,移動硬盤是唯一連接的一個(gè)移動存儲設(shè)備。正確地配置虛擬機(jī),把移動硬盤(在Windows下,第二塊硬盤的設(shè)備文件是\\.\PhysicalDrive1)完全交給虛擬機(jī)作為主要硬盤,VMWare下,通過向?qū)憧梢越⒁粋€(gè)vmdk文件,但是僅僅是指明,這個(gè)虛擬硬盤就是宿主機(jī)上的移動硬盤,這都可以在GUI下實(shí)現(xiàn)。在Qemu下,指明將移動硬盤作為虛擬機(jī)的命令是:
qemu.exe -boot d -L . -m 256 -hda \\.\PhysicalDrive1 -cdrom d:\CDIMGS\FC-i386-CD1.ISO -localtime
這里我不想太多去討論虛擬機(jī)的使用,否則就變成虛擬機(jī)操作的經(jīng)驗(yàn)之談了,這里最后只提一個(gè)小提示,使用qemu的話,安裝kqemu可以得到相當(dāng)程度的性能提高。
總而言之,我們建立一臺使用USB硬盤作為主硬盤的虛擬機(jī),并從光盤上引導(dǎo)或是從光盤鏡像文件上引導(dǎo)它,順利地安裝了一套運(yùn)行在虛擬機(jī)上的發(fā)行版本的Linux,這里又僅以FC 5 Linux為實(shí)例了,其實(shí)發(fā)行版本其實(shí)也大同小異。
第五、確保安裝后運(yùn)行在虛擬機(jī)中的Linux系統(tǒng)有完整的內(nèi)核開發(fā)環(huán)境和內(nèi)核源代碼。這里又要扯到虛擬機(jī)的使用上去了,不管用什么辦法,可能你需要安裝開發(fā)環(huán)境、下載內(nèi)核源代碼的最近版本,可以正確地配置虛擬機(jī)直接上網(wǎng)下載、也可能利用宿主機(jī)下載后用FTP、Samba共享的辦法甚至做成光盤鏡像來讓虛擬機(jī)終于可以配置和編譯內(nèi)核。
第六、開始配置新的內(nèi)核,其中,重要的是要讓這個(gè)內(nèi)核支持USB移動存儲驅(qū)動,而且還不能是內(nèi)置在內(nèi)核中,而是編譯成內(nèi)核驅(qū)動模塊,由于存儲驅(qū)動模塊化,而又是引導(dǎo)時(shí)段需要的,因此,這個(gè)內(nèi)核還必須支持引導(dǎo)過程的內(nèi)存鏡像盤(initrd)。于是,需要配置的內(nèi)核部分包括:
至少必須的文件系統(tǒng)支持:ext3、ext2,反正都有initrd了,就配成模塊方式。
至少必須支持的SCSI驅(qū)動:scsi、scsi-sd,這兩個(gè)被VMWare 的虛擬Buslogic SCSI控制器和USB Storage驅(qū)動所依賴,配置成模塊方式:
到少必須支持的USB驅(qū)動:usb支持、usb-storage即usb存儲驅(qū)動。還有必須的uhci_hcd(基于intel系列芯片及VIA系列的的USB 1.0/1.1總線控制器)、ohci_hcd(基于AMD、nForce、ALI等兼容芯片的USB 1.0/1.1總線控制器)、ehci_hcd(擴(kuò)展的USB 2.0總線控制器)。都配置模塊方式。
至少必須支持的塊設(shè)備:LoopBack Device Support,模塊方式/內(nèi)核方式都可以,2.4版本的內(nèi)核使用Loop設(shè)備的方式來存放initrd鏡像。 Ram disk支持,這個(gè)是必須,并且要編譯在內(nèi)核里。還有最重要的是Initrd的支持,需要編譯到內(nèi)核中,2.6的內(nèi)核配置中,intitrd - Initial RAM filesystem and RAM disk (initramfs/initrd) support放在內(nèi)核的General setup之下。
其它的部分,都可以按需定制。配置了內(nèi)核之后,不外就是編譯內(nèi)核與內(nèi)核模塊、安裝復(fù)制內(nèi)核模塊、安裝新的內(nèi)核。這些和通常的定制linux內(nèi)核大同小異。把新的內(nèi)核安裝到當(dāng)前系統(tǒng)上,并且加入到GRUB的選項(xiàng)中(這里又是假設(shè)了,假設(shè)當(dāng)前使用的是GRUB作為Boot loader,至于LILO、syslinux這些,也是大同小異)。