2011-11-24

Grubinst 初級使用 (Grub4DOS utility)

1. 介紹
grubinst是一個用來將GRUB4DOS安裝到硬盤的MBR(或者分區的引導扇區)以及映像文件中的工具。

grubinst.exe是一個命令行方式的程序,它的功能基本上與不點的GRUB4DOS發行包中的bootlace.com(可以運行在純DOS或者Linux環境)相同,但是跟bootlace.com不同,grubinst完全是用C語言開發的,能夠在Windows NT/2K/XP、Linux和FreeBSD等操作系統下編譯並運行。

grubinst_gui.exe是grubinst.exe的圖形界面shell程序,對於那些不熟悉命令行操作的用戶來說,它提供了更友好的圖形操作界面,目前,grubinst_gui.exe只能運行在Windows操作系統(事實上是只能運行在NT/2K/XP環境)下。

另外請注意,當前版本的grubinst不支持在Windows 95/98/ME下修改硬盤的MBR,對於這些操作系統,請使用bootlace.com。

2. grubinst跟bootlace.com的區別
在bootlace.com裡,硬盤盤等設備只能用設備的BIOS識別號來表示,如0x80表示第一塊硬盤,0x81表示第二塊硬盤等等。而在grubinst中,硬盤則可以用特定的設備文件名來表示(跟grub的傳統類似),如(hd0), (hd1)...。軟驅暫時還不支持這種表示方式。

grubinst支持幾個新的選項,主要用於恢復原來的MBR。

--save-mbr=FILENAME

This option is used to save the original MBR to FILENAME 這個選項用於保存原來的MBR到文件中。

--restore-mbr=FILENAME

這個選項用來從前面保存的文件中恢復原來的MBR。

--restore-prevmbr

這個選項用來恢復保存在硬盤或者映像文件中第二個扇區的原來的MBR。

正常情況下,原來的MBR只有一個扇區,它被保存在新的GRLDR MBR中的第二個扇區中。你可以用--restore-prevmbr選項來恢復它。然而,如果原來的MBR的長度超過一個扇區,例如,你安裝了別的引導管理軟件,那麼GRLDR MBR就沒有足夠的空間保存原來的MBR。在這種情況下,你應該使用--save-mbr=FILENAME將原來的MBR保存到一個外部文件中,需要時再使用--restore-mbr=FILENAME選項從保存的文件中恢復它。

3. 用法及示例
取自grubinst 1.1的--help。

grubinst   [選項]   設備或文件
選項:

