當(dāng)計(jì)算機(jī)電源被打開后,它會先進(jìn)行加電自檢(POST),然后尋找啟動盤,如果是選擇從軟盤啟動,計(jì)算機(jī)就會查找軟盤的0面0磁道1扇區(qū),如果發(fā)現(xiàn)它以0xAA55結(jié)束,則BIOS認(rèn)為它是一個(gè)引導(dǎo)扇區(qū),然后BIOS就會把引導(dǎo)扇區(qū)的前512字節(jié)的引導(dǎo)代碼拷貝到內(nèi)存的0000:7c00處并將控制器徹底交給這段引導(dǎo)代碼。
簡單的引導(dǎo)代碼如下所示:
以前記得用linux下的dd命令做過linux的啟動盤,dd應(yīng)該是可以制作的,于是在網(wǎng)上找了下dd制作映像文件,果然是可以的,制作方法如下:
1 先制作一個(gè)空的軟盤映像文件diska.img(1.44Mb的軟盤映像文件):
dd if=/dev/zero of=diska.img bs=512 count=2880
2 制作一個(gè)包含boot.bin的映像文件boot.img:
dd if=boot.bin of=boot.img bs=512 count=1
3 將diska.img中1個(gè)扇區(qū)后面的數(shù)據(jù)拷貝到boot.img的后面
dd if=diska.img of=boot.img skip=1 seek=1 bs=512 count=2879
這樣就做成了一個(gè)大小為1.44Mb的包含引導(dǎo)代碼的映像文件。
后面的事就好辦了,直接在wmware創(chuàng)建一個(gè)空的虛擬機(jī),在設(shè)置中將Floppy的路徑設(shè)置為上面制作的引導(dǎo)扇區(qū)的路徑就ok了,如下圖那樣:

設(shè)置Floppy連接,斷開CD/DVD連接,啟動虛擬機(jī)就可以看到下面的畫面了:

總結(jié):這個(gè)小的代碼的編寫和運(yùn)行還是能讓自己對系統(tǒng)啟動有一個(gè)更深的認(rèn)識,不過有個(gè)不懂的就是怎么用ISO鏡像文件啟動,怎么將引導(dǎo)代碼寫入ISO鏡像文件,依然沒有找到很好的方法解決。
新聞熱點(diǎn)
疑難解答
圖片精選