在本文中,我将向您展示如何使用 fstab 来控制您的 Linux 系统。
了解 fstab
/etc/fstab 文件允许您控制在您的 Linux 系统启动时挂载的文件系统,包括 Windows 分区和网络共享。您还可以使用它来控制外部存储设备(如 USB 和外部硬盘驱动器)的连接点。在本文中,我将向您展示如何使用它来控制您的 Linux 系统。
/etc/fstab-适用于所有 Linux 计算机,控制此处挂载的 Linux 文件系统。
它的教程页面,man fstab,以信息开头:
fstab是其他程序只读的程序,不允许写;系统管理员应负责正确创建和维护此文件。
然而,如今 fstab 通常由安装程序或程序创建。所以你不应该太担心你的“责任”。
但如果你想深入研究fstab,你还是需要了解如何以及如何调整它。
一个典型的 fstab
大多数现代 Linux 发行版安装的 fstab 文件看起来有点吓人。这是来自 Ubuntu 系统的 fstab 文件:
#/etc/fstab:静态文件系统信息。
#
# 使用 'blkid-o value-s UUID' 打印设备的通用唯一标识符
# ;服装 này được sử dụng với UUID=như một thêm robust để để tên
# devices mà hoạt động hiện thời nếu đĩa này thêm và gỡ bỏ。参见 fstab (5)。
#
#
proc/proc proc defaults 0 0
#/was on/dev/sda6 during installation
UUID=2ad9188b-9d1c-4102-bf24-4b5ad456a701/ext3 errors=remount-ro 0 1
#/boot was on/dev/sda1 during installation
UUID=3943c247-16e9-405b-9fda-87684b02cc4e/boot ext2 defaults 0 2
# swap was on/dev/sda7 during安装
UUID=15825096-aef7-41d6-b53a-c86aec2ebde8 none swap sw 0 0
/dev/scd0/media/cdrom0 udf, iso9660 user, noauto, exec, utf8 0 0
下图1显示了各列的含义。
图1
设备和 UUID
让我们从设备开始:UUID=2ad9188b-9d1c-4102-bf24-4b5ad456a701。这是什么意思?
以前,fstab 设备字段要简单得多,比如/dev/hda3 用于第一个 IDE 磁盘上的第三个分区。
然而,系统正变得越来越复杂。 USB 和 SATA 磁盘都使用最初为 SCSI 编写的 sd 磁盘驱动程序。但是,无法预测它们的顺序。如果有多个 USB 和 SATA 驱动器,或者如果您经常添加或移除驱动器,您可能会发现您的原始文件系统今天出现在 sda2 上,但第二天出现在 sdc2 上.
为了克服这种混淆,fstab 可以使用“通用唯一标识符”来识别每个文件系统。
但是,我能找出哪个磁盘分区是用UUID映射的吗?可以在 fstab 中看到一些注释:
#/was on/dev/sda6 during installation
UUID=2ad9188b-9d1c-4102-bf24-4b5ad456a701/ext3 errors=remount-ro 0 1
但是,您不应该完全信任这些注释。很可能你的分区在sda6上,但不确定。
为了安全,我们需要用blkid命令检查当前值:
$ blkid
/dev/sda1: UUID="702be669-1Aee-4128-8c57-60b58bc91f59" TYPE="ext2"
/dev/sda3: UUID="615aaed5-0dba-4204-9717-c9a00ff411ea" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda5: UUID="0c5121ff-331a-4ae2-b8be-e0b10bcae62f" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda6 : UUID="d2a1e4aa-6589-4846-ba58-107d32a25375" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda7: UUID="1533cdc3-635f-4552-818b-1fadce9ea7f8" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda8: UUID="b24fd645-7c28-431b-883d-0a6cf03340ed" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda9: TYPE="swap"
$ blkid-o value-s UUID/dev/sda8
b24fd645-7c28-431b-883d-0a6cf03340ed
你也可以使用/dev/disk/by-uuid:
$ ls-l/dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 2010-04-18 09:06 0c5121ff-331a-4ae2-b8be-e0b10bcae62f->././sda5
lrwxrwxrwx 1 根 10 2010-04-18 09:06 615aaed5-0dba-4204-9717-c9a00ff411ea->././sda3
lrwxrwxrwx 1 根 10 2010-04-18 09:06 1533cdc3-635f-4552-818b-1fadce9ea7f8->././sda7
lrwxrwxrwx 1 root 10 2010-04-18 09:06 b24fd645-7c28-431b-883d-0a6cf03340ed->././sda8
lrwxrwxrwx 1 根 10 2010-04-18 09:06 ca8ec122-33c7-4765-bd65-78a15c58def3->././sda2
lrwxrwxrwx 1 根 10 2010-04-18 09:06 d2a1e4aa-6589-4846-ba58-107d32a25375->././sda6
lrwxrwxrwx 1 根 10 2010-04-18 09:06 702be669-1Aee-4128-8c57-60b58bc91f59->././sda1
有些发行版不使用 UUID,而是可以标记(label)每个文件系统:
LABEL=//ext3 默认 1 1
这种方法更容易阅读,但有点混乱。如果您在不同的分区上安装一些 Linux 发行版,您可能会遇到一些具有相同标签的分区。那么如何区分哪个分区被标注了呢?
对 UUID 和标签感到困惑?您不必使用它们。如果有一个简单的磁盘设置,简单的语法仍然有效:
/dev/sda6/ext3 错误=remount-ro 0 1
安装点和文件系统类型
接下来的两个区域非常简单。挂载点是你想尝试文件系统的任何地方:/、/home、/boot 或任何地方。它必须是首先存在的空目录。如果没有,当你在上面安装东西时,里面的任何东西都会被隐藏起来。
Type (type) 是文件系统类型,如 ext2, ext3 , Windows 的文件系统 vfat 和 ntfs 或 iso9660 用于 CD。您也可以使用 auto 命令,Linux 会尝试猜测文件系统类型。 man filesystems 有一个支持的文件系统列表。
选项
options 部分是最复杂的部分。这是您指定“其他问题”的地方-任何不适合其他部分的内容。如果没有具体的选项,只需要使用默认即可。
您可以根据需要列出许多选项,用逗号区分它们。例如,CDROM 可以使用 ro、user、noauto、exec,其中:
- ro 是只读设置。
- 用户表示它不需要root权限来挂载:任何用户都可以键入mount/media/cdrom0,如果你没有附加任何服务的话。
- noauto 表示系统在启动时不会尝试挂载它-对于外部设备来说这是个好主意。
- exec 指示系统允许您从该文件系统运行程序。否则,它将在 CDROM 和 Windows 文件系统上被禁用。
在 Windows FAT 文件系统上,如果你使用 exec,你可能想要 fmask=111: Windows 文件系统没有权限,所以如果你想运行程序,请确保设置了可执行位.
把它们放在一起,你可以在不自动连接 USB 设备的系统上创建一个有用的条目:
/dev/sdb1/stuff vfat user, noauto, exec, fmask=111 0 0
如果您的设备显示在/dev/sdb1以外的地方,请根据需要进行调整。然后 sudo mkdir/stuff,现在每当你插入相机、mp3 播放器或 USB 时,你都可以通过输入 mount/stuff 来挂载它。
要获取完整的选项列表,请参阅 man mount 并找到 FILESYSTEM INDEPENDENT MOUNT OPTIONS 和 FILESYSTEM SPECIFIC MOUNT OPTIONS 部分。
转储并通过
Dump 表示您希望文件系统备份的频率。大多数人不使用此字段,但如果您正在运行自动备份软件,则可能需要使用它。
Pass 表示在挂载前应检查设备的 fsck 时间和时间。一般来说,你应该使用 1 来表示根文件系统,2 来表示所有其他挂载的文件系统,0 来表示默认未挂载的文件系统。
查看更多:
- 4 在 Linux 中快速访问终端
- Linux 用户网络操作指南:要知道的 11 个命令
评论