如何在Linux 中获取硬盘分区或文件系统的UUID?

作为一个 Linux 系统管理员,你应该知道如何去查看分区的 UUID 或文件系统的 UUID。因为现在大多数的 Linux 系统都使用 UUID 挂载分区。你可以在 /etc/fstab 文件中可以验证。

有许多可用的实用程序可以查看 UUID。本文我们将会向你展示多种查看 UUID 的方法,并且你可以选择一种适合于你的方法。

何为 UUID?

UUID 意即通用唯一识别码Universally Unique Identifier,它可以帮助 Linux 系统识别一个磁盘分区而不是块设备文件。自内核 2.15.1 起,libuuid 就是 util-linux-ng 包中的一部分,它被默认安装在 Linux 系统中。UUID 由该库生成,可以合理地认为在一个系统中 UUID 是唯一的,并且在所有系统中也是唯一的。这是在计算机系统中用来标识信息的一个 128 位(比特)的数字。UUID 最初被用在阿波罗网络计算机系统Apollo Network Computing System(NCS)中,之后 UUID 被开放软件基金会Open Software Foundation(OSF)标准化,成为分布式计算环境Distributed Computing Environment(DCE)的一部分。

UUID 以 32 个十六进制的数字表示,被连字符分割为 5 组显示,总共的 36 个字符的格式为 8-4-4-4-12(32 个字母或数字和 4 个连字符)。

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

我的 /etc/fstab 文件示例:

# cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use ‘blkid‘ to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
#
UUID=69d9dd18-36be-4631-9ebb-78f05fe3217f / ext4 defaults,noatime 0 1
UUID=a2092b92-af29-4760-8e68-7a201922573b swap swap defaults,noatime 0 2

我们可以使用下面的 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 / 20G d92fa769-e00f-4fd7-b6ed-ecf7224af7fa
sdb 10G
sdc 10G
├─sdc1 1G d17e3c31-e2c9-4f11-809c-94a549bc43b7
├─sdc3 1G ca307aa4-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 1 root root 10 Jan 29 08:34 ca307aa4-0866-49b1-8184-004025789e63 -> ../../sdc3
lrwxrwxrwx 1 root root 10 Jan 29 08:34 d17e3c31-e2c9-4f11-809c-94a549bc43b7 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Jan 29 08:34 d92fa769-e00f-4fd7-b6ed-ecf7224af7fa -> ../../sda1

Linux 中如何使用 hwinfo 命令查看磁盘分区或文件系统的 UUID?

hwinfo 意即硬件信息工具,是另外一种很好的实用工具。它被用来检测系统中已存在的硬件,并且以可读的格式显示各种硬件组件的细节信息。

# hwinfo --block | grep by-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 | grep UUID
Filesystem UUID: d17e3c31-e2c9-4f11-809c-94a549bc43b7

Linux 中如何使用 dumpe2fs 命令查看磁盘分区或文件系统的 UUID?

dumpe2fs 打印出现在设备文件系统中的超级块和块组的信息。

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

原文地址:https://www.cnblogs.com/legendjaking/p/10754392.html

时间: 2024-07-29 06:36:04

如何在Linux 中获取硬盘分区或文件系统的UUID?的相关文章

Linux中的硬盘分区

1.硬盘的传输接口与设备文件名的关系 目前硬盘的传输接口主要有以下几种: IDE接口:IDE接口使用的排线较宽,每条IDE排线可以连接两个IDE设备,这两个设备被区分为Master(主设备)和Slave(从设备).通常主板会提供两个IDE接口,分别被称为IDE1(Primary)和IDE2(Secondary).因此,一块主板最多可以连接4个IDE设备,它们在Linux系统中的文件名如下表所示: IDE/Jumper Master Slave IDE1(Primary) /dev/hda /de

如何在linux中获取几天前或者几天后的日期

在linux环境下要取得几天前的时期只要使用 date -d "x days ago" +%Y%m%d x用数字代替,如果需要几天前的直接写正数,如果要几天后的日期直接写负数即可: date -d "x weeks ago" +%Y%m%d x用数字代替,如果需要几周前的直接写正数,如果要几周后的日期直接写负数即可: date -d "x years ago" +%Y%m%d x用数字代替,如果需要几年前的直接写正数,如果要几年后的日期直接写负数

安装Ubuntu Linux系统时硬盘分区最合理的方法

无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合肥上门装系统的经验谈谈安装Ubuntu Linux系统时硬盘分区最合理的方法. 在讲硬盘分区之前,我先来普及一下硬盘的相关分类,硬盘一般分为IDE硬盘.SCSI硬盘和SATA硬盘三种,在Linux系统中,IDE接口的硬盘被称为hd,SCSI和SATA接口的硬盘则被称为sd,其中IDE硬盘基本上已经淘

Linux学习笔记——硬盘分区和安装双系统

1.前言 假设电脑上已经安装了windows XP或者windows7.试图在使用windows的同时,在电脑上安装ubuntu. 假设电脑上已经存在C盘.D盘.E盘和F盘,且E盘和F盘的剩余空间较大. 假设ubuntu系统需要40G空间.     [使用软件]傲梅分区助手     [最终目标]为安装ubuntu系统节省出40G左右的空闲空间.40G空间来自于E盘空闲部分和F盘空闲部分.     [步骤简述] [1]从E盘节省出20G空间. [2]从F盘也节省出20G空间. [3]在E盘节省出的

【linux硬件及硬盘分区】关于硬盘的规划和使用细节

ps:期末考试 终于结束了,这下我也终于有时间开始继续经营我的博客.这个学期上的一些课真的非常有用,感觉很多课程细地讲都可以写成非常精致的技术博文,比如流水线技术,数据库的一些技术,大学里的考试考的内容“不痛不痒”真正有价值的一些内容避而不考,但是追很多有的没的的概念很鸡肋.不管如何,这个暑假给自己留了很多本官方技术书籍慢慢去看,我也会在博客里继续补充一些自己的体会和心得. 一. 关于设备在linux中的名字 附:(linux中常见设备和设备在linux中的名字的对照表) -----------

Linux中fdisk硬盘分区方法

fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux .fat32. linux .linux swap .fat16 以及其实类Unix类操作系统的文件系统等:当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统:这样一个分区才能使用:这和DOS中的fdisk 是类似的 fdisk -l 查看硬盘及分区信息 主分区(包括扩展分区)的总个数不能超过四个:也不能把扩展分区包围在主分区之间:根据这个原则,我们划分硬盘分区

如何在Linux中显示和设置主机名

原文链接 随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的操作手册来看,hostname是用来显示系统的DNS名字以及为了显示和设置它的主机名或者NIS域名名字.所以hostname依赖于DNS(Domain Name System域名系统)或者NIS(Network Information System网络信息系统). 怎么显示hostname host

如何在linux中执行一个脚本

---恢复内容开始--- 如何在LINUX中在系统启动时自动执行一个执行脚本 如果是开机马上执行的脚本,可以将脚本写到rc.local中: 如果是用户登录后自动执行脚本,可以将脚本写到相应的用户目录下"-/.bash_profile",若脚本"-/.bash_profile"不存在,可以直接拷贝"/etc/profile"命名为"-/.bash_profile": 如果是要任一用户登录后自动执行脚本,可以将脚本写到"

如何在Sql2008中获取表字段属性和注释?

如何在Sql2008中获取表字段属性和注释? select b.[value] from sys.columns a left join sys.extended_properties b on a.object_id=b.major_id and a.column_id=b.minor_id inner join sysobjects c on a.column_id=c.id and a.[name]='列名' and c.[name]='表名' SELECT 表名=case when a.