Linux 磁盘分区中的UUID

来源:互联网 发布:java标识符的命名测试 编辑:程序博客网 时间:2024/05/18 13:28

1、如何获取uuid

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

    # ls -l /dev/disk/by-uuid/

total 0
lrwxrwxrwx 1 root root 10 Jun 20 01:59 23278efa-ccc7-45ea-8571-9ac0d2ee4f8a -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 20 01:59 2339b860-8d63-4b3e-a9db-849256745d61 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 20 01:59 9666b248-bf5d-4490-8a4f-4e02415c4df4 -> ../../sda3


    2. 通过 vol_id 命令。

    # vol_id /dev/sdb5

    ID_FS_USAGE=filesystem

    ID_FS_TYPE=vfat

    ID_FS_VERSION=FAT32

    ID_FS_UUID=0909-090B

    ID_FS_UUID_ENC=0909-090B

    ID_FS_LABEL=SWAP

    ID_FS_LABEL_ENC=SWAP

    ID_FS_LABEL_SAFE=SWAP


    3. 通过 blkid 命令

    # blkid /dev/sdb5

    /dev/sdb5: LABEL="SWAP" UUID="0909-090B" TYPE="vfat"


2、如何手动生成一个UUID

uuidgen 会返回一个合法的 uuid,结合 tune2fs 可以新生成一个 uuid 并写入 ext2,3,4 分区中:

[plain] view plaincopy
  1. uuidgen | xargs tune2fs /dev/sda[0-9] -U  

也可以把 fstab 里找到的原 uuid 写回分区:

[plain] view plaincopy
  1. tune2fs -U $UUID /dev/sda[0-9]  


3、UUID的意义

原因1:它是真正的唯一标志符

UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。

原因2:设备名并非总是不变的

自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。

使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。

原因3:Ubuntu中的许多关键功能现在开始依赖于UUID

例如grub──系统引导程序,现在可以识别UUID,打开你的/boot/grub/menu.lst,你可以看到类似如下的语句:
title Ubuntu hardy (development branch), kernel 2.6.24-16-generic
root (hd2,0)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=c73a37c8-ef7f-40e4-b9de-8b2f81038441 ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet


0 1
原创粉丝点击