中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
系統(tǒng)引導(dǎo)過程及硬盤結(jié)構(gòu)和分區(qū)出現(xiàn)錯誤后解決辦法--寫我情真

系統(tǒng)引導(dǎo)過程及硬盤結(jié)構(gòu)和分區(qū)出現(xiàn)錯誤后解決辦法- -

                                      

首先發(fā)現(xiàn)大家在用硬盤安裝linux時(無論通過網(wǎng)絡(luò)或者下載安裝文件),經(jīng)常出現(xiàn)硬盤分區(qū)表錯誤,輕的把分區(qū)表搞壞,重的硬盤搞壞,而且到頭來根本不知道是哪里出了問題,所以我通過書本動手寫了下面的系統(tǒng)引導(dǎo)過程及硬盤結(jié)構(gòu),并且附上根據(jù)我的經(jīng)驗(yàn)在出現(xiàn)錯誤時的補(bǔ)救方法,希望能有所幫助



系統(tǒng)引導(dǎo)過程簡介

系統(tǒng)引導(dǎo)過程主要由以下幾個步驟組成(以硬盤啟動為例)
(1) 開機(jī);
(2) BIOS加電自檢(POST---Power On Self Test),內(nèi)存地址為0fff:0000;
(3) 將硬盤第一個扇區(qū)(0頭0道1扇區(qū),也就是Boot Sector)讀入內(nèi)存地址0000:7c00處;
(4) 檢查(WORD)0000:7dfe是否等于0xaa55.若不等于則轉(zhuǎn)去嘗試其他介質(zhì);如果沒有其他啟動介質(zhì),則顯示 ”No ROM BASIC” ,然后死機(jī);
(5) 跳轉(zhuǎn)到0000:7c00處執(zhí)行MBR中的程序;
(6) MBR先將自己復(fù)制到0000:0600處,然后繼續(xù)執(zhí)行;
(7) 在主分區(qū)表中搜索標(biāo)志為活動的分區(qū).如果發(fā)現(xiàn)沒有活動分區(qū)或者不止一個活動分區(qū),則停止;
(8) 將活動分區(qū)的第一個扇區(qū)讀入內(nèi)存地址0000:7c00處;
(9) 檢查(WORD)0000:7dfe是否等于0xaa55,若不等于則顯示 “Missing Operating System”,然后停止,或嘗試軟盤啟動;
(10) 跳轉(zhuǎn)到0000:7c00處繼續(xù)執(zhí)行特定系統(tǒng)的啟動程序;
(11) 啟動系統(tǒng).
以上步驟中(2),(3),(4),(5)步由BIOS的引導(dǎo)程序完成;(6),(7),(8),(9),(10)步由MBR中的引導(dǎo)程序完成.
一般多系統(tǒng)引導(dǎo)程序(如Smart Boot Manager, BootStar, PQBoot等)都是將標(biāo)準(zhǔn)主引導(dǎo)記錄替換成自己的引導(dǎo)程序,在運(yùn)行系統(tǒng)啟動程序之前讓用戶選擇想要啟動的分區(qū).而某些系統(tǒng)自帶的多系統(tǒng)引導(dǎo)程序(如LILO,NT Loader等)則可以將自己的引導(dǎo)程序放在系統(tǒng)所處分區(qū)的第一個扇區(qū)中,在Linux中即為兩個扇區(qū)的SuperBlock.
注:以上步驟中使用的是標(biāo)準(zhǔn)的MBR,多系統(tǒng)引導(dǎo)程序的引導(dǎo)過程與此不同.


硬盤結(jié)構(gòu)
硬盤參數(shù)
3D參數(shù)(Disk Geometry):CHS(Cylinder/Head/Sector) C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個二進(jìn)制位存儲);H-Head磁頭數(shù)表示硬盤總共有幾個磁頭,也就是幾面盤片,最大為256(用8個二進(jìn)制位存儲);S-Sector扇區(qū)數(shù)表示每條磁道上有幾個扇區(qū),最大為63(用6個二進(jìn)制位存儲).

引導(dǎo)扇區(qū)
Boot Sector組成
Boot Sector也就是硬盤的第一個扇區(qū),它由MBR(Master Boot Record), DPT(Disk Partition Table) 和 Boot Record ID三部分組成. MBR又稱為主引導(dǎo)記錄,占用Boot Sector的前446個字節(jié)(0~0x1BD),存放系統(tǒng)主引導(dǎo)程序(它負(fù)責(zé)從活動分區(qū)中裝載并且運(yùn)行系統(tǒng)引導(dǎo)程序). DPT即主分區(qū)表占用64個字節(jié)(0x1BE~0x1FD),記錄磁盤的基本分區(qū)信息.主分區(qū)表分為四個分區(qū)項(xiàng),每項(xiàng)16個字節(jié),分別記錄每個主分區(qū)的信息(因此最多可以有四個主分區(qū)). Boot Record ID即引導(dǎo)區(qū)標(biāo)記占用兩個字節(jié)(0x1FE~0x1FF),對于合法引導(dǎo)區(qū),它等于0xaa55,這是判別引導(dǎo)區(qū)是否合法的標(biāo)志). Boot Secor具體結(jié)構(gòu)如圖一
分區(qū)表結(jié)構(gòu)簡介
分區(qū)表由四個分區(qū)項(xiàng)構(gòu)成,每一項(xiàng)結(jié)構(gòu)如下:
BYTE State:分區(qū)狀態(tài),0=未激活,0x80=激活(注意此項(xiàng));
BYTE StartHead:分區(qū)起始磁頭號;
WORD StartSC:分區(qū)起始扇區(qū)和柱面號,底字節(jié)的底6位為扇區(qū)號,高2位為柱面號的第9,10位,高字節(jié)為柱面號的低8位;
BYTE Type:分區(qū)類型,如0x0B=FAT32,0x83=Linux等,00表示此項(xiàng)未用;
BYTE EndHead:分區(qū)結(jié)束磁頭號;
WORD EndSC:分區(qū)結(jié)束扇區(qū)和柱面號,定義同前;
DWORD Relative:在線性尋址方式下的分區(qū)相對扇區(qū)地址(對于基本分區(qū)即為絕對地址);
DWORD Sectors:分區(qū)大小(總扇區(qū)數(shù)).
在DOS或Windows系統(tǒng)下,基本分區(qū)必須以柱面為單位劃分(Sectors*Heads個扇區(qū)),如對于CHS為764/256/63的硬盤,分區(qū)的最小尺寸為256*63*512/1048576=7.875MB.
由于硬盤的第一個扇區(qū)已經(jīng)被引導(dǎo)扇區(qū)占用,所以一般來說,硬盤的第一個磁道(0頭0道)的其余62個扇區(qū)是不會被分區(qū)占用的.某些分區(qū)軟件甚至將第一個柱面全部空出來.

