1、如何获取uuid
1. 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息。
# ls -l /dev/disk/by-uuid/
total 0lrwxrwxrwx 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 分区中:
- uuidgen | xargs tune2fs /dev/sda[0-9] -U
也可以把 fstab 里找到的原 uuid 写回分区:
- 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