--help,-h 顯示本幫助
--pause 退出前暫停
--version 顯示grubinst版本信息
--verbose,-v 輸出詳細信息
--list-part,-l 列出設備或者文件中的所有分區信息
--save=FN,-s=FN 保存原來的MBR/引導扇區到文件FN中。
--restore=FN,-r=FN 從前面備份的FN中恢復原來的MBR/引導扇區
--restore-prevmbr,-r 恢復保存在設備或者文件第二扇區中的原來的MBR
--read-only,-t 只是模擬操作,沒有真正的寫操作(測試模式)
--no-backup-mbr 不在第二扇區中備份原來的MBR。
--force-backup-mbr 強製備份原來的MBR到第二扇區(默認選項)
--mbr-enable-floppy 在軟驅上搜索grldr(默認選項)
--mbr-disable-floppy 禁止搜索軟驅上的grldr
--mbr-enable-osbr 當分區表非法時(通常是某操作系統的引導扇區),仍然啟動原來的MBR(默認選項)
--mbr-disable-osbr 當分區表非法時(通常是某操作系統的引導扇區),禁止啟動原來的MBR。
--duce (不明白,無法翻譯)disable the feature of unconditional entrance
to the command-line.
--boot-prevmbr-first 在搜索GRLDR之前嘗試首先啟動原來的MBR
--boot-prevmbr-last 在啟動原來的MBR之前先搜索GRLDR(默認選項)
--preferred-drive=D 優先啟動磁盤編號, 0 <= D < 255.
--preferred-partition=P 優先啟動分區編號, 0 <= P < 255.
--time-out=T,-t=T 在啟動原來的MBR之前等待T秒,如果T是0xff,無限等待,默認等待5秒
--hot-key=K,-k=K 如果在啟動原來的MBR之前按下了指定鍵,則啟動GRUB。K的長度為一個字(word),也就是int16/AH=1中斷的AX寄存器值。高位字節是對應按鍵的掃瞄碼,低位字節是ASCII碼。默認按鍵是0x3920,也就是空格鍵。
--key-name=S 指定熱鍵的顯示名
--floppy,-f 如果安裝目標是軟驅,則指定這個選項。
--floppy=N 如果安裝目標是硬盤的某個分區,則指定這個選項。N用來指定分區編號:0,
1,2和3對應主分區,4,5,6,...對應邏輯分區。
--sectors-per-track=S 對--floppy選項指定每磁道扇區數,1 <= S <= 63, 默認是63.
--heads=H 對--floppy選項指定磁頭數,1 <= H <= 256, 默認是255.
--start-sector=B 對--floppy=N選項指定隱藏扇區數。
--total-sectors=C 對--floppy選項指定總扇區數,默認是0。
--lba 對--floppy選項使用LBA方式。如果軟驅的BIOS支持LBA,你可以指定這個選項。
按規定所有的軟驅BIOS都支持CHS方式,所以最好指定--chs選項。如果既沒指定
--lba也沒指定--chs,則LBA指示字節(一般是啟動扇區第3字節)的值不會被改
變。
--chs 對--floppy選項使用chs方式。如果你的軟驅BIOS不支持LBA方式,你應該指定
--chs選項。我們假定所有的軟驅BIOS都支持CHS方式,所以推薦使用--chs選項。
如果既沒指定--lba也沒指定--chs,則LBA指示字節(一般是啟動扇區第3字節)
的值不會被改變。
--install-partition=I, -p=I 安裝引導扇區到指定硬盤(或硬盤映像)的分區I。
--boot-file=F,-b=F 改變默認啟動文件名(默認是grldr)。
--load-seg=S 改變啟動文件的默認內存加載段(默認是0x2000:0)。
--grub2,-2 裝載grub2的內核g2ldr而不是grldr。
--output,-o 輸出內置的grldr.mbr(受-b參數的影響)。

示例 1: 安裝GRLDR MBR到第一個硬盤

grubinst (hd0)

示例 2: 安裝GRLDR MBR 到磁盤映像文件disk.dsk

grubinst disk.dsk

示例 3: 恢復第一塊硬盤的單扇區MBR

grubinst --restore-prevmbr (hd0)

示例 4: 安裝GRLDR MBR到第一塊硬盤並保存原來的MBR到MBR.sav文件中。

grubinst --save-mbr=MBR.sav (hd0)

示例 5: 從保存的MBR.sav中恢復原來的MBR。

grubinst --restore-mbr=MBR.sav (hd0)

示例 6: 在啟動時10秒內按下空格才加載GRUB

grubinst --boot-prevmbr-first --time-out=10 (hd0)

4. 編譯方法
要編譯grubinst,在Linux/FreeBSD下你需要GCC,在Windows NT/2K/XP下你需要mingw或者Visual C++ 6.0。

mingw:

make -f Makefile.mgw

Visual C++ 6.0:

nmake -f Makefile.vc6

Linux GCC:

make -f Makefile.lnx

FreeBSD GCC:

make -f Makefile.bsd

這裡提供的二進制代碼使用mingw編譯。

2011-11-23

使用 Grub4Dos 來做隨身碟的開機管理

這是網路上關於 GRUB4DOS, 個人認為寫得最好的一篇文章. (原文. 作者 : Timmy)
上星期買印表機時, 送了一個 1G 的 USB 隨身碟. 由於容量不小, 自己每天也都是筆記型電腦帶來帶去的, 也沒什麼東西要用這個來存放. 最後想說, 這玩意也可以拿來開機, 我只要把一些常用的程式放到上頭去, 就可以取代原本的一堆緊急救援的光碟片了, 這樣子應該會方便許多. 不過這些光碟, 有些是 DOS, 有些是 Linux, 也有些是 XPE 的程式, 如果要都放在一個隨身碟上頭, 就必須要有個開機管理的程式, 能夠在開機時選擇要進到那一個系統才可以. 所以就想到了在 Linux 中常用的 grub 這個 boot loader, 剛好也有個 DOS 版本的 grub4dos 可以使用. 所以... 就決定使用 grub4dos 來處理了.
首先使用 grubutil 裡頭的 grubinst_gui.exe 程式, 把隨身碟的 MBR 修改成使用 grub 來開機, 然後把 grub4dos 的 grldr 放到隨身碟的根目錄中, 基本上, 這樣子做之後, 就會在開機後執行 grldr 來使用 grub 了.  剩下來的, 就是設定 grub 的各種開機選項了.  只要同樣在隨身碟的根目錄中, 建立一個 menu.lst 的文字檔, 設定 grub 的各種開機選項就可以了.
首先, 如果你的隨身碟要由 DOS (Windows 98 中的 DOS) 開機, 只要把 IO.SYS, MSDOS.SYS 與 COMMAND.COM 複製到隨身碟的根目錄中, 然後在 menu.lst 中加上下面的設定:


