我有一个加密crypt-luks
分区,当前名为sda3
,并且是磁盘上的最后一个分区,即没有sda4
或sda5
。加密分区包含三个包含文件系统的逻辑卷。
我可以将分区从 重命名为sda3
吗sda5
?这是新安装,我不介意丢失数据。如果可能的话,我将使用恢复 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 或其他唯一标识符,但我找不到。)KERNEL
udevadm 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