2008年7月20日 星期日

PUD GNU/Linux

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為後綴的壓縮文件了。

2008年7月18日 星期五

製作Grub4dos背景圖片的簡單方法

grub當前版本僅支持16色 .XPM格式的圖像,且本身用了兩色,所以,圖像最多用14色。(希望以後版本會支持256色或更高)

使用以下兩個軟件進行轉換
xnView 1.91.1
下載地址:http://count.greendown.cn/view_down.asp?downd_id=13&downd=0&ID=8321&down=yes
IrfanView 4.0
下載地址:http://www.xdowns.com/soft/xdowns.asp?softid=31235&downid=35&id=34332

使用方法:
1、轉換為640X480大小、14色圖片:
IrfanView打開原始圖像
圖像>調整大小>設置新的尺寸:寬640,高480像素>確定
圖像>降低顏色深度>自定義(把顏色深度改為14色)>確定
文件>另存為,保存為abc.BMP圖像。
2、轉換為grub4dos可識別的xpm格式:
xnView打開上一步保存的圖像,文件>另存為,保存為xpm文件,例如abc.xpm。
也可以用壓縮軟件壓縮為.gz格式(7-zip支持這種格式)

現在,在menu.lst中添加 splashimage abc.xmp就行了。

Grub4dos安裝和啟動

GRUB4DOS的啟動方式有很多種,介紹如下:
1. 從MBR中啟動
2. 從分區啟動扇區中啟動
3. 在DOS命令行啟動
4.在Linux下啟動
5. 通過Windows NT/2000/XP/2003的啟動管理器啟動
6. 通過Windows Vista的啟動管理器啟動

從MBR中啟動
把GRUB4DOS啟動代碼安裝到MBR後,開機後便能直接進入GRUB4DOS。
安裝到MBR需要用到工具bootlace或grubinst,bootlace可運行在DOS,Windows 95/98/Me 和Linux下,而grubinst可運行在 Windows NT/2000/XP/2003/Vista,Linux 和 FreeBSD下。

在DOS,Windows 95/98/Me下,用bootlace把啟動代碼安裝到第一隻硬盤的MBR:
bootlace 0x80
在Linux下,用bootlace把啟動代碼安裝到IDE0上主設備的MBR:
bootlace /dev/hda
在Windows NT/2000/XP/2003/Vista下,用grubinst把啟動代碼安裝到第一隻硬盤的MBR:
grubinst (hd0)
在Linux/FreeBSD下,用grubinst把啟動代碼安裝到IDE0上主設備的MBR:
grubinst "(hd0)"

注意:grubinst有圖形界面grubinst_gui,利用它可以更簡單地把啟動代碼安裝到MBR/啟動扇區裡。
安裝啟動代碼到MBR後,還需要把grldr和menu.lst拷貝到硬盤上任意一個FAT16/FAT32/NTFS/EXT2分區的根目錄裡。 該方案的優點: 不依賴於操作系統能夠自動搜索硬盤上各個分區的grldr文件。從分區啟動扇區中啟動 GRUB4DOS的啟動代碼也可以安裝到某一FAT16/FAT32/NTFS/EXT2分區的啟動扇區中。當從該分區啟動時,會引導GRUB4DOS。

用grubinst把啟動代碼安裝到第一隻硬盤的第一個主分區裡:
grubinst (hd0,0)
或者
grubinst -p=0 (hd0)
安裝啟動代碼到啟動扇區後,還需要把grldr和menu.lst拷貝到該分區的根目錄裡。
該方案的優點: 不依賴於操作系統不需要修改MBR,因而可以使GRUB4DOS和其他的啟動管理器共存。

在CONFIG.SYS中啟動GRUB4DOS:
install=c:\some\where\grub.exe --config-file=FILE 在DOS命令行下啟動GRUB4DOS:

在DOS命令行啟動
grub.exe --config-file=FILE

如果沒有使用--config-file選項,缺省的菜單文件是 (hd0,0)/menu.lst。
FILE可以菜單文件的名字,也可以是菜單的內容。例如:
grub.exe --config-file="root (hd0,0);chainloader +1"

在DOS下啟動GRUB4DOS後,可以用quit命令返回到DOS中。 該方案的優點: 不需要修改MBR和啟動扇區,可以根據需要在腳本或者其它DOS程序中啟動GRUB4DOS。

在Linux下啟動
在Linux下,可以用以下的命令啟動GRUB4DOS:
kexec -l grub.exe kexec -e
注意:為了能在Linux下運行grub.exe,你需要使用打了kexec補丁的Linux內核。 該方案的優點: 不需要修改MBR和啟動扇區,可以根據需要在腳本或者其它Linux程序中啟動GRUB4DOS。

通過Windows NT/2000/XP/2003的啟動管理器啟動GRUB4DOS:
在 Windows NT/2000/XP/2003中,可以把grldr和menu.lst拷貝到C:\,然後在boot.ini的最後加上一行:
c:\grldr="Start GRUB4DOS"
如果boot.ini中的timeout值為零,把它設置為大於0的數字,例如timeout=30,然後保存boot.ini。 注意:boot.ini文件一般是隱藏的,你需要在文件夾選項中設置顯示所有文件,或者在cmd中使用以下命令來去掉boot.ini的隱藏屬性:
attrib -s -r -h c:\boot.ini
下一次啟動Windows時,你會發現啟動畫面中多了Start GRUB4DOS這一選項,使用它便可啟動GRUB4DOS。 該方案的優點:不需要修改MBR和啟動扇區。

通過Windows Vista的啟動管理器啟動GRUB4DOS:
首先,把grldr.mbr拷貝到C:\下,然後在cmd中使用以下的命令:
bcdedit /create /d "Start GRUB4DOS" /application bootsector bcdedit /set {id} device boot bcdedit /set {id} path \grldr.mbr bcdedit /displayorder {id} /addlast
然後把grldr和menu.lst拷貝到任意一個FAT16/FAT32/NTFS/EXT2分區的根目錄。 該方案也可應用於Windows NT/2000/XP/2003,但這些系統中修改啟動菜單不是使用bcdedit,而是通過在boot.ini的最後加上這樣的一行:
c:\grldr.mbr="Start GRUB4DOS"
下一次啟動Windows時,你會發現啟動畫面中多了Start GRUB4DOS這一選項,使用它便可啟動GRUB4DOS。該方案的優點: 不需要修改MBR和啟動扇區,能夠自動搜索硬盤上各個分區的grldr文件。