雏鹰部落

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 865|回复: 1

[学习/资料] Linux 中获取硬盘分区或文件系统的UUID 的七种方法

[复制链接]
发表于 2019-4-22 01:29:24 | 显示全部楼层 |阅读模式
Linux 中获取硬盘分区或文件系统的UUID 的七种方法何为UUID?

UUID 意即通用唯一识别码,它可以帮助Linux 系统识别一个磁盘分区而不是块设备文件。
自内核2.15.1 起,libuuid就是util-linux-ng 包中的一部分,它被默认安装在Linux 系统中。UUID 由该库生成,可以合理地认为在一个系统中UUID 是唯一的,并且在所有系统中也是唯一的。

这是在计算机系统中用来标识信息的一个128 位(比特)的数字。UUID 最初被用在阿波罗网络计算机系统(NCS)中,之后UUID 被开放软件基金会(OSF)标准化,成为分布式计算环境(DCE)的一部分。
UUID 以32 个十六进制的数字表示,被连字符分割为5 组显示,总共的36 个字符的格式为8-4-4-4-12(32 个字母或数字和4 个连字符)。

例如: d92fa769-e00f-4fd7-b6ed-ecf7224af7fa

我的 /etc/fstab 文件示例:

#cat/etc/fstab

# /etc/fstab:staticfilesystem information.
#
#Use'blkid'to printthe universally unique identifier fora device; thismay
#be used withUUID= asa morerobust way to name devices that works even if
#disks are added andremoved. Seefstab(5).
#
#
UUID=69d9dd18-36be-4631-9ebb-78f05fe3217f/ ext4 defaults,noatime 01
UUID=a2092b92-af29-4760-8e68-7a201922573bswap swap defaults,noatime 02


我们可以使用下面的7 个命令来查看。
·      blkid 命令:定位或打印块设备的属性。
·      lsblk 命令:列出所有可用的或指定的块设备的信息。
·      hwinfo 命令:硬件信息工具,是另外一个很好的实用工具,用于查询系统中已存在硬件。
·      udevadm 命令:udev管理工具
·      tune2fs 命令:调整ext2/ext3/ext4 文件系统上的可调文件系统参数。
·      dumpe2fs 命令:查询ext2/ext3/ext4 文件系统的信息。 
·      使用 by-uuid 路径:该目录下包含有UUID 和实际的块设备文件,UUID 与实际的块设备文件链接在一起。

Linux 中如何使用blkid 命令查看磁盘分区或文件系统的UUID?
blkid 是定位或打印块设备属性的命令行实用工具。它利用libblkid 库在Linux 系统中获得到磁盘分区的UUID。

#blkid
/dev/sda1: UUID="d92fa769-e00f-4fd7-b6ed-ecf7224af7fa"TYPE="ext4"PARTUUID="eab59449-01"
/dev/sdc1: UUID="d17e3c31-e2c9-4f11-809c-94a549bc43b7"TYPE="ext2"PARTUUID="8cc8f9e5-01"
/dev/sdc3: UUID="ca307aa4-0866-49b1-8184-004025789e63"TYPE="ext4"PARTUUID="8cc8f9e5-03"
/dev/sdc5: PARTUUID="8cc8f9e5-05"


Linux 中如何使用lsblk 命令查看磁盘分区或文件系统的UUID?
lsblk 列出所有有关可用或指定块设备的信息。lsblk 命令读取sysfs 文件系统和udev 数据库以收集信息。
如果udev 数据库不可用或者编译的lsblk 不支持udev,它会试图从块设备中读取卷标、UUID和文件系统类型。这种情况下,必须以root 身份运行。该命令默认会以类似于树的格式打印出所有的块设备(RAM 盘除外)。

#lsblk -o name,mountpoint,size,uuid
NAME  MOUNTPOINT  SIZE UUID
sda                 30G
└─sda1 /            20Gd92fa769-e00f-4fd7-b6ed-ecf7224af7fa
sdb                 10G
sdc                 10G
├─sdc1               1Gd17e3c31-e2c9-4f11-809c-94a549bc43b7
├─sdc3               1Gca307aa4-0866-49b1-8184-004025789e63
├─sdc4               1K
└─sdc5               1G
sdd                 10G
sde                 10G
sr0               1024M


Linux 中如何使用by-uuid 路径查看磁盘分区或文件系统的UUID?
该目录包含了UUID 和实际的块设备文件,UUID 与实际的块设备文件链接在一起。

#ls-lh /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1root root 10Jan2908:34ca307aa4-0866-49b1-8184-004025789e63-> ../../sdc3
lrwxrwxrwx 1root root 10Jan2908:34d17e3c31-e2c9-4f11-809c-94a549bc43b7-> ../../sdc1
lrwxrwxrwx 1root root 10Jan2908:34d92fa769-e00f-4fd7-b6ed-ecf7224af7fa -> ../../sda1


Linux 中如何使用hwinfo 命令查看磁盘分区或文件系统的UUID?
hwinfo 意即硬件信息工具,是另外一种很好的实用工具。它被用来检测系统中已存在的硬件,并且以可读的格式显示各种硬件组件的细节信息。

#hwinfo --block | grepby-uuid | awk '{print $3,$7}'
/dev/sdc1, /dev/disk/by-uuid/d17e3c31-e2c9-4f11-809c-94a549bc43b7
/dev/sdc3, /dev/disk/by-uuid/ca307aa4-0866-49b1-8184-004025789e63
/dev/sda1, /dev/disk/by-uuid/d92fa769-e00f-4fd7-b6ed-ecf7224af7fa


Linux 中如何使用udevadm 命令查看磁盘分区或文件系统的UUID?
udevadm 需要命令和命令特定的操作。它控制systemd-udevd 的运行时行为,请求内核事件、管理事件队列并且提供简单的调试机制。

#udevadm info-q all -n /dev/sdc1 | grep-i by-uuid | head-1
S: disk/by-uuid/d17e3c31-e2c9-4f11-809c-94a549bc43b7


Linux 中如何使用tune2fs 命令查看磁盘分区或文件系统的UUID?
tune2fs 允许系统管理员在Linux 的ext2、ext3、ext4 文件系统中调整各种可调的文件系统参数。这些选项的当前值可以使用选项 -l 显示。

#tune2fs-l /dev/sdc1 | grepUUID

FilesystemUUID: d17e3c31-e2c9-4f11-809c-94a549bc43b7


Linux 中如何使用dumpe2fs 命令查看磁盘分区或文件系统的UUID?
dumpe2fs 打印出现在设备文件系统中的超级块和块组的信息。

#dumpe2fs /dev/sdc1 | grepUUID
dumpe2fs 1.43.5(04-Aug-2017)
FilesystemUUID: d17e3c31-e2c9-4f11-809c-94a549bc43b7

发表于 2019-8-13 14:16:39 | 显示全部楼层
thanks for sharing
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|熊猫同学技术论坛|小黑屋| 网络工程师论坛 ( 沪ICP备09076391 )

GMT+8, 2024-12-22 18:03 , Processed in 0.078605 second(s), 18 queries , Gzip On.

快速回复 返回顶部 返回列表