首先在硬盤分區(qū)時一定要注意,要搞清楚主分區(qū),擴(kuò)展分區(qū)和邏輯分區(qū)之間的關(guān)系以及位置,這個分區(qū)可以用fdisk或者diskman(diskgen),后面這兩個可以修改分區(qū)表等,相對來說功能比較全,安全性比較好,如果實(shí)在方便期間可以進(jìn)入windows安裝pqmagic分區(qū)魔術(shù)師,只要你操作正確這個也很安全(我就一直用這個給自己和別人搞分區(qū)
). 一般說來,如果事先裝了windows,那么windows的c盤就是hda1,windows剩下的盤(d,e,f...)構(gòu)成擴(kuò)展分區(qū)總稱為hda2,而其中的d,e,f...分別都是邏輯分區(qū),一般分別為hda5,hda6,hda7...,至于為什么,原因在上面都說清楚了,而你要安裝的linux分區(qū)和swap最好分在hda3,hda4(或者其他主分區(qū))上,因此要注意不要分在擴(kuò)展分區(qū),這在pqmagic中可以看的很清楚!!

分好區(qū)后就可以安裝了,如果在安裝的過程中出現(xiàn)錯誤而導(dǎo)致安裝失敗,這個時候千萬不要著急,首先找到安裝windows的光盤進(jìn)入修復(fù)控制臺輸入下面兩個命令:
代碼:
fixmbr            fixboot c:

重啟,看可不可以啟動windows,如果不可以,進(jìn)入dos,輸入
代碼:
fdisk /mbr

再重啟,看可以啟動windows嗎,如果仍然不行,重復(fù)一下上面用windows光盤的方法,如果這樣后仍然無效,可以用diskman或者diskgen再修復(fù)試試,這些方法如果都不行,那就確保c盤沒有重要文件后重裝windows吧,如果你實(shí)在不想重裝windows那就再試試linux的安裝,如果此時linux安裝成功,那么一切問題都解決了,windows也恢復(fù)正常


另外,如果再雙系統(tǒng)中windows你重裝了,那么也要修復(fù)一下linux,我知道的方法就是用安裝光盤重裝grub,
進(jìn)入linux rescue模式后,輸入
代碼:
chroot /mnt/sysimage #改變你的根目錄            grub-install /dev/hda #安裝grub到mbr
1.lilo(LInux LOader)
LILO引導(dǎo)扇區(qū)包括一個分區(qū)表的空間,所以,LILO即可以安裝在MBR中,也可以安
裝在某個分區(qū)的引導(dǎo)扇區(qū)。LILO擁有DOS引導(dǎo)扇區(qū)的所有功能,而且,它還可以引導(dǎo)
邏輯扇區(qū)和第二硬盤分區(qū)。LILO還可以和另外的引導(dǎo)者合作(例如:NT loader),這樣,
用戶就可以有很多選擇。
(注:以下幾個標(biāo)題,為防止引起歧義,用原文)
1.1 LILO started by MS-DOS MBR
如果系統(tǒng)至少有一個linux主分區(qū),(非交換區(qū),且在第一硬盤上),那么LILO就可
以安裝在這些分區(qū)中的一個。當(dāng) LILO對應(yīng)分區(qū)被激活后,引導(dǎo)過程如下:
BIOS 讀入 MBR
MBR 讀入 活躍主分區(qū):LILO所在的分區(qū)。
LILO 引導(dǎo)Linux或另外的操作系統(tǒng)。
要引導(dǎo)其它OS且不用LILO很簡單,激活那個分區(qū)。Linux分區(qū)沒有任何變化,非常安全。

1.2 LILO started by a boot manager
假如用戶不想刪除老的boot manager,或者某個OS LILO不能引導(dǎo),可以考慮該途徑。
1. 假如boot manager可以引導(dǎo)擴(kuò)展區(qū),那兒是LILO的好去處。
2. 假如 boot manager 可以引導(dǎo)第二硬盤分區(qū),linux可以裝在第二硬盤上。
3 有些 boot manager 甚至可以引導(dǎo)邏輯分區(qū),那LILO就可以裝在邏輯分區(qū)上。
當(dāng)然,也要注意以下情況:
1 某些操作系統(tǒng)直接改寫MBR,這會將原來的boot manager破壞。
2 重新分區(qū)會破壞擴(kuò)展分區(qū)的引導(dǎo)扇區(qū),這時LILO可能要重裝。
當(dāng)安裝新的系統(tǒng)時,是否要重新安裝(linux)依靠新的boot manager,要么LILO引
導(dǎo)扇區(qū)被注銷,要么boot manager 為它提供一個引導(dǎo)項(xiàng)。重新分區(qū)或分區(qū)格式化會將
LILO和linux全部刪除。

