首页|建站|设计|QQ|百科|范文|电商|学习
详解Linux中获取全球唯一标示符UUID的方法

站长教程网   时间:2016-03-27   来源:建站知识

   UUID(Universally Unique IDentifiers),全球唯一标示符.它是一个标识系统中的存储设备的字符串,使其确定系统中的所有存储设备。

  为什么要使用UUID?因为系统自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序.相同的名称可能代表不同的硬盘分区.如果每个分区有一个唯一的UUID值,尤其是在grub中的kernel设置,这样就不会发生分区识别混乱的问题.

  下面介绍几种方法来获得UUID.

  1.最简单的方法就是使用blkid命令,它主要用来对系统的块设备(包括交换分区)所使用的文件系统类型,LABEL,UUID等信息查询. 使用这个命令需要安装e2fsprogs包.

  复制代码

  代码如下:

  root@10.1.1.200:~# dpkg -l | grep e2fsprogs

  ii e2fsprogs 1.41.3-1 ext2/ext3/ext4 file system utilities

  ii libuuid-perl 0.02-4 Perl extension for using UUID interfaces as defined in e2fsprogs

  root@10.1.1.200:~# blkid

  /dev/sda1: UUID="b20e80f1-c88d-4918-9d9b-75cd7906629e" TYPE="ext3"

  /dev/sda5: TYPE="swap" UUID="1fb3d17b-b2fe-470d-b39c-f00c4a30efbf"

  /dev/sda6: UUID="c7050200-7efb-468c-81d1-a3add309bee1" TYPE="ext3" SEC_TYPE="ext2"

  /dev/sda7: UUID="934e4e22-3431-4707-8d47-dca47e76f448" TYPE="xfs"

  /dev/hioa: UUID="de0af117-ad92-4867-aa21-3e7d423e8864" TYPE="xfs"

  root@10.1.1.200:~# blkid /dev/sda1

  /dev/sda1: UUID="b20e80f1-c88d-4918-9d9b-75cd7906629e" TYPE="ext3"

  root@10.1.1.200:~# cat /etc/blkid.tab

  /dev/sda1

  /dev/sda5

  /dev/sda6

  /dev/sda7

  /dev/hioa

  2.通过浏览/dev/disk/by-uuid/下的设备文件信息.

  复制代码

  代码如下:

  root@10.1.1.200:~# ls -l /dev/disk/by-uuid/

  total 0

  lrwxrwxrwx 1 root root 10 2013-03-19 11:01 1fb3d17b-b2fe-470d-b39c-f00c4a30efbf -> ../../sda5

  lrwxrwxrwx 1 root root 10 2013-03-19 11:01 934e4e22-3431-4707-8d47-dca47e76f448 -> ../../sda7

  lrwxrwxrwx 1 root root 10 2013-03-19 11:01 b20e80f1-c88d-4918-9d9b-75cd7906629e -> ../../sda1

  lrwxrwxrwx 1 root root 10 2013-03-19 11:01 c7050200-7efb-468c-81d1-a3add309bee1 -> ../../sda6

  lrwxrwxrwx 1 root root 10 2013-03-19 11:02 de0af117-ad92-4867-aa21-3e7d423e8864 -> ../../hioa

  root@10.1.1.200:~# ls -l /dev/disk/by-uuid/ | grep sda1 | awk '{print $8}'

  b20e80f1-c88d-4918-9d9b-75cd7906629e

  3.通过vol_id命令查看

  复制代码

  代码如下:

  root@10.1.1.200:~# vol_id /dev/sda1

  ID_FS_USAGE=filesystem

  ID_FS_TYPE=ext3

  ID_FS_VERSION=1.0

  ID_FS_UUID=b20e80f1-c88d-4918-9d9b-75cd7906629e

  ID_FS_UUID_ENC=b20e80f1-c88d-4918-9d9b-75cd7906629e

  ID_FS_LABEL=

  ID_FS_LABEL_ENC=

  ID_FS_LABEL_SAFE=

  root@10.1.1.200:~# vol_id /dev/sda1 | grep 'UUID'

  ID_FS_UUID=b20e80f1-c88d-4918-9d9b-75cd7906629e

  ID_FS_UUID_ENC=b20e80f1-c88d-4918-9d9b-75cd7906629e、

  4.使用tune2fs,,它是linux下文件系统调整工具

  复制代码

  代码如下:

  root@10.1.1.200:~# tune2fs -l /dev/sda1

  tune2fs 1.41.3 (12-Oct-2008)

  Filesystem volume name:

  Last mounted on:

  Filesystem UUID: b20e80f1-c88d-4918-9d9b-75cd7906629e

  Filesystem magic number: 0xEF53

  Filesystem revision #: 1 (dynamic)

  Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file

  Filesystem flags: signed_directory_hash

  Default mount options: (none)

  Filesystem state: clean

  Errors behavior: Continue

  Filesystem OS type: Linux

  Inode count: 1864128

  Block count: 7442103

  Reserved block count: 372105

  Free blocks: 6884819

  Free inodes: 1712582

  First block: 0

  root@10.1.1.200:~# tune2fs -l /dev/sda1 | grep 'UUID'

  Filesystem UUID: b20e80f1-c88d-4918-9d9b-75cd7906629e

  这里额外在看下tune2fs一些常用参数:

  复制代码

  代码如下:

  root@192.168.2.80:~# tune2fs --help

  tune2fs 1.41.3 (12-Oct-2008)

  tune2fs: invalid option -- '-'

  Usage: tune2fs [-e errors_behavior] [-g group]

  [-i interval[d|m|w]] 文件系统的检查间隔时间,系统在达到时间间隔,自动检查文件系统.

  [-j] [-J journal_options] 转换文件系统

  [-l] 显示文件系统参数

  [-m reserved_blocks_percent] 设置保留的空间百分比

  [-o [^]mount_options[,...]] 设置默认加载参数.

  [-c max_mounts_count] 表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。

  通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查。

  禁止强制的文件系统检查:

  复制代码

  代码如下:

  root@10.1.1.200:~# tune2fs -i0 -c0 /dev/sda1

  tune2fs 1.41.3 (12-Oct-2008)

  Setting maximal mount count to -1

  Setting interval between checks to 0 seconds

  还有一个dump2fs也是文件系统调整的工具.

  dump2fs显示当前的磁盘状态:

  复制代码

  代码如下:

  root@10.1.1.200:~# dumpe2fs /dev/sda1

  Filesystem volume name:

  Last mounted on:

  Filesystem UUID: b20e80f1-c88d-4918-9d9b-75cd7906629e

  Filesystem magic number: 0xEF53

  Filesystem revision #: 1 (dynamic)

  Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file

  Filesystem flags: signed_directory_hash

  Default mount options: (none)

  Filesystem state: clean

  Errors behavior: Continue

  Filesystem OS type: Linux

  Inode count: 1864128

  Block count: 7442103

  Reserved block count: 372105

  Free blocks: 6884819

  Free inodes: 1712582

  First block: 0

  Block size: 4096

  Fragment size: 4096

  Reserved GDT blocks: 1022

  Blocks per group: 32768

  Fragments per group: 32768

  Inodes per group: 8176

  Inode blocks per group: 511

  Filesystem created: Fri Nov 16 15:36:59 2012

  Last mount time: Tue Mar 19 11:02:58 2013

  Last write time: Wed Mar 27 14:09:25 2013

  Mount count: 17

  Maximum mount count: -1

  Last checked: Fri Nov 16 15:36:59 2012

  Check interval: 0 ()

  Reserved blocks uid: 0 (user root)

  Reserved blocks gid: 0 (group root)

  First inode: 11

  Inode size: 256

  Required extra isize: 28

  Desired extra isize: 28

  Journal inode: 8

  First orphan inode: 1618875

  Default directory hash: half_md4

  Directory Hash Seed: 3090ccf1-625c-4934-9ec4-be3f74767f98

  Journal backup: inode blocks

  Journal size: 128M

  复制代码

  代码如下:

  Group 0: (Blocks 0-32767)

  Primary superblock at 0, Group descriptors at 1-2

  Reserved GDT blocks at 3-1024

  Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)

  Inode table at 1027-1537 (+1027)

  0 free blocks, 8152 free inodes, 2 directories

  Free blocks:

  Free inodes: 22, 25, 27-8176

  Group 1: (Blocks 32768-65535)

  Backup superblock at 32768, Group descriptors at 32769-32770

  Reserved GDT blocks at 32771-33792

  Block bitmap at 33793 (+1025), Inode bitmap at 33794 (+1026)

  Inode table at 33795-34305 (+1027)

  3 free blocks, 8176 free inodes, 0 directories

  Free blocks: 34309-34311

  Free inodes: 8177-16352

  Group 2: (Blocks 65536-98303)

  Block bitmap at 65536 (+0), Inode bitmap at 65537 (+1)

  Inode table at 65538-66048 (+2)

  7 free blocks, 8176 free inodes, 0 directories

  Free blocks: 66049-66055

  Free inodes: 16353-24528

  Group 3: (Blocks 98304-131071)

  Backup superblock at 98304, Group descriptors at 98305-98306

  Reserved GDT blocks at 98307-99328

  Block bitmap at 99329 (+1025), Inode bitmap at 99330 (+1026)

  Inode table at 99331-99841 (+1027)

  6 free blocks, 8176 free inodes, 0 directories

  Free blocks: 99842-99847

  Free inodes: 24529-32704

  Group 4: (Blocks 131072-163839)

  Block bitmap at 131072 (+0), Inode bitmap at 131073 (+1)

  Inode table at 131074-131584 (+2)

  63 free blocks, 0 free inodes, 0 directories

  Free blocks: 132074-132079, 133643-133647, 135671, 137739-137743, 139811-139815, 141814-141815, 143879, 145922-145927, 147933-147935, 150022-150023, 15207

  1, 154107-154111, 156169-156175, 158202-158207, 160251-160255, 162293-162295

  Free inodes:

  Group 5: (Blocks 163840-196607)

  Backup superblock at 163840, Group descriptors at 163841-163842

  Reserved GDT blocks at 163843-164864

  Block bitmap at 164865 (+1025), Inode bitmap at 164866 (+1026)

  Inode table at 164867-165377 (+1027)

  0 free blocks, 8130 free inodes, 0 directories

  Free blocks:

  Free inodes: 40881, 40928-49056