title DOS
chainloader /io.sys

這樣子在 grub 中就會出現 DOS 這個選項了. 選擇後就會透過 IO.SYS 來做一般 DOS 開機的動作了.

接著, 我還有用 NoN 的 XPE, 把 ISO 檔案內的 SETUPLDR.BIN, RXPE.COM, RXPE.IM_ 與 RXPE.SIF 放到隨身碟的根目錄, 再把 OUTTOOL 目錄複製一份到隨身碟中, 然後在 menu.lst 中加上下面的設定:

title NoName XPE
chainloader /setupldr.bin

這樣子在 grub 中會出現 NoName XPE 這個選項, 選擇後就會載入 NoN XPE 了.

接著, 經常使用的 memtest86 軟體, 建立一個 MEMTEST86 的目錄, 把 memtest86.bin 放到這個目錄下頭, 然後在 menu.lst 中加上下面的設定:

title MemTest86 3.4
kernel /memtest86/memtest.bin (fd0)
boot

這樣子在 grub 中選擇 MemTest86 3.4 就會執行 memtest86 軟體.

接著, 在 Linux 中, 經常使用 SystemRescueCd 這個光碟, 同樣也可以放到隨身碟中. 首先建立一個 SYSRCD 的目錄, 然後把光碟內的 sysrcd.dat 放到這個目錄下, 再把光碟內 isolinux 目錄下的 rescuecd 與 rescuecd.igz (如果你習慣選擇使用其他的 kernel 也可以, 如 x86-64 的 rescue64 與 rescue64.igz)也放到 SYSRCD 目錄內. 然後在 menu.lst 中加上下面的設定:

title SystemRescueCd
root     (hd0,0)
kernel /sysrcd/rescuecd subdir=sysrcd setkmap=us video=ofonly vga=0 cdroot
initrd /sysrcd/rescuecd.igz
boot

這樣子在 grub 中選擇 SystemRescueCd 就會載入 SystemRescueCd 的內容了.

如果你有使用 Acronis True Image 這個軟體, 可以先使用這個軟體, 產生回復光碟或光碟的 iso 檔案, 然後建立一個 ATIRCD 的子目錄, 把光碟內的 kernel.dat 與 ramdisk.dat 放到 ATIRCD 的子目錄中. 然後在 menu.lst 中加上下面的設定:

title    Acronis True Image
root (hd0,0)
kernel /atircd/kernel.dat quiet
initrd /atircd/ramdisk.dat /s
boot

這樣子在 grub 中選擇 Acronis True Image 這個選項, 就會執行 True Image 了.

如果你有 Windows 98 的開機片, 也可以把開機片做成一個 image 檔案 (winimage 或 linux 下頭直接用 dd 指令就可以), 如 win98.img 然後建立一個 WIN98 的目錄, 把這個檔案放到 WIN98 目錄中, 在 menu.lst 中加上下頭的設定:

title Windows 98 Boot Disk
map --mem (hd0,0)/win98/win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

這樣子 grub 會弄一個虛擬的軟碟機, 把這個 image 載入會再開機.

最後, 加上一些進入 grub shell, 由軟碟機開機, reboot, halt 指令的項目:

title GRUB Command Line
commandline
 
title Floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
 
title Reboot
reboot
 
title Halt
halt

這樣子就完成了. 整個 menu.lst 如下:

color black/cyan yellow/cyan
default 0
 
title DOS
chainloader /io.sys
 
title NoName XPE
chainloader /setupldr.bin
 
title MemTest86 3.4
kernel /memtest86/memtest.bin (fd0)
boot
 
