当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [分享]UUID
帖子发表于 : 2007-07-25 14:36 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
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。



参考资料:
1. http://www.usbuse.com/Html/ittxmcsy/103948184.html
2. http://forum.ubuntu.org.cn/viewtopic.php?t=29692


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-25 14:38 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
代码:
import java.util.UUID;
public class javaTest {
  public static void main(String[] args) {
    UUID uuid = UUID.randomUUID();
    System.out.println (uuid);
  }
}


代码:
root@LF824-alice:~# javac uuidTest.java
root@LF824-alice:~# java uuidTest
c23344a1-8181-4f76-a120-91a212fb0c2a
root@LF824-alice:~#


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-07-25 15:34 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
不太明白

引用:
主板集成的网卡的MAC地址为00-04-AC-2E-B7-DC,而UUID的最后六个字节也会是0004AC2EB7DC。


那么UUID的最后几位是不是应该一样了?
事实上好像不一样啊? :?:


_________________
Thinkpad T400


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-07-25 16:23 
头像

注册: 2006-09-21 14:28
帖子: 2376
送出感谢: 0 次
接收感谢: 0 次
Nile 写道:
不太明白

引用:
主板集成的网卡的MAC地址为00-04-AC-2E-B7-DC,而UUID的最后六个字节也会是0004AC2EB7DC。


那么UUID的最后几位是不是应该一样了?
事实上好像不一样啊? :?:


不是所有UUID的产生都和MAC地址有关。你没有看慬,或者是这篇文章没有写好。请你用GOOGLE搜索吧。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译