1.3 LILO占據(jù)MBR
假如整個linux系統(tǒng)都在第二硬盤上,且第一硬盤沒有擴(kuò)展分區(qū),那么,LILO只有裝
在MBR上。這樣,會將老的MBR沖去,所以,在安裝LILO前,要將老的MBR(包括分區(qū)
表)做一個備份。DOS下有很多工具可以完成這個任務(wù)。在linux下,這樣備份:

# dd if=/dev/hda of=/backup/MBR bs=512 count=1

寫會使用命令:
# dd if=/backup/MBR of=/dev/hda bs=446 count=1
這樣,原來的MBR就被寫會但不包括分區(qū)表。如果分區(qū)表也要恢復(fù),那么bs=512.
注意,這樣,新的分區(qū)表會被破壞!

1.4 LILO 文件
與LILO有關(guān)的文件通常放在/boot/下,配置文件lilo.conf在/etc/下。包含實(shí)際
引導(dǎo)系統(tǒng)信息的映射文件有/sbin/lilo安裝。對于任何LILO安裝,配置文件應(yīng)該被定
置以適合個人需要。
The configuration file:配置文件
基本上,配置文件是一些變量賦值。每一行包含一個標(biāo)志變量或一個變量賦值.
配置文件被特殊的變量賦值分成幾個區(qū),每個區(qū)引導(dǎo)一個linux或其它OS.
下面解釋常見的行:

boot = device
說明那一個設(shè)備或哪一個分區(qū)包含引導(dǎo)扇區(qū)。假如沒有給boot賦值,取當(dāng)前缺省值。

compact
激活一種模式,在此模式下,LILO一次向BIOS請求讀入相鄰的幾個分區(qū)。這極大的
縮短了裝載時間,特別是從軟盤啟動。

delay=tenths
以10秒為單位,規(guī)定LILO在引導(dǎo)第一個引導(dǎo)配置前應(yīng)等待用戶的時間。若沒有定義,則
直接引導(dǎo)。

Linear
使LILO生成線性地址,而不使用通常的Sector/Head/Cylinder機(jī)制。Linux地址機(jī)制
可以不依賴磁盤的物理結(jié)構(gòu)。

install = boot sector
使用指定的boot sector寫入引導(dǎo)扇區(qū),缺省用/boot/boot.b

disktab=disktab
使用指定的disktab,缺省使用/boot/disktab.disktab保存了硬盤物理結(jié)構(gòu)信息。

map=map file
說明映射文件的路徑。

message=file 指
定一個文件,該文件的內(nèi)容將會在LILO引導(dǎo)是被顯示。假如沒有說明該文件,那么就
只會出現(xiàn)"LILO"。

verbose=level
說明LILO的調(diào)試級別。從0(不顯示任何信息)到5(所有的狀態(tài)信息)。

backup = backup file
以前引導(dǎo)扇區(qū)內(nèi)容的備份文件。缺省使用/boot/boot.device number

force-backup=backup file
和backup 相同,當(dāng)時假如備份文件存在,被覆蓋。

prompt
指定要用戶通過鍵盤選擇要引導(dǎo)的內(nèi)核。不會缺省選擇。

timeout=tenths
設(shè)置一個超時值,在此時間內(nèi)必須有鍵盤輸入,否則用第一個配置。類似,假如超
時,就不能再輸入密碼。一般情況下,該取缺省值,無窮大。
注:delay 與 timeout的區(qū)別(joe 認(rèn)為),delay 是"LILO"出現(xiàn)后用戶必須有
輸入的最長時間。timeout 是用戶在按了任意鍵后,系統(tǒng)等待選擇,用戶
兩次擊鍵的最大間隔時間。

serial=port, bps parity bits
設(shè)置串口參數(shù)。如果LILO會從該文件獲取串口參數(shù)的話。如果其中之一無效,
那所有三個參數(shù)都無效。Port從四個標(biāo)準(zhǔn)串口選擇一個:0對應(yīng)COM1 或者
/dev/ttyS0.。支持的波特率范圍為:100-9600。所有校驗(yàn)設(shè)置都支持
(n:none,e:even,o
dd)
bits為7或者8。缺省為serial=0,2400n8.

Ignore-table
讓LILO忽略被破壞的分區(qū)表。

fix-table
允許LILO將每個分區(qū)的(sector/head/cylinder)地址轉(zhuǎn)化為線性地址。通常,
分區(qū)地址從cylinder boudary開始。某些操作系統(tǒng),會改變這一點(diǎn)。由于LILO只能
將它的啟動扇區(qū)寫于兩種地址都一致的分區(qū)上,不正確的3D地址可以用fix-table
來糾正。但是,這種糾正不能被保證是永遠(yuǎn)的,所以重分區(qū)以保證對齊cylinder
boudary 是最好的選擇。

password=password
為引導(dǎo)配置設(shè)置password

restricted
放松對password的限制。只有用戶想傳附加的啟動參數(shù)給內(nèi)核時才需要password

optional
允許配置的幾個內(nèi)核有錯誤的,或者不存在,如果不說明optional,LILO遇到這種
情況就會打印一些錯誤信息然后退出。