title SystemRescueCd
root (hd0,0)
kernel /sysrcd/rescuecd subdir=sysrcd setkmap=us video=ofonly vga=0 cdroot
initrd /sysrcd/rescuecd.igz
boot
 
title Acronis True Image
root (hd0,0)
kernel /atircd/kernel.dat quiet
initrd /atircd/ramdisk.dat /s
boot
 
title Windows 98 Boot Disk
map --mem (hd0,0)/win98/win98.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
 
title Windows 98 Boot Disk with USB support
map --mem (hd0,0)/win98/w98usb.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
 
title GRUB Command Line
commandline
 
title Floppy (fd0)
chainloader (fd0)+1
rootnoverify (fd0)
 
title Reboot
reboot
 
title Halt
halt

經過這樣子的處理, 我們可以把一堆原本開機的軟碟片或光碟片, 都整合在一個小小的隨身碟中, 只要系統有支援 USB 開機 (現在應該沒有機器是不支援的吧), 就可以執行這些程式了. 同樣的方法, 並非只有 USB 隨身碟可以使用, 也可以使用在 USB 的硬碟機上頭. 剛好公司這幾天也發給我一個 WD 2.5" 160G 的 USB 硬碟來備份我的筆記型電腦 (老闆的電腦硬碟壞了一次怕到了, 給每個主管都配一個小硬碟來備份資料), 同樣使用 grub4dos, 把這些軟體都複製過去, 一樣可以拿來開機使用.

2007/12/06:

grub4dos 0.4.3 2007/11 之後的版本, 也支援直接由 .iso 的檔案中開機, 例如我們有個 ftool_203.iso, 可以用下面的方式來開機:

title FTool 2.0.3
map --mem (hd0,0)/ftool/ftool_203.iso (hd32)
map --hook
chainloader (hd32)
boot

只要指定 hd32 或更大的數字, 就表示該 image 是一個 ISO 9660 的光碟檔, 這樣子就可以了 (不過載入動作很慢, 就算是小檔案, 也要等一段不算短的時間, 檔案如果不小... 會有機器不動了的感覺). 不過, 如果你的系統是在光碟開機載入核心之後, 還會用到光碟的內容, 可能就會有問題 (以 NoN XPE 來說, 載入核心後會找不到 OUTTOOL 的檔案, 所以除了內建在核心的軟體外, 在 OUTTOOL 的程式不會出現).

2011-11-20

開機碟製作方法 --- 軟碟, 光碟 及 USB (FLASH KEY and HDD)

 
另外一篇---使用 Grub4Dos 來做隨身碟的開機管理 , 個人感覺更棒
source : SAVE-CoCo 心得筆記
軟碟機的開機片製作

目前最新的方法,是用usb開機,再早期一點就是開機光碟製作,使用軟式磁碟的電腦,恐怕是很舊很早期的電腦才有。方法相當簡單,如果您的電腦是 windows 98 的系統,或是更早的 dos 系統,只要在命令列模式下,將軟碟片放入a: 磁碟機,再執行format a:/s 的指令即可。另外還有一個方法,就是下載磁碟影像檔,直接將此影像檔寫入到磁片即可。
軟碟影像檔下載點 : Free Boot Disks . 如 dos6.22的dos版本,或 windows98 se的dos版本. 雙擊任一個執行之。
出現以下視窗,按確定。

20100111000


將磁片放入軟碟機,再按「確定」。

20100111001
 
 
開機光碟製作

開機光碟製作的方法,以前我都是用nero再加上dos的開機磁片,但現在3.5的磁碟機已經壞掉了,所以直接在網路上找到已經製作好的ISO檔,直接將ISO檔燒到光碟片即可用來開機了。
開機光碟下載:allbootdisks

usb flash key 開機碟製作

因為 usb flash key 愈來愈普遍,而且不必使用燒錄機即可製作,所以比起製作開機光碟,更方便更容易.

但是要注意的是太舊的電腦,可能不支援usb開機的功能 (我的一部 2002 年的電腦就不行 : GA-8PE667, USB HD 可以, 但是 USB FLASH KEY 就是無法成功…)。

製作 usb flash key 開機碟,常用的兩個工具分別是hp公司出品的hpusbfw及usboot這兩個工具。


hpusbfw使用方法


下載HPUSBFW

 

