2008年7月19日 星期六

grub4dos 備忘

使用USB隨身碟開機的方式:
一開始要做的就是確定你的主機板有支援開機,在BIOS裡如果有floppy的開機選項,先關掉,也許就出現可用usb開機,再來就是把硬碟給disable掉,這是在製作隨身碟完成之後的事,為什麼我要先講,因為我就是卡在這卡了好久,一開始用dos做的開機碟都可以開機,但是遇到超過500MB的隨身碟當開機區後,主機板就抓不到,後來我把BIOS裡的硬碟都disable掉,神奇的是隨身碟就可以開機了,我也不知道為什麼,但是如果你有試不成的話,就試試看吧。
用HPUSBFW製作dos開機隨身碟(使用DOS系統檔案位置在:HPUSBFW同一目錄中)。
用grubinst_gui.exe(安裝GRUB到MBR的工具)製作grub開機選單。設定如圖:

menu.lst 的寫法:
# 開始的行,表示註釋,不執行
# 默認延遲時間(秒)
timeout 30

# 第一項為默認值
default 0

# 設置圖形背景文件
splashimage (hd0,0)/boot/grub/xp2008.gz

# 設置中文支持的字體文件
fontfile (hd0,0)/boot/grub/fonts.gz

title 使用map啟動本地硬盤上的瑞星殺毒軟盤鏡像文件
map (hd0,0)/boot/grub/rav.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 使用memdisk啟動本地 Win98 軟盤鏡像文件
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/win98.img

title 使用memdisk啟動本地硬盤上的瑞星殺毒軟盤壓縮鏡像文件
root (hd0,0)
kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppy
initrd /boot/rav.zip

title 啟動第一主分區(hd0,0)上的操作系統
rootnoverify (hd0,0)
makeactive
chainloader +1

title 啟動第二主分區(hd0,1)上的操作系統
rootnoverify (hd0,1)
makeactive
chainloader +1

title 重啟
reboot

title 關機
halt

參考上面這個例子,我們就可以根據自己需要對菜單進行修改。

比如從網上下載了效率源的鏡像文件,文件名為XLY.IMG。我們只需把
title 使用memdisk啟動本地 Win98 軟盤鏡像文件
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/win98.img

改成
title 硬盤檢測修復工具 效率源 (memdisk)
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/xly.img

或者改成
title 硬盤檢測修復工具 效率源 (map)
map (hd0,0)/boot/grub/xly.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

同時把xly.img文件保存到第一主分區(一般是C:)的boot\grub目錄下。
當然也可以保存到其它路徑。

比如xly.img文件保存到C:\boot下,則menu.lst文件相應改為:
map (hd0,0)/boot/xly.img (fd0)

又如xly.img文件保存到D:\test下,則menu.lst文件相應改為:
map (hd0,4)/test/xly.img (fd0)
(參看下面的注意d)

從上面的例子可以看出,啟動軟盤鏡像,有兩種方式,即用memdisk或用map。

用memdisk時,img文件可壓縮;在img文件大小為非1.44MB或2.88MB標準鏡像時,需要指定CHS參數。img文件的CHS參數可用winimage獲得。

即例子中的:
title 使用memdisk啟動本地硬盤上的瑞星殺毒軟盤壓縮鏡像文件
root (hd0,0)
kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppy
initrd /boot/rav.zip

另外,菜單文件中的文件路徑可用相對路徑(如:/boot/rav.zip)或絕對路徑(如:(hd0,0)/boot/grub/xly.img)表示。

map方式對軟盤映像大小沒有限制,但要求必須連續存放。改進的map --mem則無此限制。

比如:
map --mem /boot/xxx.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

注意:
a, 菜單文件中所用的memdisk.gz文件,不包括在grub4dos的發行包裡,需自行準備。可從gnu grub軟件包或從其它基於grub的工具(如一鍵ghost,本人的gghost)中獲得。

b, 菜單中所用的其它文件如xp2008.gz(背景文件)、fonts(中文字體文件)及各種鏡像文件等,均需拷貝到文件中指定路徑。 fontfile命令不可單獨使用,需與splashimage一起使用。

c, 菜單文件中的命令全部使用小寫。

