Mik*_*Rev 7 debian header-file linux-kernel luks crypttab
关于如何在 Stack\xc2\xa0Exchange 上为 LUKS 加密磁盘设置 \xe2\x80\xafup 分离标头\n的信息分散。\xc2\xa0\n通过使用 Google 搜索网络,我发现了有限的信息。\ xc2\xa0\n我发现的一些最好的信息\nis链接到问题的底部。\xc2\xa0\n其中一些很有帮助,甚至对像我这样的\xc2\xa0新手也很有帮助。\xc2\xa0\n但是有些似乎不完整,因此我有动力写这个。\xc2\xa0\n请看看你是否可以帮助解决下面的问题,\n使其完整并正常工作。
\n我假设读者曾经lsblk发现应分离的标头驱动器是sdb,并存储在其他驱动器上sda。
方法一:将header制作成分区
\n找出标头的大小,并将分区设置为正确的大小。\xc2\xa0\n\xc2\xa0以下命令将为您提供大量信息。\xc2\xa0\n记下下面旁边的offset数字Data\xc2\xa0segments:
$ cryptsetup luksDump /dev/sdb\n...\nData segments:\n 0: crypt\n offset: 16777216 [bytes]\n length: (whole device)\n cipher: aes-xts-plain64\n sector: 512 [bytes]\n...\nRun Code Online (Sandbox Code Playgroud)\n执行fdisk(如果没有则安装)\n与$\xc2\xa0fdisk\xc2\xa0/dev/sda.
给它命令n并按 Enter。\xc2\xa0\n使用默认分区号创建一个主分区;假设它是X。\xc2\xa0\n选择并记下默认第一个扇区的值\n(假设它是数字M)。\xc2\xa0\n它将提示您输入最后一个扇区;我们称之为K。\xc2\xa0\n要\xc2\xa0找到一个合适的数字K进入(并假设一个扇区的大小为 512\xe2\x80\xafbytes),计算K \xe2\x80\ xaf=\xe2\x80\xaf M \xe2\x80\xaf+\xe2\x80\xaf偏移量/512; 其中offsetluksDump是您在上面使用 .\xc2\xa0 \n命令找到的数字cryptsetup。\xc2\xa0\nIt\xc2\xa0 将创建一个与 luks-header 大小完全相同的分区。最后,用 写入更改w。现在将 luks-header 导出到~/some/file/path/header.img并将其写入您创建的分区:
\n$ cryptsetup luksHeaderBackup /dev/sdb --header-backup-file ~/some/file/path/header.img\n$ dd if=~/some/file/path/header.img of=/dev/sda X计数= K bs=512 状态=进度\n\n
其中X和K是上面选择的数字fdisk。\xc2\xa0\n现在标头存储在 上,并且为了好玩,如果您打开(并在必要时安装)程序,您将看到 gparted 认为是一个很小的LUKS 加密分区!\xc2\xa0\n您将看到的 UUID 与 .\xe2\x80\x82 的 UUID相同,因此您必须生成一个新的 UUID(在 Google 中搜索“uuid 生成器”) .\xe2\x80\x82假设新生成的UUID为newuuid;然后改变它sdaXgpartedsdaXlsblk -f/dev/sda1/dev/sdb1
$ cryptsetup luksUUID /dev/sda1 --uuid newuuid\n
现在我们必须将此信息输入到/etc/crypttab.\xc2\xa0\n使用文本编辑器打开该文件,并找到引用 的行sdb。\xc2\xa0\n在\xc2\xa0第四列中添加选项。header=/dev/sdaX
请参阅frostschutz的答案,了解如何通过设置 header=/dev/disk/by-uuid/UUID 来更好地做到这一点。\xc2\xa0\n请务必进行此修改并为他们的答案投票。
\n然后写$ update-initramfs -u -k all。\xc2\xa0\n如果\xc2\xa0没有错误,那么我\xc2\xa0认为你很好。
方法 2:让标头成为文件系统上的文件
\n文档和其他来源表示,应该可以将标头复制到文件系统sda并从那里引用它。假设我们说分区的文件系统sda1有
UUID=###########-############-####-########\nRun Code Online (Sandbox Code Playgroud)\n相对于sda1,标题位于/some/path/header.img.\xc2\xa0\n,然后crypttab(5)表示在/etc/crypttabI\xc2\xa0 的第四列中应该写
header=/some/path/header.img:UUID=###########-############-####-########\nRun Code Online (Sandbox Code Playgroud)\n但如果我这样做,update-initramfs就会抱怨找不到标头。
问:请您看一下并引用要写的内容。\xc2\xa0\n我刚刚安装的 DEBIAN,不幸的是我无法让它工作。
\n结束时;您可以使用 删除现有标头中的信息cryptsetup luksErase /dev/sdb。如果您想应用 cryptsetup 来访问有关加密分区的信息,您现在必须向其传递 - 选项--header /dev/sdax。我已尽力确保一切正确且详细。但可能有一个错误。请随意编辑。当然,如果您丢失数据或损坏某些东西,我们将无法提供保修。
来源/其他阅读:
\n分离标头是一个特殊的用例。由于很少有人使用它,因此某些地方也可能缺乏对它的支持。所以我不建议使用它们。我也不建议使用没有分区表的驱动器。这个设置有太多的陷阱。
如果header=UUID=x不起作用,请尝试header=/dev/disk/by-uuid/x。
对于header=/some/path/file:UUID=x,路径是相对于指定文件系统的。所以,如果你mount UUID=x /mnt/somewhere,那么它会寻找/mnt/somewhere/some/path/file。
关于luksErase(或者通过 luksRemoveKey 或 luksKillSlot 删除所有密钥)。没有任何剩余键槽的 LUKS 标头无法再打开(您必须使用分离的标头)。但它仍然提供 UUID,以便您可以识别加密设备。
如果您的分离标头也在分区上并且具有相同的 UUID,则会发生冲突。您必须使用 luksUUID 更改其中之一,以便能够通过 UUID 识别标头和加密设备。如果是 LUKS2,您还可以设置标签。
或者,如果您使用 GPT 分区,则可以使用 PARTUUID 或 PARTLABEL 来识别它。
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |