我正在为小型嵌入式 Linux 系统分区外部 1TB 硬盘。我想加密交换分区。根据cryptsetep FAQ,您需要在 /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。
分区号不能冲突。物理上不能。
分区记录在分区表中,在磁盘的 0 块中的特殊位置。这些记录不是命名记录,它们被放置在一个数组中。该数组中的索引(加一)稍后会成为您在终端中看到的分区列表中的一个数字。例如阅读 wiki:https ://en.wikipedia.org/wiki/Disk_partitioning
是的,分区表可以有空单元格。Ot 只是一个索引数组。其中任何记录的分区类型都可以为零,并且所有工具都会知道该记录是空的。