双系统 win10 给 Linux 的 ext4 整盘(未分区)添加了 MSR 分区,如何恢复?求助!急!

2022-04-05 21:51:54 +08:00
 WXZhao

Ubuntu20 和 Win10 分别装在两个固态硬盘里,另有两个机械硬盘用在 Linux 下存数据( 1T+4T ),打开 win10 后提醒我的分区表不是 GPT 是否要转为 GPT ,点确定后给两个没在用的数据硬盘分区表添加了 MSR 分区,有什么办法挽回吗?数据少量损毁可以接受

两个数据硬盘都没有进行分区,整盘格式化为 ext4 在使用,diskgenius 搜索已丢失分区表可以找到未格式化的 ext4 分群,起止柱面为 0 和最大 win10 创建的 MSR 分区起止柱面 0 到 2 共 16Mb ,这个分区内的数据可能已经损坏了

因为全盘格式化使用,diskgenius 无法保存 GPT 分区表 [磁盘的首、尾部分没有转换到 GUID 分区表所必须的空间(除了 MBR 扇区外还需要各 33 个扇区)。请先删除分区或者对分区进行调整后再转换] ,也无法调整分区大小后进行转换

求助,紧急啊,大的为数据盘,小的为数据备份盘,两给一起没了!

2158 次点击
所在节点    程序员
35 条回复
Cooky
2022-04-05 21:58:09 +08:00
https://wiki.archlinux.org/title/File_recovery#e2fsck

mkfs.ext4 -n /dev/sdX
获取备份超级块位置
e2fsck -b 超级块位置 /dev/sdX

我的是这么救回来过
WXZhao
2022-04-05 22:03:14 +08:00
@Cooky 谢谢大佬,我现在切到 win10 用 diskgenius 的数据恢复可以扫出来里面的文件,先试着看能不能这样复制出来做个备份,再试试,万分感激!
iqfEmhuNidBhDfWo
2022-04-05 22:37:19 +08:00
说得我都怕了,赶紧把移动固态硬盘给断电了,里面都是 ext4 分区。
WXZhao
2022-04-05 22:37:33 +08:00
@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
WXZhao
2022-04-05 22:39:15 +08:00
@ukss 有分区的没啥事, windows 好像自己会跳过, 但我习惯于不分区直接存数据, 就被误伤了(在一些英文论坛上看到过有关的讨论)....:(
iqfEmhuNidBhDfWo
2022-04-05 23:22:36 +08:00
@WXZhao 不分区是什么意思?你是想说只有一个分区吧?
nkloveni
2022-04-05 23:30:31 +08:00
就是不分区,直接 mkfs.ext4 /dev/sdb 这种也能够创建文件系统的,在 linux 下毛问题都没有
Cooky
2022-04-05 23:43:43 +08:00
@WXZhao 看下 lost+found 目录里有啥,重分区未写入数据的话应该没什么损失,我 dd 16M 数据到错误磁盘救回来也没看有什么问题
msg7086
2022-04-05 23:47:06 +08:00
@ukss 就是不分区。和「只有一个分区」完全没关系。
ryd994
2022-04-05 23:51:21 +08:00
@ukss 又称 super floppy 模式
一般人用硬盘是先有分区表,然后设置一到多个分区,然后再在分区上建立文件系统
Linux 允许不建分区表,直接全盘当成一个分区(不是全盘只分一个区)。直接建立文件系统。
其实 Windows 也支持这样的用法的。软盘就是这样,所以叫 super floppy 。系统自带的磁盘管理工具不允许你这样做。disk genious 第三方工具可以。Windows 也可以识别读取(如果是 Windows 支持的文件系统的话)
WXZhao
2022-04-06 00:06:29 +08:00
@ukss 不分区就真的不分区, 比如`mount /dev/sda /data`这样, 而不是 /dev/sda1... 做 LVM 的时候喜欢这样, 就遗传到自己主机上了~
WXZhao
2022-04-06 00:11:31 +08:00
@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 了上去, 把数据转移了再格式化硬盘看看吧
Cooky
2022-04-06 00:20:58 +08:00
@WXZhao 裸设备没分区表跑啥 fdisk ? fsck 过了就没问题了
WXZhao
2022-04-06 00:29:36 +08:00
@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
又可以了, 但重启还是会出问题, 哪里理解错了呢?
Cooky
2022-04-06 00:37:20 +08:00
@WXZhao fsck 完 mount 之后 fdisk 和 gdisk 都不要用,如果是系统自动用了 fdisk 和 gdisk ,想办法把它禁掉
iqfEmhuNidBhDfWo
2022-04-06 00:37:55 +08:00
@nkloveni
@msg7086
@ryd994
学到了!!!
WXZhao
2022-04-06 00:43:06 +08:00
@Cooky 好的, 那我 fsck 后直接写到 fstab 里重启一下试试
WXZhao
2022-04-06 01:06:52 +08:00
@Cooky 尝试了一下, 重启后 mount: /home/wxz/Data: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error.必须重新 fsck 才能挂载, 我还是数据迁移重新格式化一下硬盘吧...
msg7086
2022-04-06 01:29:38 +08:00
@WXZhao
「用 gdisk 改为 backup table 能正常」
「所以用 gdisk 分别 r,b,w 」
您这是反复擦除自己的数据啊?
你都知道分区表会破坏你的文件系统了,还要坚持破坏是什么情况?给我整不会了。
WXZhao
2022-04-06 01:34:45 +08:00
@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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX