在 Linux 环境直接复移动硬盘上的 GRUB

  手头有一块用了 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 系统,修复成功。硬盘里的文件内容和设置停留在传输连接中断前一瞬间的状态,幸好早预料到发生这种事情的可能没有存放重要数据。

  建议不要将进行重要工作的系统安装在老旧、接触不良、质量很一般和读写数据慢的移动设备上,一旦发生意外事件损坏数据甚至磁盘的概率是相当高的。特别是质量一般的 USB 2.0 U 盘不要冒险,除非打算专门实战各种修复和数据恢复技能。另外在熊孩子和宠物经常出没的环境尽量不要用移动设备上的系统,以免意外惊喜。

欢迎阅读,欢迎探讨,欢迎指正错误。未特意注明的博文皆为实践后原创,个人笔记非教程,水平有限仅供参考。若转载请贴上原文链接,谢谢!
原文地址:https://www.cnblogs.com/tsdxdx/p/7192468.html