在 Linux 中,可以通过 UUID 或标签安装设备(磁盘)。我使用 UUID 有一段时间了,主要是因为我在 IRC 上看到一个讨论,说通过标签安装是一个非常糟糕的想法。
如果选择一个非常独特的标签名称(如 6581_var、6502_root、8580_home、DFF180_usr、68030_boot、BFEC01_WD_Disk05 等),我不明白为什么通过标签安装会是一个坏主意。;)
我的问题是:
- 为什么总是使用 UUID 挂载是个好主意?
- 为什么总是使用 UUID 挂载是个坏主意?
- 为什么总是使用 LABEL 进行安装是个好主意?
- 为什么总是使用 LABEL 进行安装是个坏主意?
- 对于使用 systemd 的系统来说,选择其中一个比另一个更有好处吗?
- 哪个更容易损坏。LABEL 还是 UUID
- 例如,如果磁盘获得固件升级,那么 UUID 会改变吗?!
答案1
答案
- Q1-4: 不是。正确的工具应该用于特定的目的。见下文。
- 问5:使用 systemd 的系统已经足够发达,不会显示出任何差异。
- 问6:一般情况下 - 都不是。它们都存储在同一个位置(格式化标题等)并通过相同的机制进行更改。
- 问7:不可以。分区 UUID 只能直接更改(见下文)或通过重新格式化(即创建新格式)分区来更改。
实际上
假设我们正在讨论分区格式化(例如文件系统)唯一唯一标识符和标签。
还有分区 UUID 和标签 - 通常称为部件UUID和部分标签- 如果磁盘分区方案支持它们:例如 GPT,但不支持 MBR。它们也可用于识别分区,在某些情况下(见下文),这可能是唯一的方法。
两个都唯一唯一标识符和标签使用特定于分区格式化的工具进行管理:
- 扩展 2/3/4:
tune2fs
- 胖的:
mlabel
- 交换:
swaplabel
- 卢克斯:
cryptsetup luksUUID
- ...
请注意,两者唯一唯一标识符和标签仅当分区格式化存在(并且内核支持)并且格式化支持时才存在唯一唯一标识符和/或标签属性。例如,使用不带 LUKS 扩展的 dm-crypt 加密的分区没有唯一唯一标识符和标签因为它不使用任何标头(但加密容器内的文件系统可以同时拥有它们)。FAT 系列文件系统不支持唯一唯一标识符(它们有序列号),但支持标签。
使用Label和UUID的主要区别是:
- 唯一唯一标识符适用于较低级别
- 自动创建(始终存在)
- 自动管理
- 保证唯一(大多数情况下)
- 对人类不友好
- 标签是为了更高层次
- 应该明确创建
- 手动管理
- 人性化(容易记忆和输入)
因此,如果您不打算管理分区的标签,那么选择显而易见 - UUID。如果您需要系统配置具有更大的灵活性和/或可读性 - 您可以使用标签。
例如,对于克隆或自动管理使用标签的系统可能更合适:系统克隆后 UUID 可能会发生变化。如果不是针对 ext2/3/4(取决于克隆方法),它肯定会针对 LUKS 加密分区发生变化(我们luksFormat
至少需要创建新的加密密钥)。因此使用标签在这种情况下可能会很方便。
此外,Udev 规则还会将可移动媒体挂载/media/<user>/<label>
到标签退出。如果没有 -/media/<user>/<UUID>
则使用。