![]()
1.這里使用交叉編譯的思想,我在Redhat6.4上添加一個(gè)硬盤,將該硬盤分區(qū)以及安裝好MBR之后,再將其掛載到另一個(gè)新建的虛擬機(jī)上,注意該虛擬機(jī)在創(chuàng)建時(shí)我只使用了這一個(gè)處理好的硬盤。
2.怎么添加新硬盤就不贅述了,現(xiàn)在默認(rèn)以及添加好了,下面要執(zhí)行的步驟是分區(qū)、格式化、掛載、安裝grub、創(chuàng)建“根分區(qū)”、掛載至新系統(tǒng)。
3.給sdd(我的虛擬機(jī)有四塊硬盤,這個(gè)是第四塊)硬盤分區(qū),然后格式化,我劃分了兩個(gè)分區(qū),一個(gè)100M用于boot分區(qū),一個(gè)1G用來模擬根分區(qū),如下:
分區(qū)以后,查看一下,應(yīng)該如下所示:
4.格式化硬盤
5.在宿主機(jī)上創(chuàng)建兩個(gè)目錄,用于掛載這兩個(gè)分區(qū)。分別是/mnt/boot和/mnt/sysroot
6.為精剪的小系統(tǒng)創(chuàng)建根目錄下的相關(guān)文件,這里我使用一個(gè)簡單的for命令去創(chuàng)建。
7.復(fù)制內(nèi)核文件意見所需的基本設(shè)備驅(qū)動(dòng)文件
8.安裝移植shell程序,這里我使用馬哥(馬永亮)提供的一個(gè)移植腳本bincp.sh,非常好用。其實(shí)移植一個(gè)命令只需要將該命令以及該命令的的庫文件移植過去就可以了,命令ldd。
這里至少要移植一個(gè)bash命令,其余的用到的話可以來移植,為了后面還要添加網(wǎng)卡模塊,因此我在這里移植了一下幾個(gè)命令:bash,ls,cat,ifconfig,insmod,rmmod,route,ping等命令。
9.安裝grub(安裝方法前面目錄有詳細(xì)步驟和說明)
10.創(chuàng)建grub.conf文件,具體步驟和說明復(fù)習(xí)之前的章節(jié),vi /mnt/boot/grub/grub.conf,內(nèi)容如下:
我們給引導(dǎo)文件創(chuàng)建了一個(gè)名字:New Minimal Linux OS Powered by Redhat6.4,這樣方便我們查看,另外需要注意的一點(diǎn),當(dāng)內(nèi)核裝載進(jìn)內(nèi)存,并且展開驅(qū)動(dòng)設(shè)備的“文件系統(tǒng)”,會(huì)以只讀方式(ro)掛載根分區(qū),然后進(jìn)行系統(tǒng)初始化流程,默認(rèn)會(huì)去找./sbin/init,但是我們這里使用一個(gè)shell腳本來替代,即可進(jìn)入系統(tǒng)。只不過這里需要指定init參數(shù),并且一定要在該行的最后,如果系統(tǒng)都沒有掛載好,有怎么能找到/bin/bash這個(gè)可執(zhí)行文件呢。將宿主機(jī)掛起,然后創(chuàng)建一個(gè)新的虛擬機(jī),使用這塊硬盤,然后啟動(dòng)如下:
現(xiàn)在可以成功進(jìn)入系統(tǒng)了,而且啟動(dòng)速度特別快,也就3秒左右。后面來說下加入網(wǎng)卡模塊,然后讓這個(gè)小型的linux系統(tǒng)可以上網(wǎng)。 |
|
|