可以動態增加系統的U盤啟動器(基於grub)


  前言:最近面試無果,就在宿舍看那本《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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM