首页 > 代码库 > 在Linux环境直接复移动硬盘上的GRUB

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

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

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