如何在 Linux 上使用预定义 UUID 重新创建加密的 dm-crypt/LUKS 分区?

如何在 Linux 上使用预定义 UUID 重新创建加密的 dm-crypt/LUKS 分区?

我有/交换区使用 dm-crypt/LUKS 加密的 Ubuntu 14.04 LTS(和 Linux Mint 17.1 LTS)。/交换区住在/dev/mapper/UUID_1/dev/mapper/UUID_2. 是否有可能重新创建/dev/mapper/UUID(例如在不同的硬盘上)(当然具有相同的 UUID)?这样可以在发生灾难时使用 TAR 恢复系统。如您所知,TAR 记录了复制分区的 UUID。此外,grub.cfg、/etc/fstab 和 initframs 也包含该编号。

sudo tune2fs /dev/mapper/UUID -U UUID

命令不起作用。

cryptsetup luksUUID /设备/——唯一唯一标识符

只能更改外部容器的 UUID。

谢谢您的回复。

答案1

每个加密分区都有两个 UUID。

文件系统的UUID

在 GRUB 中使用/etc/fstab(因此更改后不要忘记使用sudo update-grub)。可以使用以下命令进行更改:

sudo tune2fs ‐U "<fsUUID>" /dev/mapper/<luksUUID>

...在哪里是对应 LUKS 分区的 UUID(可以在 中查找/etc/crypttab)并且<fsUUID>需要设置文件系统 UUID。例如:

sudo tune2fs ‐U "81db8bc2-6cc1-4272-beab-8c1d667cfa93" /dev/mapper/310919c2-aec9-4641-b3d2-6d523395db34

LUKS 分区的 UUID

用于/etc/crypttab。可以更改为:

sudo cryptsetup luksUUID --uuid "<luksUUID>" /dev/sdxX

...在哪里是否需要设置 LUKS 分区的 UUID,以及/dev/sdxX是 LUKS 加密的设备名称。例如:

sudo cryptsetup luksUUID --uuid "310919c2-aec9-4641-b3d2-6d523395db34" /dev/sda1

但最好恢复整个 LUKS 标头(如果您不打算更改加密密钥)。LUKS 标头不存储分区大小,因此它可用于恢复到几乎任何分区大小。此外,恢复标头足以重新设置 LUKS 分区格式(即在这种情况下不需要 luksFormat)。可以使用以下方法完成luksHeaderRestore(备份使用与 非常相同的方式完成luksHeaderBackup):

sudo cryptsetup luksHeaderRestore --header-backup-file "<HeaderBackupFile>" /dev/sdxX

...在哪里是需要设置的LUKS分区的UUID。例如:

sudo cryptsetup luksHeaderRestore --header-backup-file "/home/user/MyLuksHeader.Backup" /dev/sda1

概括

因此恢复步骤如下:

  1. 创建新分区。
  2. 恢复 LUKS 标头。
  3. 解锁 LUKS 分区
  4. 使用以下任一方法恢复文件系统:
    • 恢复文件系统映像(例如使用partclone)。
    • 重新创建文件系统:
      1. 格式化新设备。
      2. 解压备份。
      3. 如果需要,恢复文件系统 UUID。

请注意,使用 LUKS 和文件系统的标签而不是 UUID 可以简化配置并使其更具可读性。

答案2

重新创建隐秘的根据给定的 UUID 进行分区,类似地输入:

sudo cryptsetup luksFormat --verify-passphrase --uuid dec95850-23ad-4f54-b5c2-4f13ea48c571 /dev/sdb4

(使用以下命令加密 /dev/sdb4 分区:隐秘的),

sudo cryptsetup open --type luks /dev/sdb4 sdb4_crypt

(打开卢克斯容器并将其附加为 /dev/mapper/sdb4_crypt),

sudo mke2fs -v -t ext4 -U f65aa2cb-d7a3-4e45-858b-2b12a50e1b45 /dev/mapper/sdb4_crypt

(格式化卢克斯容器作为ext4文件系统并分配给定的 UUID)

mount /dev/mapper/sdb4_crypt /media/<user>/f65aa2cb-d7a3-4e45-858b-2b12a50e1b45

(安装luks容器在给定路径下。

当作业完成后,我们可以卸载容器并关闭容器:

sudo umount /media/<user>/f65aa2cb-d7a3-4e45-858b-2b12a50e1b45
sudo cryptsetup luksClose sdb4_crypt

要使用给定的 UUID 重新创建交换分区:

sudo cryptsetup luksFormat --verify-passphrase --uuid e1baa59a-f24f-450c-a5a8-67f9d2f3338e /dev/sdc2
sudo cryptsetup open --type luks /dev/sdc2 sdc2_crypt
sudo mkswap -U 5313264e-6212-46f5-936d-f903eb2a2231 /dev/mapper/sdc2_crypt

可以使用以下命令关闭容器:

cryptsetup luksClose sdc2_crypt

相关内容