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以此类推 最后祝大家成功,虽然说很长,但也是提醒要注意事项与经验分享
|