会硬盘分区后uuid会变动,导致linux挂载硬盘出错。
什么是uuid?
UUID,全称Universally Unique Identifier
它是一个128位,16字节的值,并确保在时间和空间上唯一。它把硬件地址、时间以及随机数结合在一下起来确保其唯一性的。一般情况下,生成算法用计算机网卡的地址和一个60位的timestamp生成,时间是以100ns为时间间隔。例如,一台300PL 6862的计算机,主板集成的网卡的MAC地址为00-04-AC-2E-B7-DC,而UUID的最后六个字节也会是0004AC2EB7DC。
uuid会在硬盘分区调整后,发生变化
查各分区对应的uuid ls -l /dev/disk/by-uuid
修改linux的uuid分配表 sudo vi /etc/fstab
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中对应的部分该掉,各种硬盘格式参数如下:
#ext3
# Entry for /dev/sda3 :
UUID=b5105255-3d75-46bf-8836-ca69f3ae6ee6 / ext3 defaults,errors=remount-ro 0 1
# ntfs
# Entry for /dev/sda1 :
UUID=2290D8F490D8D001 /media/sda1 ntfs-3g defaults,locale=zh_CN.UTF-8 0 1
# fat 32
# Entry for /dev/sda6 :
UUID=471E-29DD /media/sda6 vfat defaults,utf8,umask=007,gid=46 0 1
# swap
# Entry for /dev/sda8 :
#UUID=D2B82509B824EDA3 none swap sw 0 0 | |
阅读(273) | 评论(0) | 转发(0) |