最近再做存储Multipath 以及/etc/fstab挂载得时候遇到需要查询磁盘得uuid得情况,查找到如下得信息,可以提供一起学习,交流

前言介绍

描述:通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准是在计算机系统中用来标识信息的一个 128 位(比特)的数字,最初被用在阿波罗网络计算机系统(NCS)中,亦为自由软件基金会组织会(OSF)在分散式计算环境领域境(DCE)的一部份。

UUID的目的是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来每个人都可以创建不与其它人冲突的UUID。在这样的情况下就不需考虑数据库创建时的名称重复问题

目前最广泛应用的UUID:

  • 微软公司的全局唯一标识符(GUID)
  • 其他重要的应用则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等

Linux UUID的作用及意义

  • 原因1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。
  • 原因2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。 使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。
  • 原因3:Ubuntu中的许多关键功能现在开始依赖于UUID

UUID版本 UUID1:从主机ID、序列号和当前时间生成UUID。它基于硬件地址和一个随机的14位序列号。 UUID3:根据名称空间标识符(即UUID)和名称(即字符串,此站点使用UUID1作为字符串)的MD5哈希值生成UUID。 UUID4:生成一个随机UUID。 UUID5:根据名称空间标识符(即UUID)和名称(即字符串,本站点使用UUID1作为字符串)的SHA-1散列生成UUID。

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

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

获取与生成uuid

获取UUID

Linux 中获取硬盘分区或文件系统的 UUID 的七种方法 描述:Linux 系统管理员你应该知道如何去查看分区的 UUID 或文件系统的 UUID,因为现在大多数的 Linux 系统都使用 UUID 挂载分区,你可以在 /etc/fstab 文件中可以验证。

cat /etc/fstab
UUID=b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb /boot   xfs   defaults  0 0

UUID它可以帮助 Linux 系统识别一个磁盘分区而不是块设备文件。

#使用下面的 7 个命令来查看
#blkid 命令:定位或打印块设备的属性。
$blkid
/dev/sda1: UUID="b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb" TYPE="xfs"
/dev/sda2: UUID="WYci3Y-yQO9-eU0R-Dzmu-ccUH-Lhns-rLhVnJ" TYPE="LVM2_member"#lsblk 命令:列出所有可用的或指定的块设备的信息。
$lsblk -o name,mountpoint,size,uuid
NAME            MOUNTPOINT  SIZE UUID
sda                          40G
|-sda1          /boot         1G b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb
`-sda2                       39G WYci3Y-yQO9-eU0R-Dzmu-ccUH-Lhns-rLhVnJ|-centos-root /            37G bf08ef5c-d394-4893-86ad-a3c8025daa85`-centos-swap [SWAP]        2G b27b7ddb-1f8b-43cb-aaed-0365d1e2e450#hwinfo 命令:硬件信息工具,是另外一个很好的实用工具,用于查询系统中已存在硬件。
hwinfo --block | grep by-uuid | awk -F "," '{print $1,"-",$3}'
Device Files: /dev/sda1 -  /dev/disk/by-uuid/b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb#udevadm 命令:udev 管理工具
udevadm info -q all -n /dev/sda1 | grep -i by-uuid | head -1
S: disk/by-uuid/b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb#tune2fs 命令:调整 ext2/ext3/ext4 文件系统上的可调文件系统参数。
tune2fs -l /dev/sdc1 | grep UUID
Filesystem UUID: d17e3c31-e2c9-4f11-809c-94a549bc43b7#dumpe2fs 命令:查询 ext2/ext3/ext4 文件系统的信息。 
tune2fs -l /dev/sdc1 | grep UUID
Filesystem UUID: d17e3c31-e2c9-4f11-809c-94a549bc43b7#by-uuid 路径:该目录下包含有 UUID 和实际的块设备文件,UUID 与实际的块设备文件链接在一起。
ls -lh /dev/disk/by-uuid/
ls -lh /dev/disk/by-id/ #能看见扩展分区磁盘的UUID
lrwxrwxrwx 1 root root 10 Aug  2 17:09 b379c221-7e3d-42ff-b5ae-bf1d2dfe9ffb -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug  2 17:09 b27b7ddb-1f8b-43cb-aaed-0365d1e2e450 -> ../../dm-1
lrwxrwxrwx 1 root root 10 Aug  2 17:09 bf08ef5c-d394-4893-86ad-a3c8025daa85 -> ../../dm-0