每個從LILO引導(dǎo)的配置從image行開始。
Image = kernel
Label = name
Image包含要引導(dǎo)的內(nèi)核。Label是給用戶選擇用的。Image行通常指向一個設(shè)備,
例如/dev/fd0,可以找到內(nèi)核的范圍用range來注明。
range = range
range可以用start sector -end sector 或者 start sector + length 表示。例如:
image = /dev/fd0
label = floppy
range = 1+512
以下變量賦值有可能出現(xiàn):
append=string
將string作為引導(dǎo)參數(shù)傳給內(nèi)核。例如,硬件參數(shù)。
literal=string
和append查不多。但是,他會沖掉原來的設(shè)置。所以不能被全局說明。
ramdisk=size
設(shè)置RAM disk的大小。
read-only
read-write
設(shè)置根文件系統(tǒng)的訪問方式。
root=device
設(shè)置根文件系統(tǒng)存在的設(shè)備。
vga=mode
屏幕設(shè)置。可能模式為:normal,extended 和ask. 。
以下設(shè)置是針對別的操作系統(tǒng)的:
loader=loader
說名用來引導(dǎo)操作系統(tǒng)的文件。缺省為 /boot/chain.b . 另外,LILO包含以
下的loader:
os2_d.b 可以從第二硬盤上引導(dǎo)os/2
any_d.b 在引導(dǎo)操作系統(tǒng)之前試圖將兩個硬盤的次序顛倒,從而可以引導(dǎo)第二硬盤
上的os.
table=device
說明一個設(shè)備,該設(shè)備的某個分區(qū)上存放要引導(dǎo)的os.假如沒有說明table,
LILO就不會將該信息傳給要引導(dǎo)的osunsafe
關(guān)掉對要引導(dǎo)的os的檢查。只有要從軟盤引導(dǎo)時,才使用該設(shè)置。沒有該設(shè)置,
每次map installer開始運(yùn)行時,引導(dǎo)盤都要插入軟驅(qū)。
The disktab file
disktab文件包含LILO要引導(dǎo)的設(shè)備的物理結(jié)構(gòu)信息。通常,這些信息可以從設(shè)備驅(qū)
動程序獲取。所以,只有這種方法不行時才會用到disktab 文件。在此情況下,如
果文件不能用,LILO報(bào)告錯誤信息:
geo_query_dev HDIO_GETGEO(dev …)
或者
HDIO_REQ not supported for your SISI controller
Please use /boot/disktab
然后,物理結(jié)構(gòu)信息就必須手工地輸入。
# /boot/distab-LILO parameter table
#
#This table contains the geometry parameters for SCSI and
# IDE disks,which can not be recognized automatically
# Entries in this table overwrite recognized parameters!
#
# Dev. BIOS Secs/ Heads/ Cylin - Par.
# num. Code track cyLin. Ders. Offset
(optional)
#0x800 0x80 32 64 202 0 # /dev/sda
各個域含義如下:
0x800
設(shè)備號.由主副設(shè)備號組成。
設(shè)備號.由主副設(shè)備號組成。
0x80
設(shè)備的BIOS 碼。0x80代碼系統(tǒng)的第一個硬盤。0x81第二個,。。。。
所有同一硬盤上的分區(qū)該值相同。
32,64,203
sector 數(shù)目(每個track)
heads 數(shù)目
cylinders 數(shù)目
0
分區(qū)的開始。也可以從分區(qū)表中讀,所以可以不說明。

1.5 LILO 啟動信息
在啟動過程中,LILO會顯示‘LILO‘,如果LILO出錯退出,可以根據(jù)顯示來判斷系統(tǒng)的
出錯原因。
沒有信息:LILO根本就沒有被讀入,沒安裝LILO,或LILO駐留的分區(qū)沒被激活。
Lnumber : LILO的第一部分被讀入并開始執(zhí)行。但第二部分不能被讀入。后面
的數(shù)字表明出錯原因。這可能是由于硬盤的物理錯誤或不正確的物理結(jié)構(gòu)信息。
LI: LILO的第一部分可以讀入第二部分,第二部分執(zhí)行時出錯。這可能是不正
確的物理結(jié)構(gòu)信息或重裝了boot.b而沒有運(yùn)行LILO重新安裝。
LIL:LILO的第二部分啟動起來了,但是不能從map文件讀入descriptor tables.
這說明不正確的物理結(jié)構(gòu)信息或物理錯誤。
LIL?: LILO的第二部分被讀到不正確的地址。原因同LI
LIL-: descriptor tables有錯。這可能是不正確的物理結(jié)構(gòu)信息或重裝了
map file而沒有運(yùn)行LILO重新安裝。
2.GRUB (GRand Unified Boot loader)
2.1GRUB基礎(chǔ)
    2.1.1. 什么是 GRUB?
  GRUB 是引導(dǎo)裝入器 -- 它負(fù)責(zé)裝入內(nèi)核并引導(dǎo) Linux 系統(tǒng)。GRUB 還可以引導(dǎo)其它操作系統(tǒng),如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。盡管引導(dǎo)操作系統(tǒng)看上去是件平凡且瑣碎的任務(wù),但它實(shí)際上很重要。如果引導(dǎo)裝入器不能很好地完成工作或者不具有彈性,那么就可能鎖住系統(tǒng),而無法引導(dǎo)計(jì)算機(jī)。另外,好的引導(dǎo)裝入器可以給您靈活性,讓您可以在計(jì)算機(jī)上安裝多個操作系統(tǒng),而不必處理不必要的麻煩。
    2.1.2 GRUB 很棒
  幸好,GRUB 是一個很棒的引導(dǎo)裝入器。它有許多功能,可以使引導(dǎo)過程變得非??煽?。例如,它可以直接從 FAT、minix、FFS、ext2 或 ReiserFS 分區(qū)讀取 Linux 內(nèi)核。這就意味著無論怎樣它總能找到內(nèi)核。另外,GRUB 有一個特殊的交互式控制臺方式,可以讓您手工裝入內(nèi)核并選擇引導(dǎo)分區(qū)。這個功能是無價的:假設(shè) GRUB 菜單配置不正確,但仍可以引導(dǎo)系統(tǒng)。哦,對了 -- GRUB 還有一個彩色引導(dǎo)菜單。我們只是剛開始。
    2.1.3. 為什么使用 GRUB?
  您也許會奇怪,為什么全世界都需要 GRUB -- 畢竟,Linux 世界在很長一段時間里一直使用 LILO 引導(dǎo)裝入器,而且它可以讓上百萬的 Linux 用戶引導(dǎo)系統(tǒng)。是的,的確是這樣,LILO 很有效。但是,LILO 的維修率很高,而且很不靈活。與其花很多時間來描述 GRUB 的優(yōu)點(diǎn),還不如演示如何創(chuàng)建自己的 GRUB 引導(dǎo)盤以及如何使用它來引導(dǎo)系統(tǒng)。然后,我將說明 GRUB 的一些很“酷”的技術(shù)細(xì)節(jié),并指導(dǎo)您完成將 GRUB 安裝到 MBR(主引導(dǎo)記錄)的過程,以使它成為缺省引導(dǎo)裝入器。
  如果您有點(diǎn)膽小,不必害怕。可以學(xué)習(xí)本教程的前半部分,創(chuàng)建 GRUB 引導(dǎo)盤,嘗試使用 GRUB 而不必弄亂現(xiàn)有的引導(dǎo)裝入器。或者,可以用其安全的“駐留”方式來熟悉 GRUB。那么,讓我們立即開始吧。

