1. 程式人生 > >30天自制作業系統——用U盤啟動自制系統

30天自制作業系統——用U盤啟動自制系統

最近試讀了《30天自制作業系統》的前兩章,感覺很有意思。

但是發現裡面寫的系統都是用軟盤啟動的,現在在大多數電腦上已經看不見軟碟機了,所以如果想執行書中的作業系統只能通過qemu(隨書光碟中已經附帶)模擬執行。這樣的話成就感就會少很多,感覺像是在做一個簡單的控制檯程式,相信大多數童鞋都希望能做出一個能在真機上執行,能秀出來的作品。那有沒有方法通過U盤去啟動書中“自制”的作業系統呢?我的思路就是通過利用U盤啟動,然後虛擬軟碟機去啟動img檔案(軟盤映像),這樣原書的程式碼無需任何修改就可以“移植”到U盤上來,通過學習書中的內容,來定製自己的專屬作業系統!

同樣以下方法也適用於用U盤啟動任何基於軟碟機的作業系統,例如MS-DOS。

需要以下4種的工具:

HPUSBFW

所用版本:HP優盤格式化工具HPUSBFW+2.20.exe

grubinst_gui

所用版本:grubinst-1.1-bin-w32-2008-01-01

grub4dos

所用版本:grub4dos-0.4.4-2009-01-11

Defraggler

所用版本:Defraggler_2.13.670

下載地址請自行百度

或者從此處下載,我已經把四個工具打包上傳

GRUB是一個多作業系統啟動程式,我們利用這個工具來自制我們U盤啟動盤,然後去啟動對應的軟碟機映像檔案。

1、使用HPUSBFW格式化U盤

注意:格式化U盤會造成U盤所有資料丟失!請備份好重要檔案!

在裝置一欄選擇對應的U盤,千萬不要選錯!

檔案系統就選擇FAT32吧,勾選快速格式化,點選開始。

U盤所有資料將被清空,到此HPUSBFW的使命就結束了。

2、安裝grub到U盤

解壓grubinst-1.1-bin-w32-2008-01-01,執行grubinst_gui.exe

勾選如上圖所示,注意磁碟的選擇,選擇的是你的U盤,由於選擇的是磁碟,所以不顯示碟符,如果你的電腦有多塊硬碟或者插了多個U盤之類的,請注意區分!

點選安裝

成功的話如上圖所示。

然後解壓grub4dos-0.4.4-2009-01-11,拷貝三個檔案到U盤根目錄

至此grub安裝完畢!

3、配置grub

menu.lst是grub的配置檔案,通過grub我們可以在開機的時候在多個作業系統中選擇,現在我們需要配置menu.lst以啟動自制的作業系統!

複製對應的img到U盤,此處以隨書光碟下的projects\30_day\harib27f\haribote.img為例

如下圖,複製到U盤根目錄下

用文字編輯器開啟menu.lst,可以看見一些示例配置,其中有一項示例就是啟動img映像檔案

下面修改menu.lst,我們不使用grub的選項功能,直接啟動自制系統(menu.lst的更多配置可以自行百度)

map –mem (hd0,0)/haribote.img (fd0) map –hook chainloader (fd0)+1 rootnoverify (fd0)

紅色的地方就是.img檔案的路徑

其實到這裡已經差不多快完成了,但是grub啟動img有一個小小的限制,就對應的映像檔案的物理上必須連續,也就是說沒有碎片,不過軟盤的映像檔案只有1.4MB大小,直接複製進去幾乎不可能產生碎片!但是為了以防萬一,我們還是要用磁碟整理工具防止.img檔案有碎片,這裡使用的磁碟整理工具是Defraggler,它可以針對某個檔案整理,正好對應了我們的需求。順帶說一句,Defraggler是一款很優秀的磁碟整理工具,如果你忍受不了windows下自帶的磁碟整理工具的速度的話,可以試試這個。

開啟Defraggler,選擇Action->Defrag File,選擇U盤下對應的.img檔案,點選OK即可

至此我們的自制系統的U盤啟動盤就製作完成了!

grub功能很強大,通過配置可以啟動各種作業系統,有興趣的童鞋可以定製自己的U盤啟動盤。

接下來就要真機執行一下,要在bios裡把U盤設定為第一啟動盤

進入bios並設定的方法每個主機板都不太一樣,請參閱自己機器主機板的說明或百度。

如果你暫時不想重啟你的電腦只是想試試你的U盤自制系統是否work,可以用VMware配置虛擬機器測試,注意在建立虛擬機器是要把虛擬機器的硬碟配置成物理驅動,選擇成製作好的U盤,配置下bios啟動順序即可。

show一下真機執行效果:

《30天自制作業系統》我只試讀了前兩章,還不知道這個系統怎麼用(尷尬),只運行了下bball,好像是用線條畫出一個球的影象示例程式。