Linux分区表(MBR/GPT)本身不支持自定义字段,所谓“自定义字段”实为误传;真正可用的标识方式包括文件系统Label、udev规则创建语义化链接、/etc/fstab注释及GPT分区名(仅parted显示,纯文档用途)。

Linux 没有“磁盘分区扩展属性中的自定义字段”这种标准概念——你看到的可能是误传、混淆,或是把其他系统(如 Windows 的 NTFS 扩展属性)或特定工具(如 LVM 标签、udev 规则、/etc/fstab 注释)当成了通用分区属性。
为什么 fdisk -l 或 lsblk 不显示“自定义字段”
分区表(MBR/GPT)本身只存标准化元数据:起始扇区、大小、类型 ID(如 EF00 表示 EFI System)、标志位(boot、esp)。它不支持用户添加任意键值对。所谓“自定义字段”,实际不存在于分区结构中。
-
fdisk -l输出里的Type列是分区类型代码,不是你能自由填写的字段 -
lsblk -f显示的FSTYPE和UUID是文件系统层信息,由格式化时生成,不可后期“添加自定义字段” - GPT 分区名(如
EFI System)是可读标签,但长度受限(72 字节 UTF-16),且仅部分工具(gdisk、parted)支持读写,fdisk完全忽略它
真正能存“自定义标识”的地方在哪
如果你需要给某个分区打上业务标识(比如 role=database、env=prod),得绕过分区表,用以下三层机制之一:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
文件系统卷标(Label):适用于 ext4/xfs/vfat 等。用
e2label或xfs_admin -L设置,lsblk -f会显示在LABEL列。注意:label 是文件系统级的,重格式化就丢 -
udev 规则 + 自定义 symlink:在
/etc/udev/rules.d/里按 UUID 或序列号创建带语义的设备节点,如/dev/disk/by-label/db-data或自定义的/dev/disk/by-path/prod-db-partition -
/etc/fstab 中的 comment 字段:虽然不是“分区属性”,但你可以在 fstab 行末加
# role=database,脚本解析时可提取——这是运维最常用、最可靠的做法
parted -l 能看到 GPT 分区名,但别指望它通用
只有 GPT 磁盘才支持人类可读的分区名(如 root-partition),parted -l 会在 Name 列显示它,但:
-
fdisk和lsblk均不读取也不显示该字段 - 设置需用
parted /dev/sda name 1 "boot-efi"或sgdisk --change-name=1:"boot-efi" /dev/sda - 内核和大多数工具完全忽略它,纯属文档用途,不能用于挂载或识别逻辑
真正的“自定义字段”只能靠外部约定(fstab 注释、udev 规则、CMDB 记录),而不是写进分区结构里。硬往 fdisk 或 lsblk 里找,只会浪费时间。

















