1.问题现象
工作电脑系统为ubuntu16.04,昨天早上使用时,突然发现多出来一个100Mb的盘符,类似新增了一个硬盘,进入后可以看到ubuntu系统的各个目录结构及相关文件,但是并不完整,有部分目录是空的。
尝试重启电脑解决,发现系统进不去了,会直接进入bios中,无法启动ubuntu系统。
2.初步定位
使用装机ubuntu系统U盘,进入系统后,lsblk,发现boot分区丢失,如下图所示,仅剩余1p2和1p3两个分区。1p1不存在了。
3.解决办法
开始尝试修复boot分区,没搞定,后来用一块新盘重装系统,发现原盘中数据信息都没有丢失。本来就用新盘系统,把旧文件全部拷贝过去,该装的软件重新装一下。
经高人开导,尝试将原根目录全部拷贝到新盘根目录中,再将新盘/etc/fstab文件覆盖原盘fstab文件,这样可以全量恢复原系统,原来装的软件也不需要重新装。
现将折腾过程及遇到的问题总结,供各位参考。
1)将原盘和新盘都接入电脑,然后用U盘启动系统
2)备份原盘fstab文件,并用新盘fstab替换原盘fstab文件
mv 原盘挂载路径/etc/fstab 原盘挂载路径/etc/fstab.bak
cp 新盘挂载路径/etc/fstab 原盘挂载路径/etc/fstab
3)格掉新盘根目录分区,也就是nvme0n1p2分区
这里直接使用ubuntu自带的图形工具,右键格式化ext4即可
4)全量拷贝原盘根目录分区到新盘根目录分区中
rsync -aHAX 原盘所在目录/ 新盘所在目录/
5)完成全量拷贝后重启系统,发现进入grub界面,在该界面手动启动系统
- 查看当前系统盘符
grub>ls (hd0),(hd0,gpt1),(hd0,gpt2),(hd0,gpt3) grub>
- 查看根目录所在分区
grub>cat (hd0,gpt2)/etc/fstab ## 找到下述关键打印信息 # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/nvme0n1p2 during installation UUID=dd6e0539-1369-4938-8af5-378f02cf05cf / ext4 errors=remount-ro 0
- 指定内核及根目录所在分区,以及initrd路径(可以用tab补全功能)
grub> linux /boot/vmlinuz-4.15.0-70-generic ro text root=/dev/nvmen1p2 grub> initrd /boot/initrd.img-4.15.0-70-generic
- 开启boot引导系统
> boot
到这里,系统就基本可以正常启动了。
此外,fstab替换后,出现过boot分区的UUID不一致的问题,使用新的UUID更替后问题解决