Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108035
  • 博文数量: 21
  • 博客积分: 1460
  • 博客等级: 上尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-07 22:04
文章分类

全部博文(21)

文章存档

2010年(15)

2009年(2)

2008年(4)

分类: LINUX

2010-08-09 00:22:20

#查看uuid有以下几种方:

1. sudo blkid

2. ls -l /dev/disk/by-uuid


#获取uuid (by C++)

1, 安装uuid相关的库

sudo apt-get install uuid-dev sliblg-dev

2, 编写程序

#include ;

#include ;

#include ;

int main()

{

        uuid_t uu;

        uuid_generate( uu );

        int i;

        for(i=0;i<16;i++)

        {

            printf(“%x”,uu[i]);

            printf(“%c”,uu[i[);

        }

        std::cout << uu << std::endl;

        printf("%x", uu);

        printf("\n");

        return 0;

}

3, 编译

g++ -o uuid uuid.cpp –luuid(注意要带luuid选项)

4, uuid.h在/usr/include/uuid/uuid.h

里面有定义typedef unsigned char uuid_t[16];

还有生成uuid的uuid_generate函数.

希望对大家有所帮助.

#uuid 介绍
UUID,全称Universally Unique Identifier
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API。UUID按照开放软件基金会 (OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与 时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网 卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
它是一个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 [...]

在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 也不会变 )

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


阅读(2987) | 评论(0) | 转发(0) |
0

上一篇:查看外网IP

下一篇:没有了

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