2.2安裝GRUB
    2.2.1. 下載 GRUB
  要開始探究 GRUB 的精妙之處,首先需要下載、編譯和安裝它。但不要害怕 -- 根本不會修改您的引導(dǎo)記錄 -- 我們只是要編譯和安裝 GRUB,就像其它程序一樣,在此過程中我們可以創(chuàng)建 GRUB 引導(dǎo)盤。請不要擔(dān)心;在修改引導(dǎo)過程之前,我會告訴您。
  現(xiàn)在開始。訪問 ftp://alpha.gnu.org/gnu/grub/ 并下載可以找到的最新版本的 GRUB tar 壓縮包。我編寫本教程時,最新的 tar 壓縮包是 grub-0.5.96.1.tar.gz。下載了最新版本后,就可以安裝了。
    2.2.2 安裝期
  這里是從 tar 壓縮包安裝 GRUB 所需輸入的命令。我將在 /tmp 中編譯源文件,并將所有部分都安裝到硬盤的 /usr 目錄下。從 root 用戶,輸入以下命令:
  # cd /tmp
  # tar xzvf /path/to/archive/here/grub-0.5.96.1.tar.gz
  # cd grub-0.5.96.1
  # ./configure --prefix=/usr
  # make
  # make install
  現(xiàn)在已經(jīng)安裝了 GRUB,準(zhǔn)備開始使用它。
2.2.3. 制作引導(dǎo)盤
  要制作引導(dǎo)盤,需執(zhí)行一些簡單的步驟。首先,在新的軟盤上創(chuàng)建 ext2 文件系統(tǒng)。然后,將其安裝,并將一些 GRUB 文件復(fù)制到該文件系統(tǒng),最后運(yùn)行 "grub" 程序,它將負(fù)責(zé)設(shè)置軟盤的引導(dǎo)扇區(qū)。準(zhǔn)備好了嗎?
  好,將一張空盤插入 1.44MB 軟驅(qū),輸入:
  # mke2fs /dev/fd0
  創(chuàng)建了 ext2 文件系統(tǒng)后,需要安裝該文件系統(tǒng):
  # mount /dev/fd0 /mnt/floppy
  現(xiàn)在,需要創(chuàng)建一些目錄,并將一些關(guān)鍵文件(原先安裝 GRUB 時已安裝了這些文件)復(fù)制到軟盤:
  # mkdir /mnt/floppy/boot
  # mkdir /mnt/floppy/boot/grub
  # cp /usr/share/grub/i386-pc/stage1 /mnt/floppy/boot/grub
  # cp /usr/share/grub/i386-pc/stage2 /mnt/floppy/boot/grub
  只需要再有一個步驟,就能得到可用的引導(dǎo)盤。
  解壓、編譯和安裝 GRUB 源 tar壓縮包時,會將程序 grub 放到 /usr/sbin 中。該程序非常有趣并值得注意,因?yàn)樗鼘?shí)際上是 GRUB 引導(dǎo)裝入器的半功能性版本。是的,盡管 Linux 已經(jīng)啟動并正在運(yùn)行,您仍可以運(yùn)行 GRUB 并執(zhí)行某些任務(wù),而且其界面與使用 GRUB 引導(dǎo)盤或?qū)?GRUB 安裝到硬盤 MBR 時看到的界面完全相同。
  這是有趣的設(shè)計(jì)策略,現(xiàn)在該使用駐留版本的 GRUB 來設(shè)置引導(dǎo)盤的引導(dǎo)扇區(qū)了。從 root 用戶,輸入 "grub"。GRUB 控制臺將啟動,顯示如下:
   GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
   [ Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists the possible
  completions of a device/filename. ]
  grub>
  歡迎使用 GRUB 控制臺?,F(xiàn)在,研究命令。
  在 grub> 提示符處,輸入:
  grub> root (fd0)
  grub> setup (fd0)
  grub> quit
  現(xiàn)在,引導(dǎo)盤完成了。在繼續(xù)下一步驟之前,在看一下剛才輸入的命令。第一個 "root" 命令告訴 GRUB 到哪里查找輔助文件 stage1 和 stage2。缺省情況下,GRUB 會在指定的分區(qū)或磁盤上的 /boot/grub 目錄中進(jìn)行查找。在安裝引導(dǎo)盤時,也就是幾分鐘以前,我們已將這些文件復(fù)制到正確的位置。接著,輸入了 setup 命令,它告訴 GRUB 將引導(dǎo)裝入器安裝到軟盤的引導(dǎo)記錄上;我們將在以后詳細(xì)討論這一過程。然后退出?,F(xiàn)在,已經(jīng)制作好引導(dǎo)盤,可以開始使用 GRUB 了。

