重新编号加密分区 - sda3 至 sda5

重新编号加密分区 - sda3 至 sda5

我有一个加密crypt-luks分区,当前名为sda3,并且是磁盘上的最后一个分区,即没有sda4sda5。加密分区包含三个包含文件系统的逻辑卷。

我可以将分区从 重命名为sda3sda5?这是新安装,我不介意丢失数据。如果可能的话,我将使用恢复 USB 记忆棒对分区重新编号。

我尝试使用gdisk高级模式,并使用该选项重命名磁盘t。但是现在我无法从磁盘启动:它要求输入加密密码并在输入时循环返回。这样做的正确方法是什么?

(对于那些好奇的人,我需要这是因为一个自动脚本期望我的加密分区处于打开状态sda5。不幸的是,该脚本是在网络启动时运行的,我无法控制它。)

答案1

最简单的方法(但可能不是最好的方法)是创建一个符号链接。

ln -nsf /dev/sda3 /dev/sda5

编辑:这很可能会在启动时被删除,因此您需要在启动过程的早期编写脚本

编辑:感谢评论中的 roaima,以下 udev 规则应该自动创建链接。创建/etc/udev/rules.d/82-cryptsetup.rules包含以下内容的文件

SUBSYSTEM=="block", KERNEL=="sda3", SYMLINK+="sda5"

答案2

以下解决方案基于论坛帖子符号链接的 udev 规则

您已经/dev/sda3并且想要创建一个指向它的符号链接来合成名为 的丢失设备的条目/dev/sda5

cd /dev && ln -s sda3 sda5

这可以在启动时使用udev与块设备匹配的简单规则进行管理sda3

创建文件/etc/udev/rules.d/80-local,或使用类似名称的文件,并向其中添加以下行:

# symlink existing /dev/sda3 to new sda5
SUBSYSTEM=="block", KERNEL=="sda3" SYMLINK+="sda5"

如果您好奇,我通过查看 的输出选择了SUBSYSTEM和值作为合适的匹配项。 (我更愿意匹配 UUID 或其他唯一标识符,但我找不到。)KERNELudevadm info -a -n /dev/sda3

现在告诉udev重新加载其规则并触发任何新的匹配:

udevadm control --reload-rules
udevadm trigger --attr-match=subsystem=block

您将看到自动创建的符号链接:

ls -l /dev/sda5
lrwxrwxrwx 1 root root    4 Jan  7 17:18 /dev/sda5 -> sda3

我无法测试下一步,但根据启动过程中您需要创建此符号链接的位置,您可能会发现有必要更新您的initramfs.在我的 Debian 系统上,这样做是这样的:

update-initramfs -u

相关内容