手头有一块用了10年的旧移动硬盘,其中安装了Debian系统,从低版本一直升级到现在的9已经用了很长时间。前不久正连着那块硬盘跑着Debian修改文件的时候,由于一个本可避免的意外震动了数据线,瞬间连接中断。后果不必说,自然是系统无法再读写磁盘数据各种I/O错误不能进行任何工作。关机重启后,移动硬盘的启动项从BIOS快捷菜单里消失,成了一个无引导的普通磁盘。
将移动硬盘连接到运行openSUSE的笔记本检查,见所有的分区都能正确识别,挂载后所有分区可正常读写,文件全部健在。直接重建GRUB,过程记录如下:
打开openSUSE终端,切换到root用户
su -
查看当前所有分区,确定Debian根分区位置为 /dev/sdb2 (没有单独的/boot分区)
lsblk
挂载Debian根分区
mount /dev/sdb2 /mnt
挂载其他需要的系统目录
mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys
chroot到移动硬盘上的Debian
chroot /mnt
重装GRUB
grub-install /dev/sdb
更新GRUB配置
grub-mkconfig -o /boot/grub/grub.cfg
退出chroot环境
exit
卸载分区和目录
umount /mnt/dev umount /mnt/proc umount /mnt/sys umount /mnt
重建完成
再次连接移动硬盘已经恢复引导顺利进入Debian系统,修复成功。硬盘里的文件内容和设置停留在传输连接中断前一瞬间的状态,幸好早预料到发生这种事情的可能没有存放重要数据。
建议不要将进行重要工作的系统安装在老旧、接触不良、质量很一般和读写数据慢的移动设备上,一旦发生意外事件损坏数据甚至磁盘的概率是相当高的。特别是质量一般的USB2.0U盘不要冒险,除非打算专门实战各种修复和数据恢复技能。另外在熊孩子和宠物经常出没的环境尽量不要用移动设备上的系统,以免意外惊喜。
时间: 2024-11-04 17:13:46