2009-01-08 65 views
6

我正在使用準系統教程作爲我正在操作的操作系統的基礎,它似乎是一個較舊的教程:它已將內核編譯爲軟盤映像,然後使用GRUB加載它。如何以編程方式創建可啓動CD?

基本上,我仍然想使用GRUB,但我想讓我的操作系統從CD運行。主要原因是我實際上沒有真正的軟盤驅動器(我正在VirtualBox中測試),因此我無法在真實的硬件上測試我的操作系統。

我一直在網上搜索,我可以找到很多從軟盤映像創建可啓動CD的實用程序,但這些似乎都需要一個實際的軟盤驅動器,再加上它不是真的我是什麼尋找。我希望能夠在製作步驟中最好使用可啓動光盤,而不需要先將映像放在軟盤上,這似乎毫無意義。

我想回答這個問題的簡單方法:如何設置GRUB從CD讀取我的內核映像?我需要一個特殊的工具來從Windows執行此操作嗎? (內核不能自行編譯,這不適用於looong)

謝謝!

回答

5

我自己找到了我的項目解決方案,並在OSdev上提供了一些建議。有一個名爲mkisofs的實用程序(可以在Windows下使用cygwin dll運行),該目錄需要一個目錄,並將該目錄轉換爲可以刻錄到CD的ISO映像。使用-b標誌,您可以指定哪個文件應該駐留在磁盤的引導扇區中。

解決方案只是在引導扇區中安裝GRUB,並使用GRUB加載內核映像,我可以很容易地以非軟盤形式編譯出來。

4

AFAIK可啓動光盤與可啓動軟盤幾乎相同。您需要將引導加載程序(GRUB)放入引導扇區等,BIOS將處理低級別的內容,直到您切換到保護模式。

您可能需要製作圖像,然後將其添加到實際物理磁盤。

這裏的El Torito可啓動CD規格: http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf

編輯:另一種方式來測試你的內核將是一個可啓動的U盤。再次,BIOS將照顧低級USB的東西,直到你打開A20並跳轉到保護模式。

+0

...哦,我從來沒有想過USB。我會爲此搜索。 – 2009-01-08 19:36:58

+0

並非所有的計算機都可以從USB設備啓動,但大多數(全部?)現代應該。 – senfo 2009-01-08 19:45:35

1

如果你有興趣查看代碼,那麼Moblin Image Creator可能是一個很好的應用程序來檢查。它是用python編寫的,可以爲Moblin Linux的Live和可安裝配置創建不同類型的可啓動映像(CD,USB和NAND)。