我的 /home 分区在主硬盘上消失了。我更换了 SATA 插槽,然后在启动过程中收到奇怪的“无可用 lvm”错误,而通常需要输入密码(顺便说一句,我根本没有设置任何 lvm)...
我的 BIOS 重新测试了自身,并将 SATA 端口设置为传统 IDE 模式,也许这导致了这种混乱。无论如何,我最终要启动了,但现在 2 个分区已经消失了。
我有这个。
sda1 - tiny GPT something partiton (never really understood if this is needed or not but I have seen OSes create this) - disappeared
sda2 - /boot
sda3 - swap
sda4 - / LUKS->btrfs
sda5 - /home LUKS->btrfs - disappeared
我真的希望它是根分区而不是我的 /home,看起来每个第二个分区都消失了。
我现在想恢复我的主分区。好在我有 LUKS 标头。坏在我没有空间来克隆此驱动器,所以我现在不能犯任何错误,这就是我在这里问的原因。
cryptsetup -v --header /mnt/<backup>/<file>.img open /dev/<device> test
我这样做了,但我不确定这是否要求我将分区放在设备为 /dev/sda5 或只是 /dev/dev/sda 的位置,因为我对 /dev/sda 执行了此操作,该命令实际上是成功的,但现在我无法安装映射设备。它说只读,并且未检测到文件系统,那么我应该定义它。这也没有用(应该没有必要,因为它应该被正确检测到)
root@ubuntu:~# cryptsetup -v --header ~/Desktop/huge open /dev/sda check
Enter passphrase for /dev/sda:
No key available with this passphrase.
Enter passphrase for /dev/sda:
Key slot 0 unlocked.
Command successful.
root@ubuntu:~# mkdir /oldhome
root@ubuntu:~# mount /dev/mapper/check /oldhome/
mount: block device /dev/mapper/check is write-protected, mounting read-only
mount: you must specify the filesystem type
root@ubuntu:~# mount /dev/mapper/check /oldhome
mount: block device /dev/mapper/check is write-protected, mounting read-only
mount: you must specify the filesystem type
root@ubuntu:~# umount /oldhome
umount: /oldhome: not mounted
root@ubuntu:~# man mount
root@ubuntu:~# mount -t btrfs /dev/mapper/check /oldhome
mount: wrong fs type, bad option, bad superblock on /dev/mapper/check,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
所以也许这只是为了传递实际的分区但它已经消失了,所以我现在该怎么办?
我也读过关于 Testdisk 的文章,既然还有其他分区,也许我必须以某种方式重新创建分区表?明天去读这个:修复 GPT 磁盘
我很高兴得到有经验的人的回答。
更新:
我现在使用 gdisk,它给了我一个“警告!辅助分区表与最后一个分区重叠 434 个块。您需要删除该分区或在另一个实用程序中调整大小。
由于这个错误,gdisk 不允许我尝试恢复备份 GPT 或将我尝试的任何内容写入磁盘。
现在的问题是 gnome-disks 不让我删除它“不能在磁盘外有分区”(它只是启动分区,我不关心它发生了什么)并且 gparted 检测到整个磁盘没有分配空间,没有分区显示要删除,不像 gnome-disks。
更新 2
Windows 8 磁盘管理器让我删除第二个(启动)分区。它仍然显示第二个分区重叠,但现在第二个分区是第三个分区(我的 40gb 系统分区)。我是否应该删除现在可以删除的所有分区,然后尝试显示我的 /home?
我很好奇,我是否应该无法从带有标题的分区的任何位置读取数据?David Foerster 试图帮助我使用一些 dd | grep 命令找到 LUKS 分区的开头,但没有成功。
更新 3
删除了 Windows 下的所有分区。Gnome 磁盘仍然显示 sda4+5,我的 40Gig 系统分区仍然存在并且可以访问。
测试盘报告:
4000 GB / 3726 GiB
HOST PROTECTED AREA (HPA) present
这是什么?
Continue even if there are hidden data
也许有缺失的部分?隐藏了?我可以取消隐藏它们吗?
我还从 crypttab 中获得了分区的 UUID。我可以在整个磁盘中搜索它吗?
我可以手动编辑 GPT 分区表并仅编辑系统分区吗?
更新 5
到目前为止的测试盘输出 - “快速分析”或无论其名称如何,都需要花费数年时间。
TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org
Disk /dev/sda - 4000 GB / 3726 GiB - CHS 486401 255 63
Analyse cylinder 58001/486400: 11%
MS Data 4096 491519 487424
MS Data 4397056 4401151 4096
MS Data 82522112 82526207 4096
Unknown 192150642 20267801100156017 20267800908005376 [4$ ^P]
Unknown 340102217 1330174078621457 1330173738519240
check_FAT: Bad number of sectors per cluster
check_FAT: Bad jump in FAT partition
check_FAT: Bad number of sectors per cluster
Unknown 828912837 22984364628 22155451792 [~F^?eM-@O]
我没有/没有 FAT 分区。Ext2-swap-LUKS-LUKS
更新
我放弃了,重新格式化了驱动器
答案1
幸运的是,我至少能够找到并读取我的文件(未受影响)。
我在这里写下我所做的事情:
- 不要惊慌(不要超过这个程度!),喝一杯水。
- 无论你做什么,都不要对磁盘进行 [写入]。
- 退出 gparted、kde 分区管理器和...,放弃您要进行的所有更改。
- 再次打开 gparted 或 kde 分区管理器,仅用于读取当前表。不要使用这些应用程序对表进行任何更改。
- 按照自己的方式在纸上或文本文件中写下磁盘每个部分的“起始扇区”和“结束扇区”。尽量准确。
- 如果分区消失后你没有改变情况,那么 LUKS 标头的起始位置位于这些部分之一的开头的某个位置(或附近)。
- 请记住:您从步骤 4 和步骤 5 获得的地址是“LBA”而不是“CHS”。我们将使用 testdisk,它利用后者。
- 启动测试磁盘“请务必创建一个日志文件并且不要跳过它,如果日志文件存在则将其附加到其中以避免覆盖”。现在进行扫描(在互联网上搜索)。扫描完成并保存备份后,立即将主目录(testdisk 保存的位置)中的 .log 文件复制到安全的地方。
- 现在使用步骤 5 中的起始和结束地址并创建缺失的分区(分区类型是您用于 luks 的类型。我的是 LINUX for ext4。)。
- 重新检查所有内容,保存备份,保留备份和日志文件,然后写入表。LUKS 标头将由系统确定,但您可能无法像以前一样打开磁盘。
- 执行“sudo cryptsetup luksOpen /dev/[THE NEW DEV] luksrecover”,其中 [THE NEW DEV] 是刚刚添加的分区的地址。它会在 /dev 文件夹中创建一个“luksrecover”分区,指向您添加的分区(并解锁)。
- 完成第 11 步后,驱动器已解锁。如果窗口管理器无法打开它,请不要惊慌。再次转到 testdisk,选择该分区(不是您的磁盘)和“无”分区表。现在使用“LIST”命令。您可以查看和复制文件。太好了。
然后再次:“考虑一下您必须将 LBA 地址转换为 CHS。”