lawrencelu71050
|
分享:
▼
x0
|
[Linux][發表] 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以此類推 最後祝大家成功,雖然說很長,但也是提醒要注意事項與經驗分享
|