使用UUID的方法挂载分区

打开电脑发现,系统中各个盘符都挂载到/media下面了,导致很多程序不能正常运行了。使用“sudo umount -a”命令全部卸载,然好再使用“sudo mount -a”,重新按照/etc/fstab中的设置挂载,结果出现错误。经过查看,发现硬盘的分区从sda变成了sdb了。原来的sda5现在变成了sdb5,而fstab中的设置中是将/dev/sda5挂载到/var/ftp怪不得挂载不上了。如下:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# /dev/sda7
/dev/sda7          /var/ftp               ext3      relatime           0             2

怎么办?
这么办。我们使用UUID来标示设备,这样就不会出现这种错误了(点击查看wiki百科)。

一组 UUID,系由一串 16 位组(亦称 16 字节,或 128 位)的16进位数字所构成,是故UUID理论上的总数为216 x 8=2128,约等于3.4 x 1038。也就是说若每奈秒产生1兆个UUID,要花100亿年才会将所有UUID用完。

输入命令,得到各设备的UUID。
[cc lang=”bash”]ls -l /dev/disk/by-uuid/[/cc]

根据得到的UUID,将fstab中的设置更改一下,上面的例子,改为:

# /etc/fstab: static file system information.
#
# <file system>                       <mount point>       <type>  <options>  <dump> <pass>
# /dev/sda7
UUID=d51b2056-6825-456c-957d-ebb16edd349d    /var/ftp      ext3       relatime     0   2

重新启动计算机,或者输入命令“sudo mount -a”,所有的设备就会正确挂载。

另外,为什么会出现这种错误呢,原来是因为我插了一个U盘在电脑上。这个忘记拔掉的U盘,占据了sda的标示,而它只有一个分区,所以在挂载的时候,所有的分区都不能得到正确挂载了(还好ROOT分区系统默认使用了UUID的方法挂载,要不然岂不是启动不了系统了吗)。

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2011). 怎么办,ubuntu系统中的sda变成了sdb了?. BIO-SPRING. /post/2011/09/21/2011-09-21-sda-sdb-ubuntu/

BibTeX citation

@misc{
  title = "怎么办,ubuntu系统中的sda变成了sdb了?",
  author = "gaoch",
  year = "2011",
  journal = "BIO-SPRING",
  note = "/post/2011/09/21/2011-09-21-sda-sdb-ubuntu/"
}