Skip to content

fstab

By UUID

lsblk -f

在Linux系统中,/dev/disk/by-uuid/ 目录下的链接文件用于通过UUID(Universally Unique Identifier)来唯一标识磁盘分区,而不是依赖于可能随系统启动或硬件变更而变化的设备名称(如 /dev/sda1, /dev/sdb1 等)。每个分区都有一个唯一的UUID,这使得它们即使在不同的系统环境中也能被可靠地识别。

要查看哪个UUID对应哪个具体的盘符(设备文件),你可以使用以下几种方法:

方法 1: 使用 ls -l 命令

你可以直接在终端中使用 ls -l 命令来列出 /dev/disk/by-uuid/ 目录的内容,并查看符号链接指向哪个实际的设备文件。

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

输出示例:

total 0
lrwxrwxrwx 1 root root 10 Dec 13 12:34 1234-5678 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 13 12:34 9abc-def0 -> ../../sdb1

在这个例子中,UUID为 1234-5678 的分区对应的盘符是 /dev/sda1,UUID为 9abc-def0 的分区对应的盘符是 /dev/sdb1

方法 2: 使用 blkid 命令

blkid 是一个用来查找或打印块设备属性的命令行工具。它可以显示所有已知分区的UUID以及其它信息。

sudo blkid

它将返回类似如下的输出:

/dev/sda1: UUID="1234-5678" TYPE="ext4"
/dev/sdb1: UUID="9abc-def0" TYPE="ext4"

方法 3: 使用 findmnt 命令

如果你想要知道已经挂载的文件系统的UUID和对应的挂载点,可以使用 findmnt 命令。

findmnt --uuid

或者指定某个UUID来获取特定的信息:

findmnt --source UUID=your-uuid-here

这些方法可以帮助你确定UUID与具体盘符之间的关系。对于自动化的脚本或配置文件(例如 /etc/fstab),推荐使用UUID来引用分区,因为它们比设备文件更加稳定和可靠。

/etc/fstab 文件中,每一行定义了如何挂载一个文件系统。一行的格式通常是:

<file system> <mount point> <type> <options> <dump> <pass>

你提到的 0 10 2 分别对应 <dump><pass> 字段。

  • Dump (备份): 这个字段是用于备份工具(如 dump)的。它指定了是否应该使用该工具来备份这个分区。通常,0 表示不使用 dump 备份此分区,而 1 则表示使用 dump 备份。

  • Pass (检查顺序): 这个字段指示 fsck(文件系统一致性检查工具)在启动时检查文件系统的顺序。它可以取以下值:

  • 0: 不要检查。
  • 1: 在根文件系统上进行检查。只有根文件系统会设置为 1
  • 2: 对其他所有需要检查的文件系统按照此值从小到大的顺序依次检查。大多数情况下,这是非根文件系统的标准值。

所以,在你的例子中:

  • 0 1 意味着该文件系统不会被 dump 工具备份,并且它是根文件系统之外的第一个被 fsck 检查的文件系统。
  • 0 2 同样意味着该文件系统不会被 dump 工具备份,但它会在启动时由 fsck 检查,而且它的检查顺序排在值为 1 的文件系统之后。

对于大多数现代Linux系统来说,dump 工具已经很少使用了,因此 <dump> 字段通常设置为 0。至于 <pass> 字段,除非你有特别的需求,否则将非根文件系统的 <pass> 设置为 2 是安全的选择。根文件系统应当总是设置为 1,以确保它是第一个被检查的文件系统。