> For the complete documentation index, see [llms.txt](https://slackwarecn.gitbook.io/slackbook_cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://slackwarecn.gitbook.io/slackbook_cn/chapter_11/using_mount.md).

# 使用 mount 指令

现在我们知道了 Linux 中可用的几种文件系统，是时候来看看怎样使用它们了。要想向一个文件系统写数据，这个文件系统必须首先被挂载。要挂载文件系统，我们可以使用 `mount(8)` 。我们首先要做的是决定文件系统挂载到哪儿。再次强调，Linux 世界中没有驱动器号。而是所有的文件系统都挂载在目录上。在你安装的 Slackware 上基本文件系统总是位于 `/` 且其它的东西总是位于 `/` 的子目录中。 `/mnt/hd` 是一个常用来挂载分区的地方，我们把它用在第一个例子中。要挂在一个文件系统，我们必须告诉 `mount` 文件系统的类型，要挂载的位置以及其他特殊的选项。

```
darkstar:~# mount -t ext3 /dev/hda3 /mnt/hd -o ro
```

我们来解读一下。我们有一个 ext3 文件系统在 IDE 设备的第三个分区，我们想把它挂载到 `/mnt/hd` 。此外，我们把它挂载为只读，这样就不会改变它的内容了。 `-t ext3` 参数告诉 `mount` 我们用的文件系统是什么类型，在本例中是 `ext3` 。这将告诉内核该使用那个驱动。通常 `mount` 会自行检查文件系统类型，但是最好还是显式的声明我们的分区类型。第二参数告诉 `mount` 我们想挂载的的位置，本例中是 `/mnt/hd` 。最后，我们必须决定要使用的参数，这些参数以 `-o` 开始声明。下面是最常用选项的简短列表。

| 选项         | 描述              |
| ---------- | --------------- |
| `ro`       | 只读              |
| `rw`       | 读写（默认值）         |
| `uid`      | 拥有此文件系统内容的用户    |
| `gid`      | 拥有此文件系统内容的组     |
| `noexec`   | 阻止执行此文件系统上的任何文件 |
| `defaults` | 大多数文件系统通用的默认值   |

> 表 11.2：常用的挂载选项

如果这是你第一次安装 Linux，你只需要关心 `ro` 和 `rw` 选项。有个例外是当你要处理不具有 Linux 权限机制的文件系统时，比如 vfat 或者 NTFS，你需要使用 `uid` 或 `gid` 选项来确保非 root 用户能够访问这些文件系统的内容。

```
darkstar:~# mount -t vfat /dev/hda4 /mnt/hd -o uid=alan
```

但是我们不想每次加载 CD 时都告诉 `mount` 是什么文件系统，用什么选项，这会很烦。幸好有个简单的办法，`/etc/fstab` 这个文件包含了安装器为你设置的所有文件系统的信息，你也可以向里面添加东西。 `fstab(5)` 看起来是一个包含了设备、文件系统以及可选参数的简单表格。我们来看看。

```
darkstar:~# cat /etc/fstab
/dev/hda1        /                reiserfs    defaults               1   1
/dev/hda2        /home            reiserfs    defaults               1   2
/dev/hda3        swap             swap        defaults               0   0
/dev/cdrom       /mnt/cdrom       auto        noauto,owner,ro,users  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner           0   0
devpts           /dev/pts         devpts      gid=5,mode=620         0   0
proc             /proc            proc        defaults               0   0
```

如果在 `fstab` 中有你的文件系统入口的话，你只需要告诉 `mount` 设备节点或者挂载位置就行了。

```
darkstar:~# mount /dev/cdrom
darkstar:~# mount /home
```

关于 `mount` 需要最后告诉你的是，你只需要运行 `mount` 而不加任何参数就能看到已经挂载的文件系统了。
