本文最后更新于:2024年5月7日 下午
LInux 磁盘分区可以使用 UUID 进行表示和区分,本文记录 Linux 磁盘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 个连字符)。
1
例如: `d92fa769-e00f-4fd7-b6ed-ecf7224af7fa`
PARTUUID
PARTUUIDs
是GUID分区表(GPT)的组件,该表替代了与主引导记录(MBR)相关的磁盘分区,也可以像UUID一样用于磁盘挂载。
有关更多信息,请参见Linux.com-在Linux中使用新的GUID分区表
GPT GUID(全局唯一标识符)和我们熟悉的Linux UUID(通用唯一标识符)虽然具有相同的有用目的,但它们并非一回事:给块设备唯一的名称。Linux UUID是文件系统的功能,并且在创建文件系统时创建。要查看Linux UUID,只需启动blkid命令即可。请注意Partition GUID代码以及其显示为“ Microsoft基本数据”的方式。是的,Microsoft总是会崩溃,因为这是EXT4分区,因此Windows无法读取它,但是会将其视为未格式化的分区。在当前版本的gdisk中,您将看不到这一点,因为直到2011年为止,还没有Linux文件系统GUID。现在有了,所以如果您不使用像我的旧Linux(Mint 13),
您将在fstab中使用分区唯一的GUID,如下所示:
1
PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA /data ext4 defaults 0 0
—— Linux.com
修改 UUID
- 生成 UUID
1 |
|
-
tune2fs
命令写入 -
示例
1
2
3
4$ uuidgen
2125190c-0317-4460-8cad-4f5b9fa46633
$ sudo tune2fs /dev/sda1 -U 2125190c-0317-4460-8cad-4f5b9fa46633
注意:这个命令不要轻易试,如果忘记修改对应的grub.cfg和fstab等文件,系统会不正常
查看磁盘 UUID
通过设备目录
-
通过设备目录信息可以获取磁盘部分信息
1
2
3
4ls -l /dev/disk/by-uuid/ # 按照 UUID 查看设备
ls -l /dev/disk/by-path/ # 按照路径查看设备
ls -l /dev/disk/by-id/ # 按照 ID 查看设备
ls -l /dev/disk/by-label/ # 按照卷标查看设备 -
示例:
1
2
3
4
5
6
7ls -l /dev/disk/by-uuid/
总用量 0
lrwxrwxrwx 1 root root 10 1月 4 08:31 127386cd-a14d-4346-b914-eb11c6a40303 -> ../../sdd4
lrwxrwxrwx 1 root root 10 1月 4 08:31 161c25c8-348a-4c0d-931d-cfc7861ad4f6 -> ../../sdc3
lrwxrwxrwx 1 root root 10 1月 4 08:31 2a69fb2c-a734-46e0-a154-230429895150 -> ../../sdb1
lrwxrwxrwx 1 root root 10 1月 4 08:31 35a891ef-4058-42fe-85d6-2e79170c4357 -> ../../sdg4
...... -
目录结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15/ (这就是著名的根)
├── bin (你在终端运行的大多数程序,比如cp、mv...)
├── boot (内核放在这里,这个目录也经常被作为某个独立分区的挂载点)
│ └── grub (grub引导程序和引导菜单就放在这里)
├── cdrom
├── dev (存放设备文件,这里相当于一个设备管理器,由系统自动生成。视硬件环境不同变化很大)
│ ├── block
│ ├── bsg
│ ├── bus
│ ├── char
│ ├── disk (磁盘信息,要挂载硬盘分区就要注意这里的信息喽)
│ │ ├── by-id (硬盘分区的永久性符号链接)
│ │ ├── by-label (按卷标识别的硬盘分区,常用于挂载)
│ │ ├── by-path (硬盘分区的节点链接)
│ │ └── by-uuid (按UUID识别的硬盘分区,常用于挂载)
blkid命令
- 使用命令
1 |
|
- 可以看到所有设备的 UUID 、PARTUUID 等信息
1 |
|
- 添加
-p
选项可以获得更详细的设备信息
1 |
|
lsblk 命令
lsblk
列出所有有关可用或指定块设备的信息。lsblk
命令读取 sysfs 文件系统和 udev 数据库以收集信息。
- 如果 udev 数据库不可用或者编译的 lsblk 不支持 udev,它会试图从块设备中读取卷标、UUID 和文件系统类型。这种情况下,必须以 root 身份运行。该命令默认会以类似于树的格式打印出所有的块设备(RAM 盘除外)。
1 |
|
hwinfo 命令
hwinfo 意即硬件信息工具,是另外一种很好的实用工具。它被用来检测系统中已存在的硬件,并且以可读的格式显示各种硬件组件的细节信息。
1 |
|
udevadm 命令
udevadm
需要命令和命令特定的操作。它控制 systemd-udevd 的运行时行为,请求内核事件、管理事件队列并且提供简单的调试机制。
1 |
|
tune2fs 命令
tune2fs
允许系统管理员在 Linux 的 ext2、ext3、ext4 文件系统中调整各种可调的文件系统参数。这些选项的当前值可以使用选项 -l
显示。
1 |
|
dumpe2fs
dumpe2fs
打印出现在设备文件系统中的超级块和块组的信息。
1 |
|
参考资料
- https://blog.csdn.net/chrisniu1984/article/details/7245711
- https://blog.csdn.net/andie_guo/article/details/9011653
- https://zhuanlan.zhihu.com/p/62459117
- https://qastack.cn/raspberrypi/75027/whats-the-difference-between-uuid-and-partuuid
文章链接:
https://www.zywvvd.com/notes/system/linux/linux-disk-uuid/linux-disk-uuid/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付