用 LiveCD 启动以后,首先应该明确的是你的 Fedora 装在哪一个分区,如今的硬盘都应该是 SATA 的吧,那么就对应 /dev/sda#,#是个数字,1~4表示主分区,5开始是逻辑分区。若是你在可伶的用着 IDE 硬盘,那么就对应/dev/hda#。 shell
打开你的磁盘实用工具,或者叫 Disk unity,找到 Fedora 安装所在分区,个人在 sda10,因此下面就拿这个说明了。 app
su mount-t ext4 -o rw/dev/sda10/media
把 Fedora 的安装分区挂载到当前的 LiveCD 文件系统下,固然若是你比较偷懒的话,好比我:),直接在文件管理器里面双击一下那个分区,而后就会在/media/_FEDORA_*** 下挂载了。 工具
原来安装在硬盘上的 Fedora只是把文件目录挂上来了,一点硬件资源也木有,啥事也干不了,只能用来 copy/paste 一下数据,如今把当前系统的资源给他: this
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 了。 google
挂完后用 chroot 命令切换到原来的 Fedora 中去: spa
su chroot/media grub2-install/dev/sda
固然上述指令是讲 grub2 安装到硬盘 MBR 上恢复引导,若是你想装在当前分区中让其余软件来引导就应该是: code
grub2-install /dev/sda10 资源
OK,作下扫尾工做: it
exit umount/media/proc umount/media/dev/pts umount/media/sys umount/media/dev umount/media reboot
固然,上述修复的 grub 是原来的 grub,其实grub2很强大,能自动识别 N 多系统,只需从新生成配置
文件便可: io
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
居然能够装上去,而且成功启动~