Fedora 使用 LiveCD 修复 GRUB2 引导

用 LiveCD 启动之后,首先应该明确的是你的 Fedora 装在哪个分区,现在的硬盘都应该是 SATA 的吧,那么就对应 /dev/sda#,#是个数字,1~4表示主分区,5开始是逻辑分区。如果你在可伶的用着 IDE 硬盘,那么就对应/dev/hda#。

打开你的磁盘实用工具,或者叫 Disk unity,找到 Fedora 安装所在分区,我的在 sda10,所以下面就拿这个说明了。

su
mount-t ext4 -o rw/dev/sda10/media


把 Fedora 的安装分区挂载到当前的 LiveCD 文件系统下,当然如果你比较偷懒的话,比如我:),直接在文件管理器里面双击一下那个分区,然后就会在/media/_FEDORA_*** 下挂载了。

原来安装在硬盘上的 Fedora只是把文件目录挂上来了,一点硬件资源也木有,啥事也干不了,只能用来 copy/paste 一下数据,现在把当前系统的资源给他:

su
mount-t proc none/media/proc
mount-o bind/dev/media/dev
mount-o bind/sys/media/sys
mount-t devpts devpts/media/dev/pts

特别看清楚上面的指令,千万别把 /dev 写成了 /dev/,如果这样就会出现:/dev is not a block device 了。

挂完后用 chroot 命令切换到原来的 Fedora 中去:

su
chroot/media
grub2-install/dev/sda

当然上述指令是讲 grub2 安装到硬盘 MBR 上恢复引导,如果你想装在当前分区中让其他软件来引导就应该是:

grub2-install /dev/sda10

OK,做下扫尾工作:

exit
umount/media/proc
umount/media/dev/pts
umount/media/sys
umount/media/dev
umount/media
reboot


当然,上述修复的 grub 是原来的 grub,其实grub2很强大,能自动识别 N 多系统,只需重新生成配置
文件即可:

su
grub2-mkconfig  -o /boot/grub2/grub.cfg
reboot


Congratulations!

今天在帮别人修复的时候,又遇到一些问题,写下来分享:

首先,这台电脑的分区并不是我上面写的简单的一个 / 分区,用的 LVM 和一个 boot 分区 sda8,那么在挂载的时候就要分别挂载了。在 LVM 里有一个 root 的逻辑卷组和一个 swap 卷组,位于 /dev/mapper/vg_fedora_root,和 /dev/mapper/vg_fedora_swap(这个的取名是自己定义的,如果采用系统自己默认的分区安装,不是手动的话,名字不同)

su
mount-o rw /dev/mapper/vg_fedora_root/media
mount-o rw/dev/sda8/media/boot

然后挂载上述写的资源。

其次,在执行grub2-install 的时候,遇到错误:

[root@localhost]# grub2-install /dev/sda
/sbin/grub2-setup: warn: Your embedding area is unusually small.  core.img won't fitinit..
/sbin/grub2-setup: warn: Embedding is not possible.  GRUB can only be installedinthis setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
/sbin/grub2-setup: error: will not proceed with blocklists.

网上查的是 MBR 和 sda1 之间的那块 embedding area 太小了,应该是默认的 63,如果是 32 的话会出现这个问题,但是我执行 fdisk  -lu,显示这电脑已经是 63 了,不明原因。
google了一把,没找到解决方案还是安装不上去,后来我在wiki上面,看到了这个用法,强制安装。

grub2-install--force /dev/sda

竟然可以装上去,并且成功启动~

转载于:https://my.oschina.net/apoptosis/blog/111547

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值