2008-11-13, 09:37 PM
|
#1
|
列管會員
|
grub救援注意事項與經驗分享
我想大家可能有此經驗,重新安裝xp的時候,grub開機選單不見,原因是xp會把mbr給覆蓋,要把MBR救回很簡單,首先用linux安裝光碟開機,會跑出以下類似的畫面,會跑出一個畫面,按下enter就是開始安裝,這時候
按下F5-Rescue,輸入linux rescue(enter)
Choose a Language選English,Keyboard Type選us,Setup Networking選no,接下來這很重要,會跑出問說是否要把根與開機目錄掛載到/mnt/sysimage
這時候程式開始搜尋,成功之後會跑出Your system has been mounted under/mnt/sysimage,enter進入文字
模式,這時候要查說當初grub是裝在mbr還是linux自己分割區上面
這非常重要,因為如果當初grub是預設且沒有類似spfdisk之類開機選單的話,就是裝在mbr上面,那事情就很簡單,萬一當初有使用spfdisk來建立開機選單的話,就不能裝在mbr上面,而是linux自己分割區,萬一裝錯的話,把grub裝在mbr上面的話,spfdisk開機選單要重建了,不確定的話先輸入:df -h看分割區狀態,不過這時候都是掛載到/mnt/sysimage/底下,如果當初boot有獨立分割的話,那grub就要裝在那邊,如果沒有的話,那就是在根底下
df -h就會顯示說是/dev/hda或是/dev/hdb,Fedora7之後是/dev/sda,不確定的話fdisk -l(小寫L)看硬碟所有分割區狀態
想要知道hda幾是根,或是boot的話
e2label /dev/hda幾,剛才fdisk -l就可看到linux分割區在哪邊,Windows分割區在哪邊,像我之前有把boot獨立出來,所以也就是/dev/hda6,
更快的方法是輸入blkid,就可以看到所有的,圖片我根就在/dev/hda7,boot就在/dev/hda6,Windows就在1和5
想一下如果當初安裝的時候是進階設定開機選單的話,想一下當初是裝在mbr還是linux開機分割區第一個分割區上面
如果知道grub是裝在mbr還是linux自己分割區上面的話
首先輸入:chroot /mnt/sysimage
grub是裝在mbr上面的話:grub-install /dev/hda
linux分割區的話:grub-install /dev/hda6(舉例)
exit就會重開機,記得光碟片要拿出來
如果要備份mbr的話
dd if=/dev/hda of=mbr.dat bs=512 count=1
要看剛才建立的檔案的話,就打上hexdump -c mbr.dat
如果有spfdisk那文字的話,就代表mbr裡面有spfdisk,grub就要裝在linux自己分割區
如果要還原mbr的話: dd if=mbr.dat of=/dev/hda
大家看/boot/grub/menu.lst的時候,會看到
linux與其他os的選單,有hd0,5和hd0,0
這hd0,5的意思是這grub硬碟分割區序號是從0開始,linux從1開始
硬碟主分割可以分割四個,但實際上只能分割三個,因為最後一個要建立延伸分割區,由延伸分割區在分割邏輯分割區
所以也就是主分割hd0~hd2,hd3就是延伸,hd4之後就是邏輯,所以fdisk -l 就可以得知
hd0是windows的c槽
hd4是windows的D槽
hd5是linux的/boot分割區
hd6是linux的/分割區
可是linux是從1開始,所以hd5就等於hda6
hd6等於hda7以此類推
最後祝大家成功,雖然說很長,但也是提醒要注意事項與經驗分享
此帖於 2008-11-13 09:52 PM 被 lutunhsiang 編輯.
|
|
|
送花文章: 56979,
收花文章: 12813 篇, 收花: 50123 次
+10 金幣
|