硬碟磁區概念

1. MBR為Master Boot Record每顆硬碟只有一個,寫在硬碟的第0軌上

2. 每切出的分割,除了裡面有檔案系統的資訊外,還有一個開機資訊(boot sector)

3. 開機流程是,當BIOS控制權轉交到一顆硬碟上,會先讀取該硬碟的MBR
再由MBR裡寫的資訊(如果沒有則為active的分割區),載入該分割區的(boot sector),再經由該資訊,找到系統重要檔案,載入作業系統

4. 多重開機則大多為在MBR裡寫入開機管理程式,顯示介面讓使用者選擇到開機的分割區或是其他資訊
(也有些開機管理程式程式太大,MBR的空間塞不進去,會從MBR中導到某個分割區的boot sector,再從該資訊載入開機管理程式)

5. 而Linux 是直接從GRUB直接載入核心,載入作業系統

解決辦法如下:

————————————————————————–

winXP下的開機資訊修復

放入XP安裝光碟,用它開機

按R進入Recovery Console下打fixmbr修復

或是使用spfdisk的修復MBR功能

A:\>spfdisk /mbr

————————————————————————–

Linux下的開機選單(GRUB)修復

放入你使用的Linux版本的LiveCD,用它開機
在登入到桌面之後,打開命令列

以Fedora 12為例 (GRUB 1版的做法)

先打入fdisk -l查看磁碟分割的狀況

[root@localhost ~]#fdisk -l

找到Fedora安裝的分割區(ext3或ext4分割,該目錄含有GRUB的資訊)
我的電腦為/dev/sda2

打入grub進入頁面

[root@localhost~]#grub

切換根目錄為Fedora安裝的目錄

grub>root (hd0,1)
Filesystem type is ext2fs, partition type 0x83

寫入開機資訊到該硬碟的MBR

grub> setup (hd0)
Checking if “/boot/grub/stage1” exists… no
Checking if “/grub/stage1” exists… yes
Checking if “/grub/stage2” exists… yes
Checking if “/grub/e2fs_stage1_5” exists… yes
Running “embed /grub/e2fs_stage1_5 (hd0)”…  15 sectors are embedded.
succeeded
Running “install /grub/stage1 (hd0) (hd0)1+15 p (hd0,1)/grub/stage2
/grub/grub.conf”… succeeded
Done.

有出現succeeded字樣就成功了

如果要寫入到Fedora的該分割區的開機磁軌

grub> setup (hd0,1)
Checking if “/boot/grub/stage1” exists… no
Checking if “/grub/stage1” exists… yes
Checking if “/grub/stage2” exists… yes
Checking if “/grub/e2fs_stage1_5” exists… yes
Running “embed /grub/e2fs_stage1_5 (hd0,1)”… failed
Running “embed /grub/e2fs_stage1_5 (hd0,1)”… failed
Running “install /grub/stage1 (hd0,0) /grub/stage2
/grub/grub.conf “… succeeded
Done.

也會出現類似的字樣,succeeded字樣就成功了

CENTOS 5 GRUB FIX

利用安裝光碟片再次重新安裝 GRUB 即可解決,修復步驟如下
放入安裝光碟片
linux rescue //進入救援模式
系統要求設定語系、鍵盤、滑鼠及是否啟動網路卡 //一般問題
chroot /mnt/sysimage //將根目錄切換到光碟片
grub-install /dev/hda or /dev/sda //重新安裝 GRUB (PATA->hda, SATA/SCSI/SAS->sda)
exit
reboot

Source: http://tw.myblog.yahoo.com/jw!9skfwiSAHxQ7c8D8luphjfve/article?mid=738