我试图让我的硬盘可启动并且做了
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i1 ada0s1
现在我在启动时收到“无效分区”消息。
/boot
来自 USB 驱动器,而不是来自 HDD(即ada0s1
)。
这种情况下可以恢复分区吗?
# gpart show /dev/ada0s1
=> 0 976770081 ada0s1 BSD (466G)
0 16 - free - (8.0K)
16 959992849 1 freebsd-ufs (458G)
959992865 17777216 2 freebsd-swap (8.0G)
试
# fsck /dev/ada0s1
** /dev/ada0s1
Cannot find file system superblock
# fsck /dev/ada0s1a
** /dev/ada0s1a
Cannot find file system superblock
# fsck /dev/ada0s1a
尝试猜测超级块没有帮助
newfs -N /dev/ada0s1a
192, 1282432...
然后
fsck_ufs -b 192 /dev/ada0s1a
Akternate super block location: 192
** /dev/ada0s1a
192 is not a file system superblock
之前是可以工作的gpart bootcode
答案1
在发生类似错误后,我通过以下步骤成功恢复了分区上的大部分数据:
dd
使用或testdisk
(image.dd
)从损坏的分区创建文件dd if=image.dd of=ffs.dd bs=1024 count=204800
newfs ffs.dd
mdconfig image.dd
dd if=ffs.dd of=/dev/md0 bs=512 count=140
newfs -N /dev/md0
(写入完成备份超级块 192、1282368 等)fsck_ffs -b 192 /dev/md0
(如果这个超级块失败,请尝试另一个超级块)fsck_ffs /dev/md0
然后您就可以访问恢复的文件。小心操作,因为其中一些已损坏。