Linux 中获取网卡的UUID方法

#示例1.Linux中网卡的UUID,可利用此uuid修改网卡的配置文件;
uuidgen eth0
e784d3f5-54ef-48f4-a5e0-4ee2d670e8b#示例2.查看网卡的UUID与网卡名称对应的设备名称
[[email protected] ~]$ nmcli con
NAME             UUID                                  TYPE    DEVICE
br-9bc175e03197  e784d3f5-54ef-48f4-a5e0-4ee2d670e8b  bridge  br-9bc175e03197

生成UUID

描述:UUID 由该库生成可以合理地认为在一个系统中 UUID 是唯一的,生成的UUID并且在所有系统中也是唯一的。

  • libuuid : 自内核2.15.1起就是 util-linux-ng 包中的一部分;
  • e2fsprogs : 包中的UUID库找到实现;

方式1:采用Python使用了UUID模块生成uuid1/3/4/5等版本的UUID字符串,位于Lib/uuid.py之中;

import uuid
class uuid.UUID(hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None, *, is_safe=SafeUUID.unknown)
UUID('{12345678-1234-5678-1234-567812345678}')
UUID('12345678123456781234567812345678')
UUID('urn:uuid:12345678-1234-5678-1234-567812345678')
UUID(bytes=b'\x12\x34\x56\x78'*4)
UUID(bytes_le=b'\x78\x56\x34\x12\x34\x12\x78\x56' +b'\x12\x34\x56\x78\x12\x34\x56\x78')
UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678))
UUID(int=0x12345678123456781234567812345678)#SPACESNAME常量  (可作为uuid3/5 的 namespace 值)
uuid.getnode()  #通用管理的MAC地址优于本地管理的MAC地址
uuid.NAMESPACE_OID
UUID('6ba7b812-9dad-11d1-80b4-00c04fd430c8')
>>> uuid.NAMESPACE_DNS
UUID('6ba7b810-9dad-11d1-80b4-00c04fd430c8')
>>> uuid.NAMESPACE_URL
UUID('6ba7b811-9dad-11d1-80b4-00c04fd430c8')
>>> uuid.NAMESPACE_X500
UUID('6ba7b814-9dad-11d1-80b4-00c04fd430c8')

基础示例:

#!/usr/bin/env python
# python有一个模块叫做uuid,导入它就可以使用它的四个方法了
import uuidprint uuid.uuid1()
#bf1dfacf-67d8-11e8-9a23-408d5c985711
print uuid.uuid3(uuid.NAMESPACE_DNS, 'yuanlin')  #UUID using an MD5 hash of a namespace UUID and a name
#ddb366f5-d4bc-3a20-ac68-e13c0560058f
print uuid.uuid4()
#144d622b-e83a-40ea-8ca1-66af8a86261c
print uuid.uuid5(uuid.NAMESPACE_DNS, 'yuanlin')  #UUID using a SHA-1 hash of a namespace UUID and a name
#4a47c18d-037a-5df6-9e12-20b643c334d3

方式2:Linux中shell采用uuidgen进行生成

uuidgen
fcfe9f3e-1edc-43fe-8b29-c2a92958ce41

方式3:采用JS生成uuid

function uuid() {return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[0148]/g, c =>(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16))
}/** 调用生成 **/
print(uuid())
b3255b0d-ae61-16c6-833f-96c827fd17d8
725ad3d6-6eb1-12a2-855f-5a8a8bb6859d

方式4:采用java的util包里面的UUID类实现

