[原創(chuàng)]備份/恢復(fù)MBR和分區(qū)表以及無備份修復(fù)MBR和分區(qū)表錯(cuò)誤,淺談引導(dǎo)故障和分區(qū)方案。(完成66%)(這是我博客中的一篇文章,現(xiàn)在發(fā)到這里來)手工備份/恢復(fù)MBR和分區(qū)表,以及無備份修復(fù)MBR及分區(qū)表錯(cuò)誤;淺談引導(dǎo)故障和分區(qū)方案。-------------------------------------------------------------------------------------------------------------------------------------------
分區(qū)表出錯(cuò)以及引導(dǎo)問題往往使我們手足無措、甚至欲哭無淚。出現(xiàn)這樣的故障之后,輕則重裝系統(tǒng),重則數(shù)據(jù)全部丟失。很多朋友都吃過這樣的虧,我自己也曾經(jīng)出現(xiàn)過兩次丟失數(shù)據(jù),而且是全部丟失。
以前,我一直都是使用的WD的160GB的硬盤。分區(qū)的情況是一個(gè)10GB的主分區(qū),然后將所有的空間全部劃為擴(kuò)展,再在擴(kuò)展中創(chuàng)建若干個(gè)邏輯分區(qū)。這種分區(qū)方案是最常見的分區(qū)方案,但并非最穩(wěn)妥、最合理、最通用的分區(qū)方案。我的兩次分區(qū)表出錯(cuò)導(dǎo)致數(shù)據(jù)全部丟失是因?yàn)榇笥脖P的原因。很多人也許知道微軟windows 2000 sp4這個(gè)操作系統(tǒng)有個(gè)137GB的問題。通常解決這種問題的方法是,在安裝windows 2000 sp4之前先只劃分一個(gè)3GB~10GB++ 的主分區(qū)用來安裝操作系統(tǒng)。安裝時(shí)只分配主分區(qū),不分配擴(kuò)展。安裝后再使用Windows2000大硬盤注冊表補(bǔ)丁。重啟過系統(tǒng)之后,再使用系統(tǒng)自帶的磁盤管理工具創(chuàng)建新的分區(qū)(這個(gè)時(shí)候通常是將所有的空閑空間劃為擴(kuò)展分區(qū),并在擴(kuò)展中創(chuàng)建邏輯分區(qū))。由于打過大硬盤補(bǔ)丁之后,操作系統(tǒng)已經(jīng)能夠識別容量大于137GB的硬盤。此時(shí),就算BIOS中只認(rèn)了僅僅多于系統(tǒng)分區(qū)大小的硬盤容量,由于系統(tǒng)分區(qū)能夠正常啟動,所以也能夠正常的管理整塊大容量硬盤。
我的兩次分區(qū)表出錯(cuò),就是因?yàn)橐寻惭b有Windows XP sp2的情況下安裝Windows 2000 Server sp4到D盤(擴(kuò)展下的第一個(gè)邏輯分區(qū)),讓windows 2000 Server sp4的引導(dǎo)覆蓋了原先的Windows xp sp2的引導(dǎo)。由于后安裝的Windows 2000 Server sp4所在的位置是擴(kuò)展分區(qū)中的第一個(gè)邏輯分區(qū),而這個(gè)擴(kuò)展分區(qū)就在第一主分區(qū)的后面,而且由于在劃分主分區(qū)之后就將所有的空間劃為擴(kuò)展分區(qū)了,那么這個(gè)擴(kuò)展分區(qū)的尾柱面是160GB硬盤的最后面的柱面,正好超過了Win2k系統(tǒng)的137GB的限制。在如此安裝完Windows 2000 Server sp4之后,系統(tǒng)就無法正常啟動了。如果Windows 2000在安裝的時(shí)候直接是把C盤格式化了安裝的,此時(shí)可以啟動到win2k的系統(tǒng),但是所有的邏輯盤符都不見了,只看到一個(gè)容量特別大甚至是超過了120GB的盤符(D盤)。雙擊盤符,提示未格式化,是否現(xiàn)在格式化?如果格式化,數(shù)據(jù)將全部丟失。格式化后的磁盤,如果沒有再向里面寫入數(shù)據(jù),大概只有專業(yè)數(shù)據(jù)恢復(fù)才有可能完整的恢復(fù)原有的數(shù)據(jù)。
正確認(rèn)識硬盤分區(qū)表和MBR--------------------------------------------------------------------------------
Linux對硬盤的辨認(rèn): IDE0 master=/dev/hda IDE0 slave=/dev/hdb
IDE1 master=/dev/hdc IDE1 slave=/dev/hdd
SCSI 0=/dev/sda SCSI 1=/dev/sdb 在Linux中,用字母 a 來表示第一個(gè)設(shè)備接口,字母 b 表示第二個(gè)接口...
在Linux系統(tǒng)中,IDE0(第一個(gè)IDE數(shù)據(jù)線)上的主接口用 /dev/hda 來表示;IDE0上的從接口用 /dev/hdb 來表示;IDE1的主接口用 /dev/hdc 表示;IDE1的從接口用 /dev/hdd 表示。這四個(gè)口可以接四個(gè)IDE設(shè)備。通常情況下會接一塊硬盤到 IDE0 master ,再接一個(gè)CD/DVD光驅(qū)到 IDE1 master 。如果這四個(gè)接口都接了硬盤,那就是主主盤、主從盤、從主盤、從從盤。同一個(gè)IDE數(shù)據(jù)線上的兩個(gè)接口如果都接了硬盤或者是光驅(qū)就需要設(shè)置路線,因?yàn)樗鼈兊穆肪€都是默認(rèn)的設(shè)置。路線設(shè)置就在硬盤或者光驅(qū)后面的接數(shù)據(jù)線附近,用上面的路線帽進(jìn)行設(shè)置。
如果是SCSI設(shè)備,第一個(gè)接口 SCSI 0 用 /dev/sda 來表示, SCSI 1 用 /dev/sdb 來表示。
SATA硬盤的表示方法與上面類似,通常一塊主板上會有兩個(gè) SATA 接口,有的主板上有四個(gè) SATA 接口,記得像這樣的主板是支持使用幾塊 SATA 硬盤組 RAID 的。一般情況 SATA 硬盤會被認(rèn)作sd*設(shè)備,類似 SCSI ,在 Linux 中用類似 /dev/sda 這樣的設(shè)備名表示。但是,有的主板會把 SATA 硬盤認(rèn)作像 IDE 硬盤一樣的 hd* 設(shè)備,在 Linux 中用類似 /dev/hda 這樣的設(shè)備名表示。
分區(qū)表的概念
Linux對硬盤分區(qū)的辨認(rèn)
/dev/hda1表示/dev/hda硬盤的第一個(gè)分區(qū)
/dev/sda2表示/dev/sda硬盤的第二個(gè)分區(qū)
在Linux中,使用數(shù)字 1 來表示第一個(gè)硬盤分區(qū),用數(shù)字 2 來表示第二個(gè)硬盤分區(qū)...
例如:用 /dev/hda1表示/dev/hda硬盤的第一個(gè)分區(qū);用/dev/sda2表示/dev/sda硬盤的第二個(gè)分區(qū)。 分區(qū)原理 一塊沒有分過區(qū)的硬盤就像一張白紙一樣,是沒有數(shù)據(jù)的。分好區(qū)的硬盤就會具有一定的結(jié)構(gòu)性。分區(qū)就是將硬盤分為一定的區(qū)域,便于使用。
一塊硬盤最多可以分四個(gè)區(qū)(主分區(qū))。無論硬盤分多少個(gè)區(qū),它的最前面都有一個(gè)引導(dǎo)扇區(qū)(主引導(dǎo)記錄)。
主引導(dǎo)記錄由三部分組成:一部分是446byte的操作系統(tǒng)引導(dǎo)代碼,還有一部分是64byte的主分區(qū)表。主分區(qū)表最多記錄四個(gè)主分區(qū)的分區(qū)信息.每個(gè)分區(qū)占用16byte.分區(qū)就是修改分區(qū)表,它不影響硬盤上的存儲的數(shù)據(jù)。最后的2字節(jié)是結(jié)束標(biāo)志。
擴(kuò)展技術(shù):需要將一塊硬盤分成更多的分區(qū),超過5個(gè)以上的分區(qū),可以將最多四個(gè)主分區(qū)中的一個(gè)分區(qū)類型改為擴(kuò)展分區(qū),然后在擴(kuò)展分區(qū)中再建邏輯分區(qū)。邏輯分區(qū)的分區(qū)信息保存在擴(kuò)展分區(qū)之中,叫做擴(kuò)展分區(qū)表。理論上邏輯分區(qū)沒有個(gè)數(shù)的限制。擴(kuò)展分區(qū)不能被直接使用,必須將其劃分為若干個(gè)邏輯分區(qū)。邏輯分區(qū)的起始位置的信息都寫在擴(kuò)展分區(qū)表里面。邏輯分區(qū)的分區(qū)編號從5開始,如:/dev/hda5是第一塊硬盤的第一個(gè)邏輯分區(qū)。 格式化原理 分好區(qū)的硬盤分區(qū)上面什么數(shù)據(jù)也沒有,操作系統(tǒng)也不能讀寫,為了讓操作系統(tǒng)能夠識別必須向分區(qū)中預(yù)寫入一定格式的數(shù)據(jù)。這個(gè)過程就稱之為格式化。在Linux中稱為創(chuàng)建文件系統(tǒng)。
沒有分區(qū)的硬盤是不能格式化的,沒有格式化的分區(qū)是不能直接被使用的。所以分區(qū)和格式化往往都是同時(shí)進(jìn)行的。
常用的分區(qū)工具以及分區(qū)工具的優(yōu)缺點(diǎn) 推薦必須掌握的兩個(gè)分區(qū)工具
Linux 下 的fdisk :
代碼:
[table=50%][tr][td][align=left]sles:~ # fdisk /dev/hda
The number of cylinders for this disk is set to 19457.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): m[/align][/td][/tr][/table]
a 設(shè)置/取消 活動分區(qū)(1-4,任何一個(gè)主分區(qū)都可以設(shè)為活動分區(qū),擴(kuò)展除外)
d 刪除分區(qū)
l / L 列出支持的分區(qū)類型
m 幫助
n 新建分區(qū)
p 打印分區(qū)(表)信息
q 退出且不保存已做的修改
t 設(shè)置分區(qū)的 id 也就是分區(qū)類型要和文件系統(tǒng)對應(yīng)。
w 保存分區(qū)表并退出
最常用的就是這些
實(shí)例: 做重建分區(qū)表之前,最好先有備份。備份/恢復(fù)分區(qū)表推薦使用Linux 中的 fdisk 或者 diskgen 這個(gè)dos下的分區(qū)工具。
注意:分區(qū)是按柱面分。比如要分 100M 為什么會給分 102M ? 因?yàn)?,它不可能說一個(gè)柱面劃了兩個(gè)區(qū)。還有 diskgen 記錄
的是從 0 開始算第一個(gè),而 Linux 中的 fdisk 是把 1 算作第一個(gè)。
圖解DOS環(huán)境下的diskgen:
這兩個(gè)工具都要掌握。特別是linux中fdisk工具,常用的那幾個(gè)建、刪、改分區(qū)的命令,需要反復(fù)練習(xí)實(shí)踐。
MBR位于硬盤的0磁道0柱面1扇區(qū)。 零磁道處于硬盤上一個(gè)非常重要的位置,硬盤的主引導(dǎo)記錄區(qū)(MBR)就在這個(gè)位置上。零磁道一旦受損,將使硬盤的主引導(dǎo)程序和分區(qū)表信息遭到嚴(yán)重破壞,從而導(dǎo)致硬盤無法自檢。
硬盤MBR(Main Boot Record)(硬盤主引導(dǎo)記錄)及硬盤分區(qū)表介紹硬盤MBR就是我們經(jīng)常說的“硬盤主引導(dǎo)記錄”,簡單地說,它是由FDISK等磁盤分區(qū)命令寫在硬盤絕對0 扇區(qū)的一段數(shù)據(jù),它由主引導(dǎo)程序、硬盤分區(qū)表及扇區(qū)結(jié)束標(biāo)志字(55AA)這3個(gè)部分組成,如下:組成部分 所占字節(jié)數(shù) 內(nèi)容、功能詳述主引導(dǎo)程序區(qū) 446 負(fù)責(zé)檢查硬盤分區(qū)表、尋找可引導(dǎo)分區(qū)并負(fù)責(zé)將可引導(dǎo)分區(qū)的引導(dǎo)扇區(qū)(DBR)裝入內(nèi)存;硬盤分區(qū)表區(qū) 16X4=64 每份16字節(jié)的4份硬盤分區(qū)表,里面記載了每個(gè)分區(qū)的類型、大小和分區(qū)開始、結(jié)束的位置等重要內(nèi)容;結(jié)束標(biāo)志字區(qū) 2 內(nèi)容總為”55AA”。結(jié)束標(biāo)志字區(qū) 2 內(nèi)容總為”55AA”這3部分的大小加起來正好是512字節(jié)=1個(gè)扇區(qū)(硬盤每扇區(qū)固定為512個(gè)字節(jié)),因此,人們又形象地把MBR稱為“硬盤主引導(dǎo)扇區(qū)”。這個(gè)扇區(qū)所在硬盤磁道上的其它扇區(qū)一般均空出,且這個(gè)扇區(qū)所在硬盤磁道是不屬于分區(qū)范圍內(nèi)的,緊接著它后面的才是分區(qū)的內(nèi)容(也就是說假如該盤每磁道扇區(qū)數(shù)為63,那么從絕對63扇區(qū)后面的64扇區(qū)才是分區(qū)的內(nèi)容)。
主引導(dǎo)扇區(qū)結(jié)構(gòu)圖
|-------------------------|
| |
| |
| Main Boot Record |
| |
| |
| 主引導(dǎo)記錄 (446字節(jié)) |
| |
| |
| |
| |
| |
|-------------------------|
| 分區(qū)信息 1(16字節(jié)) |
|-------------------------|
| 分區(qū)信息 2(16字節(jié)) |
|-------------------------|
| 分區(qū)信息 3(16字節(jié)) |
|-------------------------|
| 分區(qū)信息 4(16字節(jié)) |
|-------------------------|
| 結(jié)束標(biāo)志 (2字節(jié)) |
|-------------------------|
分區(qū)上的引導(dǎo)扇區(qū)
為保險(xiǎn)起見,每個(gè)分區(qū)(包括邏輯分區(qū))上的第一個(gè)扇區(qū)都將被作為引導(dǎo)區(qū)保留。含有引導(dǎo)代碼的分區(qū)上的引導(dǎo)區(qū)也是可以引導(dǎo)操作系統(tǒng)的;不含有引導(dǎo)代碼的分區(qū)上的引導(dǎo)區(qū)不具有引導(dǎo)操作系統(tǒng)的功能。
備份/恢復(fù) MBR 和分區(qū)表 以下以IDE硬盤為例,如果是SCSI硬盤或者SATA硬盤用/dev/sda替換。注意,有些SATA硬盤可能仍然會被認(rèn)作/dev/hda這樣的設(shè)備名。
MBR的備份與恢復(fù): Linux系統(tǒng)中備份MBR的方法:
代碼:
dd if=/dev/hda of=/MBR_bak bs=512
[count=1color=blue]
Linux系統(tǒng)中從備份文件恢復(fù)MBR的方法:[/color]
代碼:
dd if=/MBR_bak of=/dev/hda bs=1 count=512
注意?。?br>
dd命令功能強(qiáng)大且危險(xiǎn),一定不要手快。一定要清楚的知道自己正在做一件什么樣的事情。
DOS環(huán)境下備份MBR的方法:
DOS環(huán)境下從備份文件恢復(fù)MBR的方法: 分區(qū)表的備份與恢復(fù) 備份分區(qū)表以及從備份恢復(fù)分區(qū)表 Linux系統(tǒng)中使用的方法:
fdisk工具的使用:
備份分區(qū)表:
fdisk -l>/partition_tab.txt
修改分區(qū)表
通常只要分區(qū)表的起始柱面與尾柱面的數(shù)值是正確的,是與硬盤上實(shí)際的分區(qū)結(jié)構(gòu)相吻合的,只是有少數(shù)部分需要修改
的這種情況下,只需要使用fdisk工具的相關(guān)命令有針對性的進(jìn)行修改就可以了。
重建分區(qū)表
使用fdisk工具中最常用的幾個(gè)命令重新創(chuàng)建分區(qū)表。重建分區(qū)表就是要先刪除已有的分區(qū)信息,然后重新創(chuàng)建分區(qū)表。注意,
操作之前必須先對將要更改的分區(qū)表進(jìn)行備份。
sfdisk備份/恢復(fù) 分區(qū)表
代碼:
# sfdisk -d /dev/hdx > /mnt/backup/partab-hdx.sfdisk (備份)
# sfdisk /dev/hdx < /mnt/backup/partab-hdx.sfdisk (恢復(fù))
DOS環(huán)境中 備份/恢復(fù) 分區(qū)表:
使用 diskgen(早期叫diskman)
圖例:
備份:
從備份恢復(fù):
對于MBR和分區(qū)表的備份/恢復(fù),推薦使用Linux的工具和方法。推薦使用Linux中的fdisk操作分區(qū)表,推薦dd工具備份/恢復(fù)引導(dǎo)扇區(qū)。
無備份修復(fù)分區(qū)表
結(jié)合使用DOS環(huán)境中的diskgen和Linux操作系統(tǒng)中的fdisk兩個(gè)分區(qū)工具,對嚴(yán)重出錯(cuò)的分區(qū)表進(jìn)行修復(fù)。
Dos環(huán)境下的的diskgen
Linux操作系統(tǒng)中的fdisk
實(shí)例:
Linux fdisk分區(qū)全過程詳解
看這里:
零起點(diǎn)構(gòu)建自己的Linux( LFS-6.2-5 + BLFS-6.2.0 )=======================================================
修復(fù)分區(qū)表需要注意的事項(xiàng)以及硬盤分區(qū)表的理論知識: 1. 在做所有修改之前先備份??!由于現(xiàn)在需要對分區(qū)表進(jìn)行修復(fù),所以先需要備份的是現(xiàn)有的分區(qū)表還有MBR。把所有的備份文件放到一個(gè)安全的地方,例如發(fā)郵件到郵箱。
2. 檢查一下當(dāng)前的分區(qū)表,分析一下,什么地方出錯(cuò)了。如果僅僅是分區(qū)類型與實(shí)際的,硬盤上的分區(qū)不符。只需要使用linux中的fdisk工具的t命令進(jìn)行修改。
3. 最壞的情況:沒有任何分區(qū)表信息,需要完全重建分區(qū)表。眾所周知,DOS環(huán)境下的diskgen有個(gè)重建分區(qū)表的功能,它能夠從硬盤上的數(shù)據(jù)分析出分區(qū)結(jié)構(gòu)。對于出錯(cuò)的分區(qū)表,它在分析的過程中可能會有一些問題。但是,當(dāng)它分析出分區(qū)信息之后,至少給操作者了一個(gè)參考。操作者自己再看一下分區(qū)表,分析一下,哪里有問題,通常就可以根據(jù)這些信息給出正確的重建分區(qū)表的方案。我見過一種分區(qū)出錯(cuò)的情況是擴(kuò)展分區(qū)中的最后一個(gè)邏輯分區(qū)脫離了擴(kuò)展分區(qū)的范圍。
分區(qū)原理
一塊沒有分過區(qū)的硬盤就像一張白紙一樣,是沒有數(shù)據(jù)的。分好區(qū)的硬盤就會具有一定的結(jié)構(gòu)性。分區(qū)就是將硬盤分為一定的區(qū)域,便于使用。
一塊硬盤最多可以分四個(gè)區(qū)(主分區(qū))。無論硬盤分多少個(gè)區(qū),它的最前面都有一個(gè)引導(dǎo)扇區(qū)(主引導(dǎo)記錄)。
主引導(dǎo)記錄由三部分組成:一部分是446byte的操作系統(tǒng)引導(dǎo)代碼,還有一部分是64byte的主分區(qū)表。主分區(qū)表最多記錄四個(gè)主分區(qū)的分區(qū)信息.每個(gè)分區(qū)占用16byte.分區(qū)就是修改分區(qū)表,它不影響硬盤上的存儲的數(shù)據(jù)。最后的2字節(jié)是結(jié)束標(biāo)志。
擴(kuò)展技術(shù):需要將一塊硬盤分成更多的分區(qū),超過5個(gè)以上的分區(qū),可以將最多四個(gè)主分區(qū)中的一個(gè)分區(qū)類型改為擴(kuò)展分區(qū),然后在擴(kuò)展分區(qū)中再建邏輯分區(qū)。邏輯分區(qū)的分區(qū)信息保存在擴(kuò)展分區(qū)之中,叫做擴(kuò)展分區(qū)表。理論上邏輯分區(qū)沒有個(gè)數(shù)的限制。擴(kuò)展分區(qū)不能被直接使用,必須將其劃分為若干個(gè)邏輯分區(qū)。邏輯分區(qū)的起始位置的信息都寫在擴(kuò)展分區(qū)表里面。邏輯分區(qū)的分區(qū)編號從5開始,如:/dev/hda5是第一塊硬盤的第一個(gè)邏輯分區(qū)。
格式化原理 分好區(qū)的硬盤分區(qū)上面什么數(shù)據(jù)也沒有,操作系統(tǒng)也不能讀寫,為了讓操作系統(tǒng)能夠識別必須向分區(qū)中預(yù)寫入一定格式的數(shù)據(jù)。這個(gè)過程就稱之為格式化。在Linux中稱為創(chuàng)建文件系統(tǒng)。
沒有分區(qū)的硬盤是不能格式化的,沒有格式化的分區(qū)是不能直接被使用的。所以分區(qū)和格式化往往都是同時(shí)進(jìn)行的。
從上面可以知道,一塊已經(jīng)有數(shù)據(jù)的硬盤就算沒有分區(qū)表,它也是具有結(jié)構(gòu)性的。先前的每個(gè)分區(qū)之間是有明確的分界點(diǎn)的。為什么這么說?因?yàn)?,在格式化或者說創(chuàng)建文件系統(tǒng)的時(shí)候?qū)凑障惹暗姆謪^(qū)表信息中的分區(qū)的起始柱面進(jìn)行“規(guī)化”。當(dāng)真正的進(jìn)行過創(chuàng)建文件系統(tǒng)的操作之后,硬盤就具有了結(jié)構(gòu)性。讓硬盤具有結(jié)構(gòu)性是為了讓操作系統(tǒng)能夠識別。操作系統(tǒng)在識別硬盤的時(shí)候不僅僅會檢查每個(gè)分區(qū)的分區(qū)表信息(起始位置,分區(qū)類型等),還會檢查當(dāng)前的分區(qū)(物理位置為硬盤上的一個(gè)柱面到另一個(gè)柱面)的文件系統(tǒng)是否為當(dāng)前操作系統(tǒng)所能夠識別,如果能識別還需要檢查其中是否有錯(cuò)誤,如果有錯(cuò)誤將采取什么措施?
綜上所述,無論分區(qū)表出現(xiàn)何種故障,在修復(fù)分區(qū)表或者是重建分區(qū)表的時(shí)候都是有機(jī)可尋的。而不會是毫無根據(jù)的。
選擇一種最適合系統(tǒng)的分區(qū)方案
--------------------------------------------------------------------------------
最佳分區(qū)方案:
MBR的前446字節(jié)是用來存放引導(dǎo)操作系統(tǒng)的代碼的,接下來的64個(gè)字節(jié)就是用來記錄分區(qū)信息的,也就是分區(qū)表。每個(gè)分區(qū)占用16個(gè)字節(jié),四個(gè)分區(qū)的分區(qū)信息共占用64字節(jié)。最后的2字節(jié)是結(jié)束標(biāo)志。
早期的硬盤容量都很小,對于早期DOS時(shí)代來說,一塊硬盤分四個(gè)區(qū)已經(jīng)足夠了。我在1996年的時(shí)候接觸過UCDOS、WPS排版軟件。當(dāng)時(shí)我只會簡單的幾個(gè)DOS命令,對硬件一點(diǎn)都不了解,但我想那個(gè)時(shí)候的大概兩、三百兆的硬盤就算是好大好大的了。
我們現(xiàn)在的硬盤,小的有40GB,常見的臺式機(jī)硬盤都已經(jīng)是120GB的了。我想,絕大多數(shù)的人都一定不會把整塊硬盤只分一個(gè)區(qū)的。大多數(shù)的分區(qū)方案都是這樣的:先劃分一個(gè)主分區(qū)用來安裝操作系統(tǒng),然后將所有的空閑空間全部劃分為擴(kuò)展分區(qū),再在擴(kuò)展分區(qū)下建幾個(gè)邏輯分區(qū)。這種分區(qū)方案是最常見、最普遍的。通常我們在配機(jī)器的時(shí)候,這個(gè)分區(qū)都不是我們自己分的,是銷售商給我們分的區(qū)。在買機(jī)器的時(shí)候,通常裝機(jī)的工作人員會問分幾個(gè)區(qū)以及每個(gè)分區(qū)分多大。一塊120GB的硬盤,有很多人都這樣分區(qū):C盤分20GB用來裝系統(tǒng)和應(yīng)用軟件,D盤分30GB用來存放游戲,E盤分30GB用來存放音樂或者電影之類的,剩下的空間全給F盤用來存放備份的數(shù)據(jù)。通常像這樣的分區(qū)的C盤是主分區(qū),文件系統(tǒng)為Fat32或者NTFS;D盤、E盤、F盤,這些都是擴(kuò)展分區(qū)下的邏輯盤符。如這樣的分區(qū)方案不是一種很好的分區(qū)方案,這樣的分區(qū)方案嚴(yán)重的造成了硬盤空間的浪費(fèi)。在分區(qū)之前,我們應(yīng)該先考慮到的是將要在硬盤上安裝何種操作系統(tǒng)。首先應(yīng)該了解操作系統(tǒng)的默認(rèn)安裝對硬盤有什么要求?操作系統(tǒng)需要或者必須安裝在哪個(gè)分區(qū)上,是必須安裝在哪個(gè)主分區(qū)或者將要安裝在哪個(gè)邏輯分區(qū)上?默認(rèn)安裝或者說最小安裝需要多大的硬盤空間?考慮操作系統(tǒng)使用多大的虛擬內(nèi)存(通常為物理內(nèi)存的1.5~2倍),虛擬內(nèi)存是否與操作系統(tǒng)的系統(tǒng)文件放在同一分區(qū)上?安裝完操作系統(tǒng)之后的系統(tǒng)補(bǔ)丁將會占用系統(tǒng)分區(qū)多少空間?接下來考慮的才是應(yīng)用軟件的安裝,通常需要使用一些什么軟件,有什么大型軟件需要使用,如果將它們安裝在系統(tǒng)分區(qū)需要占用系統(tǒng)分區(qū)多少空間;如果將它們不安裝在系統(tǒng)分區(qū)而是其它的分區(qū)上需要往系統(tǒng)分區(qū)寫入的文件總共會占用系統(tǒng)分區(qū)多大的空間,需要占用其它分區(qū)多少空間?考慮過了這些之后就基本上可以給操作系統(tǒng)所在的分區(qū)劃分一個(gè)比較適合的空間了,這樣既能夠保證系統(tǒng)的正常運(yùn)行也能夠不至于造成系統(tǒng)分區(qū)中大量的硬盤空間被閑置。知道了要安裝多少軟件,有多少大型軟件之后,就能夠?yàn)榇娣艖?yīng)用軟件的分區(qū)分配一個(gè)比較適中的空間。然后是許多朋友都比較喜歡玩大型的網(wǎng)絡(luò)游戲或者單機(jī)游戲,現(xiàn)在的這些游戲都特別占用硬盤空間,動輒1GB到2GB不等。如果同時(shí)喜歡玩兩種以上的游戲,如果游戲占用的硬盤空間已經(jīng)遠(yuǎn)遠(yuǎn)超過了5GB,強(qiáng)烈要求不要將游戲的程序文件和日常的辦公軟件的程序文件存放在同一個(gè)分區(qū)上了。然后是至少應(yīng)該劃分一個(gè)用來存放單個(gè)大文件的分區(qū),因?yàn)檫@樣的分區(qū)就是存儲區(qū)或者叫備份區(qū),一般文件存下之后就不會經(jīng)常的有改動了,通常情況下也就是放在那里不動的了。如果是作為一般的應(yīng)用,可以把所有的剩余空間都劃為備份區(qū)。當(dāng)然,更好的一種方法是,按需分配,只分配一個(gè)小存儲區(qū),還有多余的空間就暫時(shí)不分配。比如說120GB的硬盤,實(shí)際可用空間大約110GB左右。分配了8GB~12GB的第一主分區(qū)作為C盤,用來安裝Windows Server 2003 R2 sp1或者Windows XP之類的;所有的剩余空間劃為擴(kuò)展;擴(kuò)展下的第一邏輯分區(qū)分了5GB的D盤,用來存放一些辦公軟件、播放器、聊天工具、圖形圖像處理軟件;擴(kuò)展下的第二邏輯分區(qū)E盤,用來存放特別占用硬盤空間的的大型網(wǎng)絡(luò)游戲和單機(jī)游戲,分配10GB~30GB不等;然后是F盤,用來作為存放備份文件的小存儲區(qū),分配10GB~20GB左右;最后還有空間可以暫時(shí)不分配,也可以立即就分配所有剩余的空閑空間為一個(gè)分區(qū)作為大存儲區(qū)。對于大存儲區(qū)的原則是,盡可能的集中,不要只分配個(gè)20GB或者30GB這樣的不疼不癢。這種分區(qū)方案適用于Windows XP / 2003 ,當(dāng)然也可以適合Windows 2000系列。當(dāng)然,我想現(xiàn)在大概用windows 2000的已經(jīng)不太多吧?通常都是XP,稍微懂一點(diǎn)計(jì)算機(jī)的都使用windows Server 2003 R2 Sp1了。在一臺處理器高于賽陽2.4GHz,內(nèi)存為512MB,硬盤為5400轉(zhuǎn)/秒或者7200轉(zhuǎn)/秒,顯存夠用的臺式機(jī)或者筆記本電腦上,正常情況下,使用Windows XP-sp2 要比 2000sp4要快;使用Windows Server 2003 Sp1要比XP要明顯快很多;在這樣的同等硬件環(huán)境下,使用同樣的應(yīng)用軟件,無論是開/關(guān)機(jī),還是程序運(yùn)行效率,2003sp1都占絕對優(yōu)勢。當(dāng)然,也有一些軟件在2003sp1上是不兼容的或者完全無法使用的。但是,大多數(shù)的日常使用到的辦公軟件之類的是完全可以在2003sp1上使用的。甚至有很多人都使用2003sp1的個(gè)人版或者企業(yè)版玩游戲。
上面的這種分區(qū)方案可能不適合微軟下一代操作系統(tǒng) Vista 的安裝。Vista的32位版需要一個(gè)最少6GB的主分區(qū)或者邏輯分區(qū)用來存放系統(tǒng)文件;64位版需要一個(gè)大于囗囗GB左右主分區(qū)或者邏輯分區(qū)來存放系統(tǒng)文件,我以前為了積極響亮微軟的號召曾經(jīng)在自己的機(jī)器上進(jìn)行過Vista的測試活動,安裝過64位版的Vista測試版,專門使用了一個(gè)15GB的邏輯分區(qū)用來安裝。由于是從64位xp以及2003上用64位虛擬光驅(qū)實(shí)現(xiàn)從硬盤安裝,這對第一主分區(qū)和第二個(gè)可用分區(qū)的空間是有要求的。比如有些測試版的Vista對第一主分區(qū)(啟動分區(qū))要求至少需要700M以上的可空間,有些測試版對第一主分區(qū)要求的空閑空間只有不到200M。由于安裝方式的特殊,使用虛擬光驅(qū)載入DVD版iso映像,在安裝過程中會將一些安裝文件復(fù)制到硬盤,如果第一主分區(qū)上的空間有限,只能達(dá)到前面說到的最低要求,就會將安裝文件復(fù)制到第二個(gè)分區(qū)。第二個(gè)分區(qū)的空閑空間必須要大于這個(gè)DVD版的ISO文件的大小。如果達(dá)不到以上要求,肯定是會報(bào)錯(cuò),提示由于哪個(gè)分區(qū)上空間太小無法復(fù)制安裝安裝的。當(dāng)然,如果C:\boot.ini文件屬性為只讀,也是裝不上的。
對于一般的用戶來說,我剛才提到的那種分區(qū)方案或者可以借鑒一下。每個(gè)人的應(yīng)用不一樣,所以每個(gè)人的最適合的分區(qū)方案都不盡相同。但這種思想,這種合理使用硬盤空間的思想是值得提倡的。
對于像我這樣的喜歡鼓搗軟件,喜歡嘗試更多新奇事物,喜歡嘗試在一塊硬盤上實(shí)現(xiàn)Windows + Unix + Linux、喜歡在硬盤上安裝N++個(gè)操作系統(tǒng)的人來說,是永遠(yuǎn)不會有一個(gè)最佳的分區(qū)方案的。俗話說得好,計(jì)劃不如變化。相信許多朋友已經(jīng)有和我相同的體會了。那么有沒有一個(gè)辦法能夠提前的減小這種因?yàn)樽兓瘞淼穆闊┠??這個(gè)問題就是接下來,我將要講到的非常見的分區(qū)方案。
為什么多系統(tǒng)共存要提倡為一塊硬盤分配3個(gè)主分區(qū)
1. 首先是實(shí)現(xiàn)可以靈活的在三個(gè)主分區(qū)中挑選任意一個(gè)主分區(qū)為第一啟動分區(qū)。前面講到了,以前的早期的硬盤在分區(qū)的時(shí)候最多可以給一塊硬盤分四個(gè)主分區(qū)。這四個(gè)分區(qū)中可以任意的選擇其中的一個(gè)分區(qū)或者多個(gè)分區(qū)為活動分區(qū),注意,只有設(shè)為了活動分區(qū)的分區(qū)才是可啟動的。所以活動分區(qū)又稱為啟動分區(qū)。早期的硬盤最多只能分四個(gè)區(qū),有了擴(kuò)展技術(shù)之后,就把MBR中的記錄的四個(gè)分區(qū)表中的不是擴(kuò)展的分區(qū)稱之為主分區(qū)。這是為了與擴(kuò)展分區(qū)相區(qū)別。在BIOS讀取MBR中的那446字節(jié)的引導(dǎo)代碼之后,會檢查MBR中的分區(qū)表中那個(gè)分區(qū)被設(shè)為了活動分區(qū),通常會選擇從第一個(gè)活動分區(qū)啟動。如果需要安裝多個(gè)不同的操作系統(tǒng)到同一塊硬盤上,而且實(shí)現(xiàn)多啟動,最好的分區(qū)方案是給一塊硬盤分配幾個(gè)主分區(qū)。其中,微軟的Windows操作系統(tǒng)是必須要占用一塊硬盤的第一個(gè)主分區(qū)的,因?yàn)樗囊龑?dǎo)文件必須存放在第一主分區(qū)。而且微軟windows系列的引導(dǎo)代碼是默認(rèn)會寫入到MBR中的前446字節(jié)的,同時(shí)也會寫入到第一個(gè)主分區(qū)的第一個(gè)扇區(qū)。這些在安裝過程中是無法手動修改的。還有Unix系列的操作系統(tǒng)是必須要使用一個(gè)主分區(qū)的,他們的引導(dǎo)代碼也是會覆蓋MBR中的那446字節(jié)的。唯獨(dú)只有Linux是即可以安裝在主分區(qū)也可以安裝在邏輯分區(qū)的。要解決這樣的”搶占“MBR引導(dǎo)區(qū)的矛盾,最好的方法就是安裝前備份整個(gè)帶引導(dǎo)代碼和主分區(qū)表的MBR導(dǎo)出為文件備份一次,在安裝完成之后MBR中的引導(dǎo)代碼被覆蓋之后也應(yīng)該同樣的將MBR導(dǎo)出為文件。這樣的備份文件正好是512字節(jié),也就是前面說到的446字節(jié)的引導(dǎo)代碼和64字節(jié)的用來記錄四個(gè)主分區(qū)的分區(qū)表還有2字節(jié)的結(jié)束標(biāo)志。有了這樣的備份文件,就可以在必要從備份覆蓋MBR從而達(dá)到修復(fù)引導(dǎo)故障和還原主分區(qū)表信息目的。前面我反覆的強(qiáng)調(diào)了MBR的備份文件和MBR有著完全相同的特性,心細(xì)朋友的一定能夠想到因?yàn)镸BR的備份文件中帶有引導(dǎo)信息,在一定的條件下是可以通過讀取MBR中的引導(dǎo)信息實(shí)現(xiàn)引導(dǎo)操作系統(tǒng)的。實(shí)際應(yīng)用中也用到了這樣的方法來解決引導(dǎo)問題的。補(bǔ)充一下,為了保險(xiǎn)起見,每個(gè)分區(qū)的第一個(gè)扇區(qū)都具有類似于MBR的功能,每個(gè)分區(qū)的第一個(gè)扇區(qū)都是引導(dǎo)區(qū)。這也就是為什么可以把Linux的引導(dǎo)裝載程序安裝在分區(qū)上的原理。把引導(dǎo)裝載程序安裝在分區(qū)上,實(shí)際上就是向這個(gè)分區(qū)的第一扇區(qū)中寫入了引導(dǎo)代碼。這個(gè)引導(dǎo)代碼需要占用446字節(jié)(猜測)。通過一定的條件載入帶有引導(dǎo)代碼的某個(gè)分區(qū)上的第一個(gè)扇區(qū)的備份文件也是快速的把引導(dǎo)控制權(quán)交給這個(gè)分區(qū)的比較有效解決方案之一。我們知道,只有MBR中的四個(gè)主分區(qū)才有可能最優(yōu)先的被啟動。而決定從那個(gè)分區(qū)開始啟動的是活動分區(qū)標(biāo)識在哪個(gè)分區(qū)上,多個(gè)活動分區(qū)的情況會優(yōu)先從第一個(gè)活動分區(qū)啟動。
2. 給一塊硬盤分配3個(gè)主分區(qū)之后,將所有的空閑空間劃為擴(kuò)展。這種分區(qū)方案有效的利用了分區(qū)表資源。
3. 減少了分區(qū)表出錯(cuò)的概率,在一定程度上減少了因?yàn)榉謪^(qū)表錯(cuò)誤的發(fā)生而造成的災(zāi)難。
4. 為多系統(tǒng)共存以及多引導(dǎo)提供了便利。
簡述引導(dǎo)故障的解決方法:Windows操作系統(tǒng)引導(dǎo)故障修復(fù)方法
首先是講一下 MBR 和 MBS 。
( MBR ) master boot record 主引導(dǎo)記錄
主引導(dǎo)記錄是整塊硬盤的第一個(gè)扇區(qū)。它位于零磁頭零柱面1扇區(qū)。MBR的前446字節(jié)為引導(dǎo)操作系統(tǒng)的引導(dǎo)代碼,接下來是64字節(jié)的主分區(qū)表,主分區(qū)表可以記錄四個(gè)分區(qū)的信息,每個(gè)記錄占用16字節(jié)。引導(dǎo)代碼和分區(qū)表信息占用了MBR的510字節(jié),而決定MBR是否可用的是最后的2字節(jié)。BIOS通過檢測這2字節(jié)以確定MBR是否有效?! BR所在的這個(gè)柱面(63個(gè)扇區(qū))是被保留的。MBR后面的柱面才是實(shí)際可以分配使用的空間。通常我們會根據(jù)需要將這些可用空間劃分為若干個(gè)分區(qū),然后再為一個(gè)或者多個(gè)硬盤分區(qū)創(chuàng)建文件系統(tǒng),使得操作系統(tǒng)能夠識別。這樣,我們才能夠在這些空間里讀寫文件,當(dāng)然也可以將操作系統(tǒng)安裝到這里。
( MBS )master boot sector 主引導(dǎo)扇區(qū)
主引導(dǎo)扇區(qū)是分區(qū)上的第一個(gè)扇區(qū)。硬盤上的每個(gè)扇區(qū)的大小都是512字節(jié)。MBR的大小是512字節(jié),MBS同樣也是512字節(jié)。主引導(dǎo)扇區(qū)--分區(qū)上的第一扇區(qū),它具有和MBR同樣的引導(dǎo)操作系統(tǒng)的功能。前提是這個(gè)主引導(dǎo)扇區(qū)上有能夠引導(dǎo)操作系統(tǒng)的引導(dǎo)代碼。我想,每個(gè)分區(qū)的第一個(gè)磁道應(yīng)該都是被保留的。未驗(yàn)證是否正確,我猜測的。怎么?不允許猜測?愛因斯坦的相對論都是猜測的,怎么就不允許我也猜測一下呢,對吧?
出現(xiàn)引導(dǎo)故障之后,如果此時(shí)重新安裝Windows XP sp2到C盤,將引導(dǎo)覆蓋掉,就可以正常的啟動到windows XP sp2了。這種方法比較常用,也相對比較有效。但這種方法并不可取。正確的方法應(yīng)該是從原安裝光盤啟動(可以是更高版本),在安裝的時(shí)候,如果有提示是否升級安裝不要升級安裝,按Esc鍵。然后是看屏幕上的提示按 R 鍵進(jìn)入修復(fù)控制臺。控制臺下都是用鍵盤操作的,是黑底白字的命令行。不要被這種陌生感嚇壞。當(dāng)進(jìn)入windows系統(tǒng)修復(fù)控制臺后,根據(jù)提示,輸入阿拉伯?dāng)?shù)字并按Enter鍵選擇要修復(fù)的系統(tǒng),如果要修復(fù)的系統(tǒng)是在第一分區(qū),按1并敲回車鍵就可以了?,F(xiàn)在就可以使用敲命令的方式來修復(fù)系統(tǒng)了??刂婆_下只提供了少數(shù)的命令,這些命令不需要都會,掌握一兩個(gè)有用的能夠解決實(shí)際問題就可以了。現(xiàn)在先 help 一下,看看提供了多少命令?此時(shí)一屏顯示不完,按Enter鍵繼續(xù)顯示。如果現(xiàn)在需要將MBR中的引導(dǎo)代碼修改為能夠啟動到現(xiàn)在的正準(zhǔn)備修復(fù)的系統(tǒng)的引導(dǎo)代碼,輸入 fixmbr 然后按 Enter 鍵。要退出并重啟計(jì)算機(jī),輸入 exit 并按 Enter 鍵。
如果按照上面的方法修復(fù)引導(dǎo)裝載程序之后,仍然無法引導(dǎo)系統(tǒng)。此時(shí)仍然是進(jìn)修復(fù)控制臺,不同的是先 fixboot 重建引導(dǎo)區(qū),然后再 fixmbr 。最后 exit 退出并重系統(tǒng)之后就應(yīng)該能正常啟動系統(tǒng)了。
fixboot 這條命令是向第一主分區(qū)的第一扇區(qū)寫入引導(dǎo)代碼,告訴系統(tǒng)啟動時(shí)將從哪個(gè)分區(qū)找引導(dǎo)和配置文件。而fixmbr的作用是將第一主分區(qū)第一扇區(qū)的446字節(jié)的引導(dǎo)代碼寫到MBR的前446字節(jié)。
Linux操作系統(tǒng)引導(dǎo)故障修復(fù)方法 GRUB
修復(fù)引導(dǎo)裝載程序
如果是系統(tǒng)原來可以引導(dǎo)的,但突然不能引導(dǎo)了。可以使用系統(tǒng)安裝光盤自帶的修復(fù)引導(dǎo)裝載程序。當(dāng)然,不一定必須要
原光盤,有iso文件也行,只要能啟動安裝向?qū)нM(jìn)入修復(fù)模式就可以了。
RedHat系列的,包括企業(yè)版,可以在從第一張安裝光盤啟動時(shí)按F5鍵或者在boot提示符后敲入linux rescue然后按Enter
鍵進(jìn)入修復(fù)模式。掛載原先的linux根分區(qū)( mount /dev/hda7 /mnt ) ,然后 chroot /mnt ,用 grub 稍等數(shù)秒之后敲入
root (hd0,6) 按Enter鍵,再 setup (hd0) 就是寫到第一硬盤的MBR了。或者 grub-install /dev/hda 。 SuSE系列可以使用安裝光盤自帶的引復(fù)工具。同上,不一定必須是光盤,iso也是可以的。只有有方法啟動安裝向?qū)Ь涂?br> 以了。在選擇安裝方式時(shí),不選全新安裝也不選更新安裝,選最下面的那個(gè),然后是修復(fù)已安裝的系統(tǒng),接下來要用全
手工的方法修復(fù)引導(dǎo)裝載程序。按向?qū)ё鼍涂梢粤恕5怯袝r(shí)候命令方式更好一些,可以按Ctrl + Alt + F9 鍵到字符環(huán)境下,修
復(fù)方法與下面的LiveCD的修復(fù)引導(dǎo)裝載程序的方法相同。
如果是用LiveCD啟動:
mkdir /mnt/hda7 && mount /dev/hda7 /mnt/hda7
mount -t proc /proc /mnt/hda7/proc
mount -o bind /dev /mnt/hda7/dev
chroot /mnt/hda7
grub
之后就是GRUB命令模式了
root (hd0,6)
setup (hd0)
quit
reboot
當(dāng)然也可以安裝到某個(gè)分區(qū)的第一扇區(qū)上。通常安裝到 boot 目錄所在的分區(qū),或者是 / 所在的分區(qū)。例如安裝到 /dev/hda3 就是 setup (hd0,2)
grub引導(dǎo)配置文件/boot/grub/menu.lst
全新安裝引導(dǎo)裝載程序
全新安裝引導(dǎo)裝載程序就需要從源碼包或者rpm之類的grub安裝文件全新安裝了。因?yàn)橄惹暗南到y(tǒng)已經(jīng)無法引導(dǎo),這時(shí)需要一個(gè)運(yùn)行中的Linux系統(tǒng)chroot到需要修復(fù)的系統(tǒng)中進(jìn)行維護(hù)工作。
lilo
/sbin/lilo -v
lilo引導(dǎo)配置文件 /etc/lilo.conf
系統(tǒng)無法啟動,要修復(fù)lilo引導(dǎo)裝載程序,方法還是和上面的grub差不多。只是命令和配置文件不一樣。
巧用引導(dǎo)區(qū)的備份文件解決引導(dǎo)問題
使用Linux中的dd備份引導(dǎo)區(qū)
dd 命令備份引導(dǎo)區(qū),輕松解決多系統(tǒng)引導(dǎo)問題。例如現(xiàn)在 GRUB 被裝在MBR,只需要裝MBR這個(gè)扇區(qū)用dd導(dǎo)出為文件??梢允褂闷渌囊龑?dǎo)裝載程序來載入這個(gè)含引導(dǎo)代碼的引導(dǎo)區(qū)的備份文件,從而引導(dǎo)操作系統(tǒng)。也可以用備份文件恢復(fù)引導(dǎo)區(qū)。 備份MBRdd if=/dev/hda of=/MBR_xxx bs=512 count=1從備份文件恢復(fù)MBRdd if=/MBR_xxx of=/dev/hda bs=1 count=512備份分區(qū)上的引導(dǎo)區(qū)也是類似的。注意dd命令功能強(qiáng)大且危險(xiǎn),一定不要敲錯(cuò)了。從引導(dǎo)區(qū)備份文件引導(dǎo)系統(tǒng):GRUB 命令模式或者改ment.lst文件-----------------------# title SUSE Linux Enterprise Server 10chainloader (hdn,m)/MBR_xxxboot*****************************windows把引導(dǎo)區(qū)備份文件放到C盤根目錄或者子目錄也可以。然后改C:\boot.ini文件。C:\boot.ini-----------添加以下內(nèi)容-----------C:\MBR_linux="Linux"
*********************************
然后保存。注意,改此文件,要確定文件的屬性首先是不只讀的。