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,好像是用線條畫出一個球的影象示例程式。