我最近不得不使用 testdisk 以及以下步骤(快速格式化后恢复 ext4 文件系统)恢复意外格式化的 ext4 分区。
从备份超级块恢复 Ext4 分区后,我可以手动挂载它并查看丢失的文件。但是,该分区在“磁盘”实用程序中仍然显示为未知,我无法通过 Nautilus 挂载该驱动器。
有什么想法可以解决这个问题吗?
编辑:
首先出错的是,我误将一个ext4分区(名为“ExtraDrive1”)格式化为Fat32(名为“aaaaa”)。该分区对应的设备名称是/dev/sdb1。
我努力了:
- 打开 gdisk 并按“w”进行修复。
这不起作用,因为分区的元数据仍然包含有关驱动器“aaaaa”的信息。因此,它恢复了意外创建的 fat32 文件系统,而不是丢失的 ext4 驱动器。
- 使用磁盘实用程序和 Gparted:
这些实用程序似乎没有内置处理这种情况的方法。它们仅支持格式化驱动器,而不支持修复未格式化驱动器的元数据。
- 使用 Testdisk 中的“写入”选项
当我打开 testdisk 时,它最初显示驱动器“aaaaa”。执行快速搜索后,它显示“ExtraDrive1”,并给我“写入”选项。但是,点击“写入”按钮然后重新启动似乎没有任何变化。
附加信息
我可以在 testdisk 中打开 ExtraDrive1 并查看文件。我还可以使用 手动挂载 /dev/sdb1 sudo mount -t ext4 /dev/sdb1 ./temp/
。问题是该分区在磁盘实用程序中显示为“未知”,并且无法通过 nautilus 挂载。这似乎表明 /dev/sdb1 的元数据仍然反映“aaaaa”,而不是“ExtraDrive1”。
的输出file -s /dev/sdb1
为:
/dev/sdb1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 64, reserved sectors 64, Media descriptor 0xf8, sectors/track 63, heads 255, FAT (32 bit), sectors/FAT 476864, serial number 0x80d4b4c6, label: "aaaaa "
答案1
我没有尝试修复“ExtraDrive1”上损坏的元数据,而是决定手动安装“ExtraDrive1”,将文件复制到外部 SDD,重新格式化“ExtraDrive1”,然后将文件复制回来。
学过的知识:
testdisk、fsck 和 gparted 等实用程序似乎不适用于可以安装但仍有问题的驱动器。在这种情况下,备份文件并重新格式化要容易得多。