• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

fedora20误删boot分区修复过程

  • iansiu
  • 2014-10-09
  • 0

这几天突然想玩帝国时代3,linux系统玩不了,虽然有个0ad的开源游戏可以代替,但是太卡了,后期兵越多越卡,卡得让人烦,想了想还是装个windows系统,进入winpe给windows系统分区,提示分区重叠,新的分区直接把boot分区给覆盖了,以前装fedora系统的时候我有单独给boot分区,分区重叠覆盖,加上我又格式化,等于是把fedora中的boot分区删除了,/boot里面的文件全部没了,还怎么启动?不管了,先玩几把游戏,玩爽了之后修复fedora系统吧!!

具体看过程(从下午搞到凌晨4点,一知半解真是要命呀!):

参考文章:http://thinklog.blog.163.com/blog/static/71896182201142522452416/

之所以折腾那么久,是一开始方向就错了,幸好找到上面的文章指引。

(整个过程的命令都用root权限执行)

1、既然/boot分区整个被删除,grub2肯定是不能修复了。所以先用虚拟机创建一个fedora系统,然后把系统中boot分区里的内容拷贝出来。

2、用fedora启动u盘进入系统,用fdisk /dev/sda命令新建一个linux分区,用fdisk -l命令查出新分区是 /dev/sda9

3、新建的分区需要格式化,命令是:mkfs.ext4 /dev/sda9,会提示找不到分区等错误,那是因为/dev 没又sda9这个块文件,所以先创建一个/dev块文件 命令:mknod /dev/sda9 / b 8 9  (b代表块类型也就是磁盘  8和9这样的数字,表示主设备号和次设备号(一般来说主设备号用来区分设备的种类;次设备号则是为了作唯一性区分,标明不同属性),不知道8和9这个两个数字是怎么得来的,可以输入命令:ls -l /dev/sda* 来查看,像我这里/dev/sda8分区是:brw-rw---- 1 root disk 8, 8 Oct  9 11:46 /dev/sda8 这样。那新建的/dev/sda9分区就是这样:brw-rw---- 1 root disk 8, 9 Oct  9 11:46 /dev/sda9chmod 660 /dev/sda9

4、dev块设备文件创建之后,更改权限,改的和其它分区一样,我这里先执行:chown root:disk /dev/sda9 改用户和组,然后输入:chmod 660 /dev/sda9  更改文件权限,ok了之后重启。

5、挂载以前的/根分区到/mnt,终端里输入:mount /dev/fedora/root /mnt (这里的/dev/fedora/root才是真正的物理分区,如果你这么挂载:mount /dev/sda4 /mnt是会出错的 ),具体查看用命令:lvdisplay

6、挂载/dev/sda9到/mnt/boot:mount /dev/sda9 /mnt/boot 把第一步从fedora虚拟机里拷贝出来的boot分区内容拷贝过来。

7、拷贝/dev 内容到/mnt/dev,命令:cp -r /dev /mnt/dev

9、查看/dev/sda9的UUID,UUID这样查看:ls -l /dev/disk/by-uuid,我这里是:041b3c4c-89d7-45bc-a691-a17293437de5,接着输入:chroot /mnt 改变root环境,然后输入:vi /etc/fstab 改变原boot分区的UUID。

10、改变/boot/grub2/grub.cfg里面的UUID,命令:vi /boot/grub2/grub.cfg 把原来的UUID替换成现在的,应该有4个地方。(注意这里的/boot/grub2/grub.cfg 其实就是/mnt/boot/grub2/grub.cfg,刚刚用chroot /mnt命令切换了root环境)

11. 使用 e2label /dev/sda9 /boot命令为boot分区打上label,主要是为了与/etc/fstab中的内容对应。

12、 拔掉U盘重新引导系统,发现进不去提示UUID错误,这时候需要在开机过程中选择带Rescue标题的启动项目,没什么问题就可以进入系统了。

13、虽然能进入系统了,但是内核太旧很多软件不能使用,所以还需要更新内核,输入:sudo yum -y update kernel*,更新完重启用新内核进入系统。

14、现在fedora完美修复了,用gurb2把windows也加入开机选项中,执行:grub2-mkconfig -o /boot/grub2/grub.cfg 命令重新创建一份grub.cfg文件就可以了,怕出问题可以先原来的grub.cfg文件备份。

好了,一切都ok了,虽然折腾了很长时间,但是也学会了不少,还是挺值得的!!

© 2025 laowang's blog
Theme by Wing