將下載下來的執行檔,安裝並執行之,出現如下的畫面。
請在device項目,請選擇你要做成用usb開機的那個隨身碟。
並將"Creat a DOS startup disk"打勾。
然後在底下指定系統開機檔案,將路徑指向任一存在dos開機檔案的資料夾。( hpusbfw安裝完成後,在c:\drivekey有HPUSBF.EXE及 HPUSBFW.EXE兩個檔案,任選一個解壓縮,將路徑指定在解壓縮的資料夾即可,別懷疑這兩個檔既是執行檔,也是壓縮檔,內含dos開機所需的檔案 。),接著按下 start就開始格式化了。
將格式化好的usb碟,放入電腦,並將電腦的bios開機順序,設定優先使用usb開機,這樣就可以從usb開機了。

1-12

usboot的使用方法
hpusbfw 會將 usb 格式為硬碟的格式,開完機會出現c:,如果執行一般的維護工作,當然是沒有問題,但如果使用在特殊情況,就不如 usboot 提供更多的模擬方式,例如在沒有光碟機的電腦安裝 windows xp 時,當然無法用開機光碟來安裝,必須使用磁片安裝,這樣就必須將usb碟格式化成軟碟機的格式才行。usboot,它可以將 usb 碟格式化成硬碟、zip 碟及軟碟的不同模式。
下載usboot繁體中文版, ver 1.70 內含 MS-DOS 7.1.


使用步驟如下:

1. 解壓縮後,執行Usboot170_CHT.exe,會出現警告訊息,請先確定usb隨身碟內是否有重要資料。
2. 出現如下主畫面之後,請先選取您要格式化的usb碟,千萬不要選錯了,否則下場會很悽慘喔!
3. 再選擇欲格式化的模式,HDD(硬碟)、ZIP磁碟或FDD(軟碟)模式。
4. 按下開始,即開始格式化。

1-13
5. 操作過程中,會要求拔出usb碟再插入。

2009-01-13 08-53-34
6. 完成後一個usb開機碟就完成了。

2009-01-13 08-54-49

 

usb hdd 開機碟製作 : 請參考 如何使外接式 USB 硬碟 ( USB HDD ) 也可以開機

如何使外接式 USB 硬碟 ( USB HDD ) 也可以開機

( source DIY-COMPUTER REPAIR : How to make a bootable usb hard drive )

Important : Not all USB devices are created equal. By that I mean not all USB flash, pen drives can be made into a bootable device. The best way to create a bootable USB drive is to use a utility that writes the files to the device. You can not do this to an external USB hard drive, external hard drives take the same procedure that a normal hard drive does.

Choice # 1: If you have a computer that you can disconnect the internal hard drive and boot from a cd or floppy here are the steps:
         1) Disconnect the internal hard drive (power or controller cable will do it)
         2) Connect the usb drive to the computer, start the computer with bootable cd (How to create a bootable CD) or floppy (How to create a bootable floppy).
         3) Once the system has booted into DOS, using FDISK partition the hard drive with one partition, make it a small partition, 2 gig max, ensure it is an active partition (How to Format a hard drive)
         4) Restart and format the drive, add the files you want to the C: drive.
         5) TEST the drive!
         6) Reconnect the internal drive

 
Choice # 2: If your system does not allow you to access the USB device with FDISK.
         1) Remove the drive from the external enclosure. 
         2) Disconnect the internal drive in your computer.
         3) Install/Connect the external drive in your computer
         4) Go into BIOS and check for the presence of the external drive.
         5) Start the computer with bootable cd or floppy.
         6) Follow the above instructions on FDISK and Format.
         7) TEST the drive!!
         8) Reverse installation procedures to put the drives back into
             original positions.

2011-11-12

我的電腦之一 P8Z68-V LX

 





2012-05-19_181331  
  2012-05-19_181345  
  2012-05-19_181352  
  2012-05-19_181357  
  2012-05-19_181404  
  2012-05-19_181414  
  2011-12-31_063437  

2011-11-11

解決 Windows Live Writer 無法輸入中文的問題

 Notes : WLW Build 14.0.8117.416 zh-tw 已解決

方法一: 先按 Ctrl+space 啟用中文輸入, 然後按 Shift+space 即可. Shift+space 是切換全型半型輸入的,很奇怪,不知道為什麼可以…. (時好時壞, 也許是我還不太會用)
方法二: 直接改用奇摩輸入法. (建議)