製作支援 legacy bios 啟動光碟的步驟
2.1 step1 準備 isolinux.bin 和工作目錄
當然還要放入相應的 kernel, initrd 等等,目錄結構如下:
清單 1. cd_root 目錄結構
|---isolinux
| |---isolinux.bin
| |---isolinux.cfg
|---kernel (os 核心)
|---initrd (檔案系統)
|---readme
kernel為需要引導的作業系統核心,此處選擇linux核心,核心的獲取可以通過編譯適當的linux核心版本得到,本文採用的是2.6.30.59版。核心可以根據自己的需要進行適當的裁剪,在此不累述。記住,在編譯的時候一定要選擇x86的體系結構,因為本文是基於x86體系結構映象講解的,如果您不知道怎麼選擇cpu體系結構,可以參考下面的寫法:
# make arch=x86 menuconfig
編譯完成後在arch/x86/boot中會生成核心映象bzimage。將其拷貝到cd_root(製作iso的根目錄)中,當然您也可以專門建立相關的資料夾來存放核心和檔案系統,區別只是在配置isolinux.cfg時的路徑問題(可參考下一小節)。
除了核心映象外,還需要檔案系統。本節採用busybox製作檔案系統,並生成ramdisk映象檔案ramdisk.img。關於ramdisk檔案的製作方法見章節:檔案系統,其中有一小節專門講解了如何製作根檔案系統。
2.2 step2 配置 isolinux.cfg
prompt 1
timeout 100
default mybiosiso
label mybiosiso
kernel /bzimage
配置 isolinux.cfg
2.3 step3 製作 bios 平台可啟動光碟#
mkisofs -o output.iso -b isolinux/isolinux.bin -c \
isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-tablecd_root
製作 bios 平台可啟動光碟的命令
製作 iso 的時候要使用 -b 引數,用來指定 isolinux.bin 所在的路徑,-c 引數的那個檔案(boot.cat)是自動生成的,不用關心,其餘引數都是固定的。這裡的路徑都是相對於光碟的根目錄而言,和製作光碟時的工作目錄沒有關係。
完成後,會在當前目錄(也可以指定)生成iso映象光碟檔案,檔名為output.iso。
接下來可以在虛擬機器中驗證生成的iso檔案是否可以啟動linux。首先安裝vmware6.0,然後新建乙個虛擬機器,記憶體和硬碟都不必選得很大,要知道我們的核心是非常小的,選擇256m的記憶體,硬碟1g(可以更小,因為這樣的操作不需要硬碟,只要記憶體足夠就可以了),完成後,將生成的iso載入到虛擬機器的光碟機中,啟動虛擬機器,成功會出現如下圖的相似資訊。
值得注意的是,我們的根檔案系統存在於記憶體之中,所以您會看到在載入ramdisk1.img時需要一定的時間。在此,簡單梳理一下整個啟動過程。首先,bios完成第一階段的引導,虛擬機器從光碟機啟動,isolinux會載入核心映象到虛擬機器記憶體中,然後載入檔案系統(ramdisk)到記憶體中,將執行許可權交給linux核心,核心啟動然後載入檔案系統。
至此,就可以利用虛擬機器驗證自己修改的核心和根檔案了。當然,這只是乙個極為簡略和粗糙的啟動光碟,用於學習linux核心和檔案系統是相當有益的,你不用擔心這會損害您的電腦的目前的狀態,因為所有的東西都在記憶體之中。
在後面的章節中,筆者會介紹更加豐富的啟動功能,以及如何從硬碟啟動我們製作的linux系統。
自己製作CFLinux系統(三)
核心。解壓進入目錄。編譯核心步驟 1.makemenuconfig 開啟圖形配置介面 2.配置核心 3.makebzimage 編譯核心 4.makemodules 編譯模組 5.makemodules install 安裝核心模組 其它命令 makeclean 清理生成檔案,但會保留.config...
自己寫個作業系統《一》製作啟動U盤,真機啟動
網路上不少介紹寫個簡易作業系統的文章,大都是製作乙個軟盤映像檔案,然後從虛擬軟碟機中啟動。我希望能直接將系統放入u盤,直接從u盤啟動。經過一番嘗試,成功了。1 一台centos linux物理機 2 as86 ld86工具 安裝 rpm ivh dev86 0.16.17 15.1.el6.x86 ...
製作自己的ubuntu系統iso映象
使用remastersys ubuntu 14.04 12.04 sudo add apt repository ppa mutse young remastersys sudo apt get update sudo apt get install remastersys remastersys ...