2.3使用GRUB
    2.3.1. 準(zhǔn)備
  使用 GRUB 引導(dǎo)系統(tǒng)之前,需要知道一些信息。首先,應(yīng)知道哪個分區(qū)保存了 Linux 內(nèi)核,以及 root 文件系統(tǒng)的分區(qū)名稱。然后,應(yīng)查看現(xiàn)有 LILO 配置來尋找需要傳遞給內(nèi)核的變量,如 "mem=128M"。一旦獲取了這些信息,就可以開始了。
    啟動GRUB
  要啟動 GRUB,需要關(guān)閉系統(tǒng)并退出引導(dǎo)盤。如果由于某些原因而不能立即關(guān)閉系統(tǒng)(比如上班時在部門的服務(wù)器上測試 GRUB),那么只要在提示中輸入 "grub" 并繼續(xù)操作。所有程序的運(yùn)行情況都不會改變,只是您不能執(zhí)行引導(dǎo)(因?yàn)?Linux 正在運(yùn)行)。
    2.3.2 首次接觸
  裝入引導(dǎo)盤時,在屏幕頂部將出現(xiàn)一條消息,告訴您正在裝入第一階段和第二階段。幾秒后,將會出現(xiàn)一個熟悉的屏幕,顯示如下:
   GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
   [ Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists the possible
   completions of a device/filename. ]
  grub>
  可以看到,這些內(nèi)容與在 Linux 中以駐留方式運(yùn)行 GRUB 時出現(xiàn)的消息完全相同 -- 只不過現(xiàn)在我們是使用 GRUB 來引導(dǎo) Linux。
    2.3.3. "root"
  在 Linux 中,當(dāng)談到 "root" 文件系統(tǒng)時,通常是指主 Linux 分區(qū)。但是,GRUB 有它自己的 root 分區(qū)定義。GRUB 的 root 分區(qū)是保存 Linux 內(nèi)核的分區(qū)。這可能是您的正式 root 文件系統(tǒng),也可能不是。例如,在 Gentoo Linux 中,有一個單獨(dú)的小分區(qū)專用于保存 Linux 內(nèi)核與引導(dǎo)信息。大多數(shù)情況下,我們不安裝這個分區(qū),這樣在系統(tǒng)意外崩潰或重新引導(dǎo)時,就不會把它弄亂。
  這些,我們討論的是 GRUB,需要指定 GRUB 的 root 分區(qū)。進(jìn)入 root 分區(qū)時,GRUB 將把這個分區(qū)安裝成只讀型,這樣就可以從該分區(qū)中裝入 Linux 內(nèi)核。GRUB 的一個很“酷”的功能是它可以讀取本機(jī)的 FAT、FFS、minix、ext2 和 ReiserFS 分區(qū),我們很快就會討論這個功能。但現(xiàn)在,讓我們輸入 root 分區(qū)。在提示中輸入 root,但不要按 Enter 鍵:
   grub> root (
  現(xiàn)在,按一次 Tab 鍵。如果系統(tǒng)中有多個硬盤,GRUB 將顯示可能完成的列表,從 "hd0" 開始。如果只有一個硬盤,GRUB 將插入 "hd0,"。如果有多個硬盤,繼續(xù)進(jìn)行,在 ("hd2") 中輸入名稱并在名稱后緊跟著輸入逗號,但不要按 Enter 鍵。部分完成的 root 命令看起來如下:
  grub> root (hd0,
  現(xiàn)在,繼續(xù)操作,再按一次 Tab 鍵。GRUB 將顯示特定硬盤上所有分區(qū)的列表,以及它們的文件系統(tǒng)類型。在我的系統(tǒng)中,按 Tab 鍵時得到以下列表:
   grub> root (hd0, (tab)
   Possible partitions are:
   Partition num: 0, Filesystem type is ext2fs, partition type 0x83
   Partition num: 1, Filesystem type unknown, partition type 0x82
   Partition num: 2, Filesystem type unknown, partition type 0x7
   Partition num: 4, Filesystem type is reiserfs, partition type 0x83
   Partition num: 5, Filesystem type is reiserfs, partition type 0x83
  如您所見,GRUB 的交互式硬盤和分區(qū)名稱實(shí)現(xiàn)功能非常有條理。這些,只需要好好理解 GRUB 新奇的硬盤和分區(qū)命名語法,然后就可以繼續(xù)操作了。
    2.3.4. GRUB 命名約定
  到目前為止,您可能會感到一點(diǎn)困惑,因?yàn)?GRUB 所使用的硬盤/分區(qū)命名約定與 Linux 使用的命名約定不同。在 Linux 中,第一個硬盤的第五個分區(qū)稱作 "hda5"。而 GRUB 把這個分區(qū)稱作 "(hd0,4)"。GRUB 對硬盤和分區(qū)的編號都是從 0 開始計(jì)算。另外,硬盤和分區(qū)都用逗號分隔,整個表達(dá)式用括號括起?,F(xiàn)在,回來看一下 GRUB 提示,可以發(fā)現(xiàn)如果要引導(dǎo) Linux 硬盤 hda5,應(yīng)輸入 "root (hd0,4)"。如果已經(jīng)明白了 GRUB 硬盤/分區(qū)命名,您也許要調(diào)整當(dāng)前 root 命令行,以使它指向保存 Linux 內(nèi)核的分區(qū)。按以下格式輸完命令,然后按 Enter 鍵:
   grub> root (hd0,4) (hit enter)
   Filesystem type is reiserfs, partition type 0x83
    2.3.5. 裝入內(nèi)核
  現(xiàn)在已安裝了 root 文件系統(tǒng),到裝入內(nèi)核的時候了。在 GRUB 提示中,依次輸入 "kernel"、空格、到內(nèi)核的路徑、空格、內(nèi)核參數(shù),如 root 參數(shù)(GRUB 將自動插入適當(dāng)?shù)?"mem=" 參數(shù))。我在我的系統(tǒng)中輸入:
   grub> kernel /boot/bz2.4 root=/dev/hda5
   [Linux-bzImage, setup=0x1200, size=0xe1a30]
  請留意 "root=" 內(nèi)核參數(shù),它非常重要。它應(yīng)該指向保存 root 文件系統(tǒng)的 Linux 分區(qū)。您也許要寫下到目前為止輸入的命令,這樣在教程后面講述如何創(chuàng)建 GRUB 引導(dǎo)菜單時,就可以迅速找到它們。
    2.3.6. Root,內(nèi)核,引導(dǎo)!
  您已經(jīng)安裝了 root 文件系統(tǒng)并裝入了內(nèi)核?,F(xiàn)在,可以引導(dǎo)了。只要輸入 "boot",Linux 引導(dǎo)過程就將開始。

2.4GRUB內(nèi)幕
    2.4.1. 重新調(diào)查引導(dǎo)軟盤
  如果一切正常,就可以使用使用 GRUB 引導(dǎo)盤來引導(dǎo)當(dāng)前 Linux 發(fā)行版。如您所見,GRUB 是功能非常強(qiáng)大的引導(dǎo)裝入器,它讓您可以隨意動態(tài)配置以進(jìn)行引導(dǎo)。我將向您介紹如何創(chuàng)建 GRUB 引導(dǎo)菜單,這樣就可以從菜單中進(jìn)行 OS 選擇,而不是輸入三行命令來引導(dǎo) Linux。但在動手之前,現(xiàn)在是深入了解 GRUB 幕后是如何工作的好時機(jī)。我將說明引導(dǎo)盤引導(dǎo)過程的工作原理,這樣您就可以對 GRUB 有一個更好的評價和了解。
    2.4.2. 兩階段過程
  要制作引導(dǎo)軟盤,需要做兩件事 -- 將文件復(fù)制到軟盤的 ext2 文件系統(tǒng)的 /boot/grub 目錄中,運(yùn)行 GRUB 的安裝程序。運(yùn)行 GRUB 安裝程序時,GRUB 將 "stage 1" 裝入器安裝到軟盤的引導(dǎo)記錄中。它還將 stage 1 裝入器配置成從 ext2 文件系統(tǒng)直接裝入 stage2。通常,GRUB 通過在包含 stage2 數(shù)據(jù)的軟盤上創(chuàng)建一列塊來完成此操作,這樣 stage1 裝入 stage2 時不必知道 ext2 文件系統(tǒng)的任何情況。
  但是,大多數(shù)情況下,GRUB 在安裝完 stage1 之后,會立即將 stage1.5 裝入器安裝到引導(dǎo)記錄中。這個特殊的 stage1.5 允許無需使用原始塊列表就能從 ext2 文件系統(tǒng)裝入 stage2,卻要更靈活的標(biāo)準(zhǔn)基于路徑的方法。GRUB 理解文件系統(tǒng)結(jié)構(gòu)的這一能力使 GRUB 比 LILO 更強(qiáng)壯。例如,如果正好在整理引導(dǎo)盤文件系統(tǒng)的碎片,stage1 就可以找到 stage2(歸功于 ext2 stage1.5)。而 LILO 就不能完成此項(xiàng)操作。因?yàn)?LILO 只能依賴于映射文件,每次更新內(nèi)核或在磁盤上物理移動數(shù)據(jù)時,即使不更改路徑,也需要重新運(yùn)行它。
    2.4.3. 階段 1、1.5 和 2
  您也許會想知道:如果使用 FAT 而不是 ext2 文件系統(tǒng)創(chuàng)建引導(dǎo)盤,GRUB 是否可以工作。是的,它可以工作,因?yàn)樵谳斎?"setup (fd0)" 時,GRUB 會安裝與 root 文件系統(tǒng)類型匹配的 stage1.5。即使沒有沒有空間可以安裝 stage1.5,GRUB 仍可以通過追溯到更原始的塊列表,來裝入 stage2。
    2.4.4. 搜索和恢復(fù)
  在繼續(xù)討論之前,先研究一個與引導(dǎo)軟盤相關(guān)的實(shí)用提示。由于 GRUB 的交互式性質(zhì),它為恢復(fù)軟盤生成了一個很好的引導(dǎo)裝入器。但是,如果將好的內(nèi)核復(fù)制到引導(dǎo)盤上,那它就更好了。那樣,即使硬盤上的內(nèi)核壞了或者被意外刪除了,也可以追溯到引導(dǎo)盤內(nèi)核,并啟動和運(yùn)行系統(tǒng)。要將備用內(nèi)核復(fù)制到引導(dǎo)盤,執(zhí)行以下操作:
  # mount /dev/fd0 /mnt/floppy
  # cp /path/to/bzImage /mnt/floppy/boot
  # umount /dev/fd0
  現(xiàn)在,軟盤已包含備用內(nèi)核,可以在 GRUB 中使用它來引導(dǎo) Linux 發(fā)行版,操作如下:
  grub> root (fd0)
  grub> kernel /boot/bzImage root=/dev/hda5 (將 /dev/hda5 更改成想要引導(dǎo)的分區(qū)名稱)
  grub> boot
    2.4.5. 硬盤引導(dǎo)
  好,現(xiàn)在如何將 GRUB 安裝到硬盤上?這個過程幾乎與引導(dǎo)盤安裝過程一樣。首先,需要決定哪個硬盤分區(qū)將成為 root GRUB 分區(qū)。在這個分區(qū)上,創(chuàng)建 /boot/grub 目錄,并將 stage1 和 stage2 文件從 /usr/share/grub/i386-pc 復(fù)制到該目錄中??梢酝ㄟ^重新引導(dǎo)系統(tǒng)并使用引導(dǎo)盤,或者使用駐留版本的 GRUB 來執(zhí)行后一步操作。在這兩種情況下,啟動 GRUB,并用 root 命令指定 root 分區(qū)。例如,如果將 stage1 和 stage2 文件復(fù)制到 hda5 的 /boot/grub 目錄中,應(yīng)輸入 "root (hd0,4)"?,F(xiàn)在,只差一步。
  接著,決定在哪里安裝 GRUB -- 在硬盤的 MBR,或者如果與 GRUB 一起使用另一個“主”引導(dǎo)裝入器,則安裝在特定分區(qū)的引導(dǎo)記錄中。如果安裝到 MBR,則可以指定整個磁盤而不必指定分區(qū),如下(對于 hda):
   grub> setup (hd0)
  如果要將 GRUB 安裝到 /dev/hda5 的引導(dǎo)記錄中,應(yīng)輸入:
   grub> setup (hd0,4)
  現(xiàn)在,已安裝 GRUB。引導(dǎo)系統(tǒng)時,應(yīng)該立即以 GRUB 的控制臺方式結(jié)束(如果安裝到 MBR)?,F(xiàn)在,應(yīng)創(chuàng)建引導(dǎo)菜單,這樣就不必在每次引導(dǎo)系統(tǒng)時都輸入那些命令。
    2.4.6. 引導(dǎo)菜單
  要創(chuàng)建菜單,只需在 /boot/grub 中創(chuàng)建一個簡單的文本文件 menu.lst。如果將它放在正確位置,它將在 root GRUB 驅(qū)動器的 stage1 和 stage2 文件的旁邊。這里是一個樣本 menu.lst 文件,可以將它作為一個您的菜單的基礎(chǔ):
   default 0
  timeout 30
  color white/blue blue/green
  title=Boot Linux
  root (hd0,4)
  kernel /boot/bzImage root=/dev/hda5
  title=Boot Linux using initrd
  root (hd0,5)
  kernel /boot/bzImage root=/dev/loop0 init=/initdisk.gz
  initrd /initdisk.gz
  title=Windows NT
  root (hd0,3)
  chainloader +1
  我將在以下的屏面中說明 menu.lst 格式。
    2.4.7. 理解引導(dǎo)菜單
  引導(dǎo)菜單很容易理解。前三行設(shè)置缺省菜單項(xiàng)(項(xiàng)目號 0,第一個)、設(shè)置超時值(30 秒),并選擇整個菜單的一些顏色。
  接著的三行配置 "Boot Linux" 菜單項(xiàng)。要創(chuàng)建手工引導(dǎo)命令系列之外的菜單項(xiàng),只要添加一行 "title=" 作為第一行,并從最后一行中除去 "boot" 命令(GRUB 會自動添加這個命令)。
  接著的四行顯示了如何使用 GRUB 來引導(dǎo) initrd(初始 root 磁盤),如果您愿意的話。現(xiàn)在,討論最后三行……
    2.4.8. 鏈?zhǔn)窖b入器
  這里是示例 menu.lst 的最后三行……
  title=Windows NT
  root (hd0,3)
  chainloader +1
  這里,我添加了一項(xiàng)來引導(dǎo) Windows NT。要完成此操作,GRUB 使用了“鏈?zhǔn)窖b入器”。鏈?zhǔn)窖b入器從分區(qū) (hd0,3) 的引導(dǎo)記錄中裝入 NT 自己的引導(dǎo)裝入器,然后引導(dǎo)它。這就是這種技術(shù)叫做鏈?zhǔn)窖b入的原因 -- 它創(chuàng)建了一個從引導(dǎo)裝入器到另一個的鏈。這種鏈?zhǔn)窖b入技術(shù)可以用于引導(dǎo)任何版本的 DOS 或 Windows。

