我正在为小型嵌入式 Linux 系统对外部 1TB HDD 进行分区。我想加密交换分区。根据密码设置常见问题解答,您需要在 /etc/crypttab 中使用内核设备名称(/dev/sda 等):
不幸的是,直接通过 UUID 指定它是行不通的,因为 UUID 是交换签名的一部分,并且由于加密以及每次重新启动时的更改而从外部不可见。
如果我稍后连接/重新排列驱动器并且设备名称发生更改,这可能会成为问题。例如,假设交换位于 /dev/sda3 上。然后我附加一个不同的驱动器,该驱动器成为 /dev/sda,将原始驱动器推送到 /dev/sdb。如果新驱动器上存在第三个分区(现在称为 sda3),它将尝试加密该驱动器并将其用作交换分区。
给出的一种选择是确保分区号不存在于其他磁盘上。所以,最后我的问题是:
我可以使用不连续的分区号吗?它们会在重新启动后持续存在吗?换句话说,我可以这样做吗?注意 sda4 和 sda8 之间的差距:
/dev/sda1 primary /boot
/dev/sda2 primary /
/dev/sda3 primary /home
/dev/sda4 extended
/dev/sda8 swap (encrypted)
如果是这样,我会感到非常安全,因为在任何其他驱动器上都不会看到 sda8。
答案1
分区号不能冲突。身体上不能。
分区记录在分区表中,位于磁盘的 0 块的特殊位置。这些记录不是命名记录,它们放置在数组中。该数组中的索引(加一)稍后将成为您在终端中看到的分区列表中的数字。阅读维基例如:https://en.wikipedia.org/wiki/Disk_partitioning
是的,分区表可以有空单元格。 Ot 只是一个索引数组。其中的任何记录的分区类型都可以为零,并且所有工具都会知道该记录是空的。