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


1

我有/交换区域的Ubuntu 14.04 LTS(和Linux Mint 17.1 LTS)在dm-crypt / LUKS中加密。/交换区域位于/ 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 / device / - UUID

只能更改外部容器的UUID。

谢谢你的回复。

Answers:


0

每个加密分区有两个UUID。

文件系统的UUID

/etc/fstabGRUB中使用(因此不要忘记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. Untar备份。
      3. 如果需要,还原文件系统UUID。

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


2个更好的想法:1)不要使用/ dev / mapper / sdXY /etc/fstab/etc/crypttab 使用这样的行:UUID = <fs_UUID> <UUID> <fs> <options>这更加强大,特别是在移动驱动器分区的情况下/ disk .... 2)查看cryptsetup-reencrypt并使用--uuid开关运行(这为重新加密的位设置了用户定义的uuid)---这是就地重新加密所以如果这是在 system drive从现场的媒体或其他操作系统运行此...
linuxdev2013

Thanx,但实际上1)/ dev / mapper设备仅用于tune2fs实用程序(它需要设备文件路径名),假设我们不需要在系统设置中更改任何内容,以及2)原始问题是关于备份,而不是更改luksUUID就地(顺便说一句,luksUUID可以更改,无需LUKS卷重新加密 - 使用cryptsetup luksUUID
dess

0

要使用给定的UUID 重新创建cryptluks分区,请按类似方式键入:

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

(用cryptluks加密/ dev / sdb4分区),

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

(打开luks容器并将其作为/ dev / mapper / sdb4_crypt附加),

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

(将luks容器格式化为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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.