注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 利用SMS OSD实现win2008操..
 帮助

Ubuntu下的UUID问题


2007-10-21 21:58:14
 标签:Ubuntu uuid   [推送到技术圈]

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。




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: