Chinaunix首页 | 论坛 | 博客
  • 博客访问: 974473
  • 博文数量: 184
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 1532
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-27 18:32
文章分类

全部博文(184)

文章存档

2009年(1)

2008年(63)

2007年(39)

2006年(79)

2005年(2)

我的朋友

分类: LINUX

2008-07-03 18:57:01

UUID,全称Universally Unique Identifier

它是一个128位,16字节的值,并确保在时间和空间上唯一。它把硬件地址、时间以及随机数结合在一起来确保其唯一性的。一般情况下,生成算法用计算机网卡的地址和一个60位的timestamp生成,时间是以100ns为时间间隔。例如,一台300PL 6862的计算机,主板集成的网卡的MAC地址为00-04-AC-2E-B7-DC,而UUID的最后六个字节也会是0004AC2EB7DC。

Ubuntu现在默认使用UUID值表示硬盘分区,在/etc/fstab中我们很容易看到:

# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
# /dev/hda1
UUID=6286feb3-3037-4893-b0f1-8c9edba3c447 / ext3 defaults,errors=remount-ro 0 1
# /dev/hda5
UUID=45bdb727-57db-46c2-8b33-e2dc813c0e18 /media/mydoc ext3 defaults 0 2
# /dev/hda7
UUID=1bfc17a2-b39c-451b-8ce8-2b3bc13bf6e8 none swap sw 0 0
/dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/ /media/floppy0 auto rw,user,noauto 0 0

在GRUB启动项中也有这样的表示
kernel /boot/vmlinuz-2.6.20-14-generic root=UUID=6286feb3-3037-4893-b0f1-8c9edba3c447 ro
quiet splash locale=zh_CN

与以前使用hda*相比,使用UUID的好处是只要分区大小没有调整,它的UUID值就是固定的,也就是说,即使把其他分区全删掉,也不影响这一分区的挂载。

那么,如果分区改变了怎么办?有时侯需要调整分区大小,这样它的UUID值也就发生了变化,此时需要在/etc/fstab中将该分区的UUID值修改为当前值,否则无法自动挂载。

查询分区UUID值可以使用下面的命令:
ls -al /dev/disk/by-uuid

结果是如下的形式:

总用量 0

drwxr-xr-x 2 root root 100 2007-04-06 20:09 .
drwxr-xr-x 5 root root 100 2007-04-06 20:09 ..
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 1bfc17a2-b39c-451b-8ce8-2b3bc13bf6e8 -> ../../sda6
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 6286feb3-3037-4893-b0f1-8c9edba3c447 -> ../../sda1
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 8c6640b5-9c65-44d7-8f09-771b8c589922 -> ../../sda5

这是我的硬盘分区的UUID,可见,sda5调整大小后,UUID发生了变化,将fstab中对应的部分改掉,OK。
阅读(2010) | 评论(0) | 转发(0) |
0

上一篇:C语言常用宏定义

下一篇:fstab with UUID

给主人留下些什么吧!~~