我损坏了 linux luks 分区并在启动时获取 initramfs 且没有错误消息

我损坏了 linux luks 分区并在启动时获取 initramfs 且没有错误消息

我已经搜索了大约 10 多个小时来解决这个问题,但还没有找到解决方案,所以我在这里:/

长话短说,我通过在实时 USB 启动上缩小其大小,为双启动 Windows 分区腾出更多空间,从而损坏了我的主 Linux 启动驱动器(具有 luks 加密)。

一切都很好,直到我启动到我的电脑,像平常一样解密我的驱动器,但在我的磁盘解密后,我遇到了一个没有日志的 initramfs 控制台(initramfs)

我已经尝试了多种方法,但我可以从调查中推断出以下内容:

*我的驱动器有一个有效的 luks 标头(我知道密码) *驱动器上有有效的超级块 *在 initramfs 中键入 exit 只是说找不到 /dev/ (等等...),没有任何提示

我会将一些结果写入可能有助于解决此问题的命令。几周前我搬到了 Linux,所以这对我来说是新的:/

顺便说一句,我正在实时启动中输入这些命令。我的主要 Linux 分区位于 sda3 上。希望这可以帮助。

root@pop-os:~# lsblk

NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                                           7:0    0     2G  1 loop  /rofs
sda                                             8:0    0 223.6G  0 disk  
├─sda1                                          8:1    0   498M  0 part  
├─sda2                                          8:2    0     4G  0 part  
├─sda3                                          8:3    0 146.5G  0 part  
│ └─luks-077248fb-b2bf-4ddb-9762-3c69af031c2c 253:0    0 146.5G  0 crypt 
├─sda4                                          8:4    0     4G  0 part  [SWAP]
└─sda5                                          8:5    0    67G  0 part  /media/pop-os/c
sdb                                             8:16   0   1.8T  0 disk  
├─sdb1                                          8:17   0    16M  0 part  
└─sdb2                                          8:18   0   1.8T  0 part  
sdc                                             8:32   1  14.5G  0 disk  
├─sdc1                                          8:33   1   2.1G  0 part  /cdrom
├─sdc2                                          8:34   1     4M  0 part  
└─sdc3                                          8:35   1  12.3G  0 part  /var/crash

root@pop-os:~# sudo blkid | grep LUKS

/dev/sda3: UUID="077248fb-b2bf-4ddb-9762-3c69af031c2c" TYPE="crypto_LUKS" PARTUUID="fa8127eb-222e-48ab-93ba-23fde42b29bf"

root@pop-os:~# sudo blkid | grep LVM2

/dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c: UUID="FMjQHW-a72R-7Z4K-37pV-dioz-vvIb-QJsKhm" TYPE="LVM2_member"

root@pop-os:~# sudo fdisk -l /dev/sda3

Disk /dev/sda3: 146.5 GiB, 157286400000 bytes, 307200000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

root@pop-os:~# cryptsetup luksDump /dev/sda3

[luks header in full]

root@pop-os:~# sudo mke2fs -n /dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c

mke2fs 1.45.5 (07-Jan-2020)
/dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c contains a LVM2_member file system
Proceed anyway? (y,N) y
Creating filesystem with 38395904 4k blocks and 9601024 inodes
Filesystem UUID: 5eedce5b-bea9-405e-85ed-0316ea3ba13c
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872

root@pop-os:~# 文件 -s /dev/sda3

/dev/sda3: LUKS encrypted file, ver 2 [, , sha256] UUID: 077248fb-b2bf-4ddb-9762-3c69af031c2c

当尝试解密并打开实时启动文件管理器上的分区时,它会返回以下内容:

“在 /media/pop-os/<8num>-<4num>-<4num>-<4num>-<12num> 安装 /dev/dm-1 时出错:文件系统类型错误、选项错误、/dev/ 上的超级块错误映射器/数据根,缺少代码页或帮助程序,或其他错误。”

我仍然有标头,所以它应该是可恢复的,但如果我无法恢复整个内容,我想知道如何获取我的 /home 目录。感谢您的时间。

答案1

您的mke2fs -n运行表明加密卷/dev/mapper/luks-077248fb-b2bf-4ddb-9762-3c69af031c2c包含 LVM 物理卷,而不仅仅是文件系统。因此,解锁加密卷(如有必要,手动使用)后的下一步cryptsetup luksOpen应该是扫描 LVM 组件,然后在状态良好时激活它们。

由于您说您通过收缩卷损坏了卷,因此它可能是可检测到的,但可能不会自动激活,因为 LVM 和相关的udev自动化通常只会自动激活 VG,而不会出现错误。因此,在实际环境中,您将需要以下命令:

vgscan
vgchange -Pay --activationmode partial

这些将告诉系统查找 LVM 卷组(包括刚刚解锁的加密卷)并激活它们,即使它们似乎缺少某些部分。您可能会看到来自这些命令的诊断、警告和/或错误消息。

如果 VG 由于 LVM 物理卷声称大于其所包含的 LUKS 加密卷而拒绝激活,则您可能需要首先将 LUKS 容器重新扩展至收缩之前的大小。

如果这些命令成功,则应该至少有一个可供安装的 LVM 逻辑卷,具体取决于系统的配置方式。使用命令lvs和/或lsblk查看它们:您可以将 LVM 逻辑卷寻址为/dev/<VG name>/<LV name>/dev/mapper/<VG name>-<LV name>

根据实时启动文件管理器的错误消息,我猜测您的 LVM 卷组的名称是data,其中的根文件系统 LV 的名称是root

如果这是真的,那么下一步可能应该是确认文件系统类型,因为它可能不是,ext4xfs也可能是btrfs,具体取决于您的 Linux 发行版以及您在安装时可能做出的选择。所以:

file -Ls /dev/mapper/data-root

如果文件系统类型为ext4,则响应应类似于:

/dev/mapper/data-root: Linux rev 1.0 ext4 filesystem data, UUID=12345678-abcd-1234-abcd-123456789abcd, volume name [...]

如果文件系统类型为xfs,则响应应类似于:

/dev/mapper/data-root: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

如果文件系统类型不是ext4ext3ext2,则以及特定于//的e2fsck任何其他文件系统工具ext2ext3ext4系统类型系列将不适用。尝试使用它们可能会有害。

如果该file命令无法识别文件系统类型,可能是因为文件系统已损坏 - 或者可能只是因为您的实时 Linux 环境比您的实际安装更旧/更受限制,并且不完全支持该特定文件系统类型。

如果可以成功识别文件系统类型,您应该能够尝试使用以下命令挂载文件系统:

mount -o ro /dev/mapper/data-root /mnt    #or whatever you want to use as a mount point

如果您有多个 LVM 逻辑卷,那么所有这些逻辑卷现在都应该可以以相同的方式安装。

相关内容