import java.util.UUID;
public class createUUID {public static void main(String[] args) {System.out.println(createID());}public static String createID(){UUID uuid = UUID.randomUUID();String id=uuid.toString();return id.replace("-", "");}
}//调用执行效果
56e41c4d8aa64e3cbf4d1d119004af61
f1d443fcb9564ae7b3fc1993de1680d5
91fe1a1ef54843c08c42ba8c68f98d4b
2f763662d0b24b0f8e18c6f0da4dd643
4bf13006b8324ed8bfe4c194d6cb057e
1947e4ef40cb49c28ecfd2d725815ef8

UUID介绍与使用范围相关推荐

  1. UUID介绍与生成方法

    什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.UUID具有以下涵义: 经由一定的算法 ...

  2. UUID介绍与生成的方法

    什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.UUID具有以下涵义: 经由一定的算法 ...

  3. Python uuid 介绍

    1. 背景知识: UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, ...

  4. uuid php,php生成uuid介绍

    UUID是国际标准化组织(ISO)提出的一个概念.UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来.为了提高效率,常用的UUID可缩短至16位.UUID用来识别属性类型,在所有空间和 ...

  5. 全面且简单明了的蓝牙服务及UUID介绍

    什么是蓝牙 蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话.PDA.无线耳机.笔记本电脑.相关外设等众多设备之间进行无线信息交换.利用"蓝牙"技术,能 ...

  6. UUID/GUID介绍、生成规则及生成代码

    UUID/GUID介绍.生成规则及生成代码 1. UUID介绍 1.1 介绍 1.2 UUID优势 1.3 UUID劣势 2. UUID版本 2.1 版本1 - 基于时间的UUID 2.1.1优点 2 ...

  7. Python 标准库之 uuid

    1. uuid 介绍 UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的 UUID 它可以保证在空间和时间上的唯一性.它是通过 MAC 地址.时 ...

  8. java uuid_Java UUID

    java uuid 介绍: UUID(通用唯一标识符)表示一个128位长的唯一值 . 它也被普遍称为GUID(全球唯一标识符). UUID的标准表示形式由十六进制数字组成: 533a4559-e55c ...

  9. PostgreSQL中UUID的完整指南

    目录 理解SQL中的键 自然键与代理键 使用PostgreSQL创建主键的语法 创建复合主键 通用唯一ID?UUID介绍 UUID_v4与UUID_V1 使用uuid-osp创建UUID主键-Post ...

最新文章

  1. keyshot材质中文目录_KeyShot10 Pro for Ma 苹果3D渲染动画制作软件 中文版下载
  2. 全面理解java内存模型_深入理解Java内存模型(八)——总结
  3. lc412. Fizz Buzz
  4. 未能加载类型“URLRewriter.ModuleRewriter”。 解决方法
  5. go给Linux安装mysql_在Linux上安装Go语言开发包
  6. 误删了公司数据库,但我还是活下来了
  7. new、delete与malloc、free的详解
  8. Linux服务跟随启动,Linux—添加开机启动(服务/脚本)
  9. Oracle 和Mysql Group by的细节与坑
  10. 转换构造函数与类型构造函数与运算符重载函数
  11. 转 windows查看端口占用命令
  12. 计算机-计算机发展史
  13. 1.通俗地理解贝叶斯公式(定理)
  14. WISP Client+AP WDS  的区别
  15. 漫画:脑筋急转弯题目(尼姆问题求解)
  16. 升级iOS 15后iPhone无法连接App Store怎么办?
  17. will be doing的用法
  18. 阿里云漏洞验证需要付费的解决方法
  19. 程序包xxx不存在 问题的完美解决
  20. 网格交易法在交易中的应用

热门文章

  1. js,uniapp,vue类似于微信和qq时间间隔显示
  2. NOTE-1-基础笔记: FOV视场角
  3. 你真的听懂了任何一场学术讲座吗?
  4. Lucene系列:(8)搜索结果摘要
  5. 项目四:飞机票订票管理系统
  6. 西安翻译学院计算机系有那些方向,西安翻译学院招生方向?
  7. java实现简单的orm_一种利用反射自动封装JavaBean的想法的实现(简单的ORM,较实用于JDBC查询)...
  8. 超炫15分钟超现实主义短片《Sundays》
  9. dvi接口引脚定义_DVI接口详细图文介绍
  10. Windows系统如何清除开机密码