前言:最近面試無果,就在宿舍看那本《30天自制操作系統》,里面使用的系統文件格式是img,要在真機上運行,就需要使用U盤進行啟動,因為現在都沒有軟盤。而網上很多都是用軟件寫入U盤的。反正我查過的都是一次寫入,下次要覆蓋使用最新編譯的還是要用軟件寫入。所以就想用一個一勞永逸的辦法,只要把IMG文件復制到U盤即可啟動。並且每次新的編譯后IMG只要覆蓋進U盤即可。比較方便。
一、准備幾個軟件
硬件:准備一個2G以上的U盤
軟件:1.grubinst 用來給U盤寫入引導記錄
2.grub4dos-0.4.4 用來制作多重引導菜單
3.各種操作系統
二、制作grubinst過程
1.解壓grubinst並運行grubinst_gui.exe選擇對應的U盤hd1.
2.分區列表點擊刷新,選擇整個磁盤MBR
3.注意,點擊刷新后可能會出現此提示,無需理會,點擊確定即可
4. 若:如下圖: 下拉列表中沒有MBR字符,則此U盤沒有MBR分區,無法做啟動盤.
若:如下圖:下拉中有MBR字符,則此U盤可以做啟動盤.
5.點擊“安裝”,如果成功會出現控制台,上面寫着
The MBR/BS has been successfully installed
Press <ENTER> to continue …
意思是說主引導記錄寫入,按回車繼續。這一步只是寫入U盤引導記錄。
三、把grub4dos-0.4.4解壓后找到核心文件grldr和grub.exe和menu.lst,並復制到U盤的根目錄中。
四、下載所有需要的操作系統,我這里下載了BT3,CDlinux,Beini還有《30天自制操作系統》里面的haribote.img作為例子。
1.解壓Bt3,CDlinux,Beini到根目錄,因為解壓后會有一些目錄是相同的名字,我們可以進行重命名。具體的重命名可以隨意改。而img文件就直接放到根目錄就可以了。
2.處理后的目錄如下
3.現在最關鍵的是修改menu.lst文件,下面是我的配置文件
1 default=0 2 timeout 20 3 4 default /default 5 6 title 1 BackTrack3 7 find --set-root /bootbt3/vmlinuz 8 kernel /bootbt3/vmlinuz root=/dev/ram0 ramdisk_size=6666 autoexec=kdm vga=791 9 initrd /bootbt3/initrd.gz 10 11 title 2 cdlinux 12 find --set-root /CDlinux/bzImage 13 kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8 14 initrd /CDlinux/initrd 15 16 title 3 beini 17 find --set-root /bootbeini/bzImage 18 kernel /bootbeini/bzImage quiet max_loop=255 tce=sdb1 waitusb=6 19 initrd /bootbeini/tinycore.gz 20 21 title 4 hello 22 map --mem /hello.img (fd0) 23 map --hook 24 chainloader (fd0)+1 25 rootnoverify (fd0) 26 map --floppies=1 27 boot 28 29 title 5 winpe 30 find --set-root /ntldr 31 chainloader /ntldr
上面有些參數和設置我是不懂的,不過那些目錄路徑還是很容易看懂和修改的。
因各人的硬件設置不盡相同,如果檢測時發現 beini不能啟動或啟動后不正常,請更改“sdb1”參數,即 U盤在 linux系統下的名稱。常用的有 sda1,sdb4等,具體可在啟動 bt3或 cdlinux系統后,在其中查看具體顯示名稱,更改即可。
4.運行結果,在真機上是可以運行的。下面這個圖是我在虛擬機中截的。
五、vm虛擬機使用U盤啟動
1.一般創建虛擬機的步驟都懂的,這里就不介紹了。
2.在創建完虛擬機后,選擇虛擬機設置
3.下一步,選擇“Use a physical disk(for advanced users)”然后Next。
注意如果沒有出現所需要的U盤選項,那大概是虛擬機沒有識別出來,只是重插U盤。或者重新啟動虛擬機軟件。有時候是因為U盤接口控制沒有選上,只要選上就可以了
4.選擇PhysicalDrive1,這里的選項將取決於你計算機所有的物理硬盤。然后下一步就會出現下面這個磁盤信息。
嗯,3.7G對了,就是這個了。然后就完成了。
5.虛擬機中設置BIOS(加電自檢是按下F2進入),修改Boot啟動項。
我的U盤是SCSI Hard Drive(0:1)的。一開始默認是(0:0)的只是我總是啟動不了,就修改成(0:1)了不知道有沒有關系,就在這里說明一下。
讓Hard Drive為第一啟動項,就可以了。
到這里就可以實現動態增加操作系統的U盤系統了。如果有合適的系統就可以復制到該U盤里,然后修改menu.lst文件就可以了,不用每次都用軟件寫入iso文件。
六、資料下載
用到的兩個grub軟件和我參考的一個pdf文件 http://files.cnblogs.com/wunaozai/grub.zip
本文連接 http://www.cnblogs.com/wunaozai/p/3854875.html