d, 初學者使用絕對路徑時要注意GRUB對設備的命名方法。系統的第一個硬盤驅動器表示成(hd0),其上的第一個分區表示為(hd0,0),也就是說對於硬盤,採用(hdx,y)的形式來表示,x、y都是從0開始計數的,x表示硬盤號,y表示分區號。
由於主分區只能有四個,所以第一硬盤的四個主分區分別用(hd0,0)~(hd0,3)來表示;邏輯分區則從(hd0,4)開始算,即第一邏輯分區用(hd0,4),第二邏輯分區用(hd0,5)來表示,依次類推。
一般機子的硬盤都是一個主分區,其餘是邏輯分區。因此C盤用(hd0,0),D盤用(hd0,4)來表示。 光盤用(cd)表示,第一軟驅用(fd0)表示。

下面是我現在使用的菜單效果圖及menu.lst文件,供參考。
default 1
timeout 3
#fontfile /boot/grub/fonts
#splashimage /boot/grub/bg.xpm.gz
#password --md5 $1$8$D0mfzTIQXv2Ma2b5bWH0b.
title 0, Boot from Hard Drive (hd0,0)
root (hd0,0)
chainloader +1

title 1, GreenGhost [Ghost v8.3/v11] (MAP-HOOK)
map --mem /boot/grub/gghost.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title 2, GreenGhost [Ghost v8.3/v11] (MEMDISK)
kernel /boot/grub/memdisk.gz c=200 h=2 s=36 floppy
initrd /boot/grub/gghost.img

title 3, GreenGhost [Ghost v8.3/v11] (MAP-HOOK) [disable a20]
map --mem /boot/grub/gghost.img (fd0)
map --hook
chainloader --disable-a20 (fd0)+1
rootnoverify (fd0)

title 4, Microsoft Windows NT/2K/XP
find --set-root /ntldr
chainloader /ntldr

title 5, Microsoft Windows Vista
find --set-root /bootmgr
chainloader /bootmgr

title 6, Boot from Hard Drive (hd0,1)
root (hd0,1)
chainloader +1

title 7, Reboot
reboot

title 8, Shutdown
halt

把 B2DPureKGB 裝在隨身碟:
將 B2DPureKGB光碟裡\isolinux資料夾底下的linux26和minirt26.gz兩個檔案,放到隨身碟的BOOT資料夾裡,再把 KNOPPIX資料夾整個放到隨身碟上。注意不同版本的B2DPureKGB有時無法安裝成功( 開機後會停在 looking for cdrom in: hdc )!目前我使用B2DpureKGB20070309.iso可成功安裝。
在 menu.lst 加入:
title B2DpureKGB 2007-03-09
root (hd0,0)
kernel (hd0,0)/boot/linux26 ramdisk_size=100000 init=/etc/init lang=tw apm=power-off vga=788 nomce quiet BOOT_IMAGE=root
initrd (hd0,0)/boot/minirt26.gz

把 PUD Liux 裝在隨身碟:
將pud光碟裡的/BOOT、/CASPER這兩個資料夾,放到隨身碟的根目錄,VMLINUZ和INIRD.GZ這兩個檔案,放到隨身碟的BOOT資料夾裡。
在 menu.lst 加入:
title PUD GNU/Linux Home Edition
root (hd0,0)
kernel /BOOT/vmlinuz root=/ quiet splash vga=792 boot=casper show-cow wm=xfce4
initrd /BOOT/initrd.gz

title PUD GNU/Linux Home Edition to RAM (experimental)
root (hd0,0)
kernel /BOOT/vmlinuz root=/ quiet splash vga=792 boot=casper show-cow wm=xfce4 toram
initrd /BOOT/initrd.gz

title PUD GNU/Linux Professional Edition
root (hd0,0)
kernel /BOOT/vmlinuz root=/ quiet splash vga=792 boot=casper show-cow wm=ion3
initrd /BOOT/initrd.gz

title PUD GNU/Linux Simplified Chinese Edition
root (hd0,0)
kernel /BOOT/vmlinuz root=/ quiet splash vga=792 boot=casper show-cow wm=simp
initrd /BOOT/initrd.gz

在Windows下創建.tar.gz壓縮文件

在Windows下創建.tar.gz壓縮文件,可以使用「7-Zip」這個軟件。

下載地址:
http://www.crsky.com/soft/1307.html

方法如下:
1、通過「7-Zip」軟件裡的文件瀏覽器選擇需要壓縮的文件或文件夾;
2、點擊添加,選擇文件格式為tar,可得到一個.tar的壓縮文件;
3、選擇.tar文件,再點擊添加,選擇格式為Gzip,就得到了一個.tar.gz為後綴的壓縮文件了。