安装具有冲突 LVM 名称的加密外部设备

安装具有冲突 LVM 名称的加密外部设备

我给自己买了一个新硬盘并安装了最新版本的 Linux Mint。现在我想从旧磁盘传输文件(我最近没有备份),但有几个问题

  • 我的新内部系统和外部驱动器的LVM 名称发生冲突(Linux Mint 使用mint-vg该名称)
  • 磁盘本身已加密
  • 我的/home也被加密了
  • 新驱动器也已加密

我怎样才能恢复我的数据?

答案1

安装驱动器

(我对SATA驱动器使用USB外壳,您也可以将驱动器安装在您的PC上)

当安装 Mint 时加密磁盘时,驱动器将包含一个分区方案(使用fdisk -l /dev/sdb),例如

/dev/sdb1 -> Bootable, about 500M in size, Id 83, Type "Linux" /dev/sdb2 -> Not-bootable, rest of your disk's capacity, Id 5, Type "Extended" /dev/sdb5 -> Not-bootable, rest of your disk's capacity, Id 83, Type "Extended"

找到分区后尝试使用以下命令挂载它

sudo cryptsetup luksOpen /dev/sdb5 exthdd

Whereexthdd实际上可以是任何东西,但它一定不存在于 下dev/mapper,所以你可以先检查一下。

系统将要求您提供分区的密码,因此请准备好。如果你失去了这个,就没有任何帮助了......

再次运行,lsblk您应该会看到类似mint--vg-rootmint--vg-swap_1的内容exthdd

处理 LVM 名称冲突

当设备通过 解锁后cryptsetup luksOpen,运行

sudo lvscan

这会告诉你类似的东西

inactive '/dev/mint-vg/root' [UVW GiB] inherit inactive '/dev/mint-vg/swap_1' [XYZ GiB] inherit ACTIVE '/dev/mint-vg/root' [ABC GiB] inherit ACTIVE '/dev/mint-vg/swap_1' [DEF GiB] inherit

正如您所看到的,您在目录mint-vg下有两个目录/dev,这使您只能访问其中一个(在我的例子中它指向外部硬盘驱动器)。

幸运的是,底层卷组通过 ID (VG UUID) 进行区分。我们可以检索这些正在运行的ID

sudo vgdisplay

这将向您显示类似这样的内容(输出缩写):

--- Volume group ---
 VG Name        mint-vg
 ...
 VG Size        UVW GiB
 ...
 VG UUID        UVW-ID

 --- Volume group ---
 VG Name        mint-vg
 ...
 VG Size        ABC GiB
 ...
 VG UUID        ABC-ID

就我而言,我能够通过查找硬盘驱动器的大小来解决差异,当然您可以在安装外部驱动器之前检查当前 VG 的 ID。

现在我们有了 ID (UVW-ID),我们可以使用以下命令重命名 VG

sudo vgrename UVW-ID newvgname

你应该得到一个

Volume group "NAME-OF-UVW" successfully renamed to newvgname

检查后lsblk应该会显示sdb5newvgname-swap_1和下有两个条目newvgname-root

解密并挂载您的主目录

如果你/dev/mapper现在检查,你会发现两个新节点

/dev/mapper/newvgname-root /dev/mapper/newvgname-swap_1

跑步

sudo mount /dev/mapper/newvgname-root /your/mount/point

并检查结果

ls /your/mount/point- 瞧,您现在应该可以访问该设备了。

现在转到/home目录并查找隐藏目录.ecryptfs。在里面你应该找到一个目录user- 其中user是你要查找的用户名。

现在运行

sudo ecryptfs-recover-private /your/mount/point/home/.ecryptfs/user/.Private/

系统将提示您输入以下帐户的密码user

INFO: Found [/your/mount/point/.ecryptfs/user/.Private/].
Try to recover this directory? [Y/n]: Y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] Y
INFO: Enter your LOGIN passphrase...
Passphrase: _
Inserted auth tok with sig [...] into the user session keyring
INFO: Success! Private data mounted at [/tmp/ecryptfs.ABCXYZ]

然而,如果你丢失了这个密码,你就没有希望了。

您现在可以转到/tmp/ecryptfs.ABCXYZ并查看主目录的内容。

卸载

以相反的顺序卸载所有内容。

相关内容