如果你已經看過《手動安裝veket到硬盤》和《簡單的將veket安裝到U盤的方法》兩篇文章并且安裝成功的話,說明不適用本文的安裝環境,就不用往下看了。
《手動安裝veket到硬盤》一文采用grub4dos來引導硬盤上的veket,主要是用來在本機已安裝Windows 2000/XP系統的磁盤上添加veket雙系統引導,不適用于把移動硬盤安裝成USB啟動盤。
《簡單的將veket安裝到U盤的方法》一文采用syslinux來引動veket,可以用來把U盤、移動硬盤安裝成USB啟動盤,但是syslinux只支持fat和fat32分區,因此不適合在ntfs分區格式的移動硬盤上安裝。
veket建議采用FAT32分區作為文件系統格式,但是采用NTFS分區也不是不可以。在下有一個自己買盒子組裝的30G的USB硬盤,平常用于攜帶大文件,因為容量不大,所以將整盤格式化為一個NTFS主分區,采用下文的安裝方法,完美實現了移動硬盤的veket啟動。安裝步驟如下:
1.??? 用grubinst工具安裝grub4dos到USB硬盤的MBR
grubinst(下載地址:http://sourceforge.net/projects/grub4dos/files/)是一個用來將GRUB4DOS安裝到硬盤的MBR(或者分區的引導扇區)以及映像文件中的工具(使得磁盤具有啟動功能,就像DOS里面的sys命令一樣),它的功能基本上與GRUB4DOS發行包中的bootlace.com(可以運行在純DOS或者Linux環境)相同,但是跟 bootlace.com不同,grubinst完全是用C語言開發的,能夠在Windows NT/2K/XP、Linux和FreeBSD等操作系統下編譯并運行。
選擇USB硬盤(可以在Windows磁盤管理中看到磁盤順序),然后按照上圖選項設置,點擊Install安裝。
關于grubinst_gui工具的選項依次簡單介紹一下:
Device Name部分
(1)??? Disk —— 選擇安裝grub的硬盤,grub將安裝到硬盤的MBR中;
(2)??? File —— 選擇img磁盤映像文件,grub講安裝到該磁盤映像中。
Options部分
(1)??? 在寫入MBR之前,不把原來的MBR備份到第二個扇區(出發MBR的長度超過了一個扇區的大小,否則不建議選擇);
(2)??? 禁止在硬盤上找不到GRLDR文件的時候搜索軟驅(現在都不配軟驅了,選擇吧);
(3)??? 禁止在啟動失敗后嘗試啟動原來的MBR;
(4)??? 禁止在GRUB菜單中進入命令行狀態(防止別人亂改);
(5)??? 默認5秒等待時間在GRUB和之前的MBR之間做出選擇,默認啟動原來的MBR;
(6)??? 首先驅動器/首選分區/默認超時時間/熱鍵 —— 這幾個都是用來輔助配置上面第(5)項:首選驅動器和分區設置默認啟動的MBR;默認超時時間設置等待時間;按熱鍵啟動grub。
Restore部分
(1)??? Save File —— 將原來的MBR保存成文件;
(2)??? 從保存的文件中恢復原來的MBR;
(3)??? 從第二個扇區恢復原來的MBR。
另外請注意,當前版本的grubinst不支持在Windows 95/98/ME下修改硬盤的MBR,對于這些操作系統,請使用bootlace.com。
PS.貌似也可以用WinGRUB在XP下替代gurbinst,沒有測試過。
2.??? 手動修改menu.lst,配置veket引導
menu.lst文件內容如下:
timeout 10?????? # 啟動菜單等待10秒以后自動選擇第一個啟動項
# 啟動菜單添加中文字體支持
fontfile (hd0,0)/grub/fonts
# 啟動菜單添加背景畫面
splashimage (hd0,0)/grub/splashimage.xpm.gz
# 設置動畫圖形菜單文件
gfxmenu (hd0,0)/grub/grub_chs.msg
?
title veket 隨身系統?????? # 第一個啟動項顯示的名稱為“veket 隨身系統”
kernel (hd0,0)/veket/vmlinuz root=/dev/ram0 PMEDIA=usbhd
initrd (hd0,0)/veket/initrd.gz
?
title 本地磁盤引導????????? # 第二個啟動項,用來回到本地磁盤引導
root (hd1,0)???? —— 當從USB硬盤啟動時,USB硬盤被認作hd0,本地磁盤被認作hd1
chainloader (hd1,0)+1?????? # “鏈式裝入器”從(hd1,0)裝入NT引導記錄引導
map (hd0) (hd1)????????? # 把磁盤hd1映射為hd0
map (hd1) (hd0)????????? # 成對使用
Makeactive?????? # 設置分區的活動標記
有必要解釋一下,當從USB硬盤啟動時,USB硬盤被認作hd0,本地磁盤被認作hd1,這和在Windows中看到的磁盤順序不同。根據grub文檔中的解釋,對于依賴 BIOS 確定驅動器順序的系統,如DOS、Windows,當它們不在第一個啟動磁盤的時候,需要用map命令把該磁盤映射為第一個磁盤。map命令一般應成對使用以保證可靠。
下載grub4dos(http://download.gna.org/grub4dos/),把veket目錄、menu.lst文件和grub4dos壓縮包中chinese目錄下的grldr文件復制到USB硬盤根目錄,然后創建grub目錄,把fonts中文字體文件、grub_chs.msg圖形菜單文件和splashimage.xpm.gz背景畫面文件復制進去,veket目錄和grldr文件不要使用NTFS磁盤壓縮。(如果只使用英文菜單,而且不準備美化菜單,則不需要grub目錄,并且刪除menu.lst文件中那兩行內容)
小技巧:如果啟動失敗進入到了grub的命令行,一般是系統識別到的USB設備號和menu.lst文件里寫的設備號不一致,可以輸入命令“root (”,然后按TAB鍵補全,grub會自動把系統識別到的設備號、分區等信息列出來,找到USB設備對應的設備號,修改menu.lst即可。
說明:
fontfile 的文件必須是 16 點陣字庫;
splashimage 的文件必須是640x480 14色的XPM格式,支持zip壓縮。在windows下可以先制作BMP文件,再用xnview或gimp for Windows保存成XPM,最后用7zip選擇gzip格式壓縮;
gfxmenu 的文件當前只能使用 Linux 下的 mkbootmsg 工具生成。
新手遇到的啟動失敗、中文菜單亂碼問題請注意看上文紅字標注!
?
? ? ? GRUB4DOS中文論壇: 時空論壇
? ? ? GUUB4DOS中文教程:http://grub4dos.sourceforge.net/wiki/index.php/Main_Page
? ? ? 高人BLOG:http://chenall.net/grub4dos/