准备工作:
1、EasyBCD (这里是2.2个人版本),原有系统的Linux安装镜像(这里是Fedora-19-x86_64-DVD.iso),以及一个虚拟光驱。
2、从Linux安装镜像中提取\Packages\k\kernel-3.9.5-301.fc19.x86_64.rpm,放到U盘中。
3、打开EasyBCD ——>添加新条目——>便携式/外接存储介质——>ISO ,添加新条目,名称Fedora Installation,路径选择Fedora镜像所在位置。
开始恢复:
1、重启机器,进入系统选择界面时选择Fedora Installation。
2、选择TroubleSxxxx(忘记叫啥了)下的Fedora rescue(具体叫啥也忘了,就是救援模式)。
3、等待kernel加载,进入bash sh。
4、找到原来的root所在分区(设为/dev/sda8),可以用blkid列出所有系统分区。
mount /dev/sda8 /root #这样把原有的root挂载到现在的/root目录下
mount -t proc /proc /root/proc #挂载proc
mount -t devtmpfs /dev /root/dev #挂载dev,方便以后的blkid、mke2fs之类
5、我们知道系统启动分区要是主分区,这里假设想把boot安装到/dev/sda3中。
mount /dev/sda3 /root/boot #有可能你的sda3不是linux分区,后面备注有tips[1]介绍如何更改分区格式的。
6、插入U盘并挂载之。
mount -t vfat /dev/sdb1 /root/mnt/udisk
7、更改root目录。
chroot /root #可以参考资料[2]
linux rescue模式下可用的命令是有限的,chroot后可以使用的命令与完整系统一样(个人感觉),比如rpm、e2label、fdisk、whereis、mke2fs……
8、此时安装kernel到boot分区。
rpm -ivh --force /mnt/udisk/kernel*.rpm # warning告警可以无视。
9、如果boot分区有修改,记得修改/etc/fstab,参考tips[3]。
备注:
[1] 想要修改分区格式,可以挂载proc以及dev并chroot后,使用相关分区命令。
[2] 关于rescue模式,以及chroot命令,可以参考 Fedora官方文档
[3] 我自己是删除/boot分区,装了win7,所以导致需要重新格式化boot分区(mke2fs -b 4096 -t ext4 /dev/sda3 12800 #500M),修改分区表/etc/fstab(因为uuid改变了)
[4] 另外,关于系统的启动可以使用Grub。EasyBCD ——>添加新条目——>Linux/BSD。在c盘的NST目录下修改menu.lst。可以参考我的:
default=Fedora
timeout=1
#Fedora
title Fedora
root (hd0,2)
kernel /vmlinuz-3.9.5-301.fc19.x86_64 root=LABEL=ROOT
initrd /initramfs-3.9.5-301.fc19.x86_64.img
注意上面的root是(hd0,2),而我的boot分区却是在/dev/sda3,这个是因为grub分区计数从hd0,0开始,而linux是从sda1开始。