Ubuntu20 和 Win10 分别装在两个固态硬盘里,另有两个机械硬盘用在 Linux 下存数据( 1T+4T ),打开 win10 后提醒我的分区表不是 GPT 是否要转为 GPT ,点确定后给两个没在用的数据硬盘分区表添加了 MSR 分区,有什么办法挽回吗?数据少量损毁可以接受
两个数据硬盘都没有进行分区,整盘格式化为 ext4 在使用,diskgenius 搜索已丢失分区表可以找到未格式化的 ext4 分群,起止柱面为 0 和最大 win10 创建的 MSR 分区起止柱面 0 到 2 共 16Mb ,这个分区内的数据可能已经损坏了
因为全盘格式化使用,diskgenius 无法保存 GPT 分区表 [磁盘的首、尾部分没有转换到 GUID 分区表所必须的空间(除了 MBR 扇区外还需要各 33 个扇区)。请先删除分区或者对分区进行调整后再转换] ,也无法调整分区大小后进行转换
求助,紧急啊,大的为数据盘,小的为数据备份盘,两给一起没了!
1
Cooky 2022-04-05 21:58:09 +08:00 2
https://wiki.archlinux.org/title/File_recovery#e2fsck
mkfs.ext4 -n /dev/sdX 获取备份超级块位置 e2fsck -b 超级块位置 /dev/sdX 我的是这么救回来过 |
2
WXZhao OP @Cooky 谢谢大佬,我现在切到 win10 用 diskgenius 的数据恢复可以扫出来里面的文件,先试着看能不能这样复制出来做个备份,再试试,万分感激!
|
3
iqfEmhuNidBhDfWo 2022-04-05 22:37:19 +08:00
说得我都怕了,赶紧把移动固态硬盘给断电了,里面都是 ext4 分区。
|
4
WXZhao OP @Cooky diskgenius 给的文件结构和名称全乱了,所以去尝试了一下 e2fsck, 现在好像成功了, 我可以 mount 查看内容了, 但是过程中有大量的提示修复,全部选是之后出现了 1.3%的 non-contiguous, 我是成功了还是成功了 98.7%呢...大佬有什么建议能够确认下数据的损毁情况呢? 太感谢了!!!!!!
.... Free inodes count wrong (60824549, counted=60844763). Fix? yes Padding at end of inode bitmap is not set. Fix? yes Block bitmap differences: Group 0 block bitmap does not match checksum. FIXED. Backup: ***** FILE SYSTEM WAS MODIFIED ***** Backup: 210213/61054976 files (1.3% non-contiguous), 133855522/244190646 blocks |
5
WXZhao OP @ukss 有分区的没啥事, windows 好像自己会跳过, 但我习惯于不分区直接存数据, 就被误伤了(在一些英文论坛上看到过有关的讨论)....:(
|
6
iqfEmhuNidBhDfWo 2022-04-05 23:22:36 +08:00
@WXZhao 不分区是什么意思?你是想说只有一个分区吧?
|
7
nkloveni 2022-04-05 23:30:31 +08:00 1
就是不分区,直接 mkfs.ext4 /dev/sdb 这种也能够创建文件系统的,在 linux 下毛问题都没有
|
8
Cooky 2022-04-05 23:43:43 +08:00
@WXZhao 看下 lost+found 目录里有啥,重分区未写入数据的话应该没什么损失,我 dd 16M 数据到错误磁盘救回来也没看有什么问题
|
10
ryd994 2022-04-05 23:51:21 +08:00 via Android 4
@ukss 又称 super floppy 模式
一般人用硬盘是先有分区表,然后设置一到多个分区,然后再在分区上建立文件系统 Linux 允许不建分区表,直接全盘当成一个分区(不是全盘只分一个区)。直接建立文件系统。 其实 Windows 也支持这样的用法的。软盘就是这样,所以叫 super floppy 。系统自带的磁盘管理工具不允许你这样做。disk genious 第三方工具可以。Windows 也可以识别读取(如果是 Windows 支持的文件系统的话) |
11
WXZhao OP @ukss 不分区就真的不分区, 比如`mount /dev/sda /data`这样, 而不是 /dev/sda1... 做 LVM 的时候喜欢这样, 就遗传到自己主机上了~
|
12
WXZhao OP @Cooky lost+found 里面是空的, 先在看来好像没有问题. 我用 e2fsck 后 fdisk -l 会 The primary GPT table is corrupt, but the backup appears OK, so that will be used. 用 gdisk 改为 backup table 能正常, 但重启后一切都恢复错误的样子了, 现在先 mount 了上去, 把数据转移了再格式化硬盘看看吧
|
14
WXZhao OP @Cooky fsck 是过了,但重启后还是有问题无法 mount, 会提示 mount: /home/wxz/Backup: wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error. 又要 e2fsck 或者 fsck -t ext4 才能挂载
flow: sudo mkfs.ext4 -n /dev/sda sudo e2fsck -b 32768 /dev/sda sudo mount /dev/sda Backup (这里没有问题, 但 fdisk 会提示 The primary GPT table is corrupt, but the backup appears OK, so that will be used, 所以用 gdisk 分别 r,b,w) 重启系统, sudo mount /dev/sda Backup, 报错 mount: /home/wxz/Backup: wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error. 重新 e2fsck -b 32768 /dev/sda 又可以了, 但重启还是会出问题, 哪里理解错了呢? |
15
Cooky 2022-04-06 00:37:20 +08:00
@WXZhao fsck 完 mount 之后 fdisk 和 gdisk 都不要用,如果是系统自动用了 fdisk 和 gdisk ,想办法把它禁掉
|
16
iqfEmhuNidBhDfWo 2022-04-06 00:37:55 +08:00
|
18
WXZhao OP @Cooky 尝试了一下, 重启后 mount: /home/wxz/Data: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error.必须重新 fsck 才能挂载, 我还是数据迁移重新格式化一下硬盘吧...
|
19
msg7086 2022-04-06 01:29:38 +08:00
@WXZhao
「用 gdisk 改为 backup table 能正常」 「所以用 gdisk 分别 r,b,w 」 您这是反复擦除自己的数据啊? 你都知道分区表会破坏你的文件系统了,还要坚持破坏是什么情况?给我整不会了。 |
20
WXZhao OP @msg7086 啊?我可能表述不清楚
fsck 正常后再用 fdisk 看到提示说 The primary GPT table is corrupt, but the backup appears OK(这不是说备份是好的嘛), 所以用 gdisk 尝试恢复, 这里用的 b 是 use backup GPT header (rebuilding main), 我以为是用 backup 覆盖 primary, 难道我的理解错的远了? The primary GPT table is corrupt, but the backup appears OK, so that will be used. Disk /dev/sda: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: TOSHIBA DT01ACA1 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 12E7EEF1-FDC0-40C4-BB7F-F594F771E42A |
21
ryd994 2022-04-06 01:53:44 +08:00 via Android 2
@WXZhao 你都没分区,为什么用 fidsk ?我们理理事情经过:
1. 你误用 Windows 安装程序,给硬盘加了个 GPT 分区表,覆盖了 ext4 super block ,同时 GPT 自动在磁盘末尾加了个备份分区表 2. 按照论坛的建议,你用 fsck 和备用 super block 恢复了主 super block 3. 你又用 fdisk ,从备用 GPT 表恢复了主 GPT 表。这是不是又把 super block 给覆盖掉了? |
22
WXZhao OP @ryd994 我终于被敲醒了, 我本来就没分区表:笑哭:
那只有最后的问题了, fsck 恢复 super block 后再重启怎么挂载呀? 重启手动 mount 也会出现 mount: /home/wxz/Data: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error. |
23
yjd 2022-04-06 02:23:25 +08:00
dg 遇到文件系统坏的情况下搜索确实挺渣的,搜出来一堆重命名的文件,你都分不清楚。
所以我的经验,搜索丢失数据一般用 EaseUS Data Recovery Wizard Technician 文件结构基本都能原样保留。 |
24
ryd994 2022-04-06 03:16:52 +08:00 via Android
@WXZhao 感觉是开头的哪个 magic byte 被 GPT 覆盖了。但是又不属于文件系统结构,所以没有被修复。
DiskGenius 之类的工具看看分区的 magic byte ? |
25
mingl0280 2022-04-06 07:56:14 +08:00 via Android
@WXZhao 没辙了,你干掉的一部分很可能是有数据的。
你要是之前建了 GPT 分区表再写的,因为 GPT 分区表使用的空间被保留了反而能把数据区给救回来。现在你是裸分区直接用的,开始部分肯定挂了。 |
28
WXZhao OP @mingl0280 那有什么办法能排查哪些文件又损坏吗?很少量的还是可以接受的(cp 备份了一个盘, 好像没有发现什么问题)
|
29
WXZhao OP @ryd994 diskgenius 看到的东西不太懂, 看不来要怎么做... 我觉得现在可能并没有数据丢失? fsck 后进 lost+found 里面是没有文件的, 这种情况下是不是先把文件转移再重做硬盘更稳妥一些呢?
root@WXZ-Ubuntu20:/home/wxz/Backup/lost+found# ls -alh total 20K drwx------ 2 root root 16K 9 月 9 2019 . drwxr-xr-x 7 wxz wxz 4.0K 4 月 5 23:53 .. |
30
mingl0280 2022-04-06 15:50:13 +08:00
@WXZhao 找丢失的文件可能难度比较大,不过你既然都把分区的文件 cp 出来了……那就说明你运气好。你先用 dd 拷到另外一个盘做个镜像,剩下的就是重建引导了……
|
31
WXZhao OP @mingl0280 听到运气好感觉安心很多了:) 但还是有点问题要请教一下, 感激不尽!
0, 运气好是指的 fsck 后 lost+found 里为空吧, 这个能确信没有文件受损吗? 1, 比如 e2fsck + mount 的 1t 备份盘, 里面最主要的就是 5 个 tgz 压缩包, 尽管现在都成功 cp 出来了, 但我之前并没有保存 hash, 那这些文件是否有可能受损呢? 2, 现在 cp 已经成功了还要 dd 拷贝再重建的目的是恢复数据? 数据拷贝出来后格式化会不会更稳妥呢? |
32
WXZhao OP @mingl0280 我再想了想, 这里指得是用 dd -if=/dev/sda -of=/path/to/file.img 把所有的数据一起拷贝为镜像文件, 再 parted /dev/sda, 建立 /dev/sda1, 然后 dd -if=/path/to/file.img -of=/dev/sda1 完整恢复? 应该比我傻傻的 cp 要快很多, 但暂时我找不到能存 1t 和 4t 镜像文件的硬盘了...
|