2.6 總結(jié)
    2.6.1. GRUB 的彈性
  GRUB 最好的優(yōu)點(diǎn)之一就是其強(qiáng)健的設(shè)計(jì) -- 在不斷使用它時請別忘了這點(diǎn)。如果更新內(nèi)核或更改它在磁盤上的位置,不必重新安裝 GRUB。事實(shí)上,如有必要,只要更新 menu.lst 文件即可,一切將保持正常。
  只有少數(shù)情況下,才需要將 GRUB 引導(dǎo)裝入器重新安裝到引導(dǎo)記錄。首先,如果更改 GRUB root 分區(qū)的分區(qū)類型(例如,從 ext2 改成 ReiserFS),則需要重新安裝。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它們來自更新版本的 GRUB,很有可能要重新安裝引導(dǎo)裝入器。其它情況下,可以不必理睬!
    2.6.2. 優(yōu)秀的 GRUB 參考資料
  我們在這里只是介紹了 GRUB 的一部分。例如,可以使用 GRUB 來執(zhí)行網(wǎng)絡(luò)引導(dǎo),引導(dǎo) BSD 文件系統(tǒng),或更多操作。另外,GRUB 有許多配置和安全性命令也很有用。如需所有 GRUB 功能的完整描述,請閱讀 GRUB 出色的 GNU 文檔。只要在 bash 提示中輸入 "info grub" 就可以閱讀該文檔。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Grub引導(dǎo)Linux或者windows系統(tǒng)
Grub命令以及啟動詳解
Linux系統(tǒng)安裝與登陸等基礎(chǔ)知識講解
修復(fù)損壞的grub和boot分區(qū)
Linux啟動分析 - linux study - 十年
GRUB多重啟動管理器
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服