分类: LINUX
2010-03-31 11:51:49
通用唯一识别码 (Universally Unique Identifier, UUID)是一个软件建构的标准,亦为 自由软件基金会 (Open Software Foundation, OSF)的组织在 分散式计算环境 (Distributed Computing Environment, DCE)领域的一部份。
UUID 的目的,是让分散式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的UUID。在这样的情况下,就不需考虑资料库建立时的名称重复问题。目前最广泛应用的UUID,即是微软的Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,则有Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。另外我们也可以在e2fsprogs 套件中的UUID 函式库找到实作。
硬盘分区UUID丢失的问题表现:在查看 sudo blkid 的命令输出是看不到分区的UUID,而查看 sudo fdisk -l 的命令输出可以看到该分区,并且可以通过 sudo mount -t fstype /dev/sdaX /mnt (fstype、X分别指分区的文件系统类型和分区号)命令挂载分区到目录,分区数据并没有任何的损坏。UUID丢失的直接结果是:在开机时会提示fstab中的某分区(以UUID形式表示)无法挂载到目录而不能成功进入系统。
问题的解决方法:(具体见)
uuidgen会返回一个合法的uuid,结合tune2fs可以新生成一个uuid并写入ext2,3,4分区中:
比如新建或改变sda5的uuid(需要root权限)
uuidgen | xargs tune2fs /dev/sda5 -U |
tune2fs -U c1b9d5a2-f162-11cf-9ece-0020afc76f16 /dev/sda5 |