练习 19:文件系统:挂载,mount,/etc/fstab

原文:Exercise 19. Filesystems: mounting, mount, /etc/fstab

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

我希望你熟悉分区的概念。如果没有,我会简要介绍一下。首先引用自维基百科:

磁盘分区是一种行为,将硬盘驱动器分为多个逻辑存储单元,它们被称为分区,来将一个物理磁盘驱动器视为多个磁盘。

看一看:

user1@vm1:~$ sudo parted /dev/vda
GNU Parted 2.3
Using /dev/vda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit GB
(parted) p
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
 
Number  Start   End     Size    Type      File system     Flags
 1      0.00GB  13.3GB  13.3GB  extended
 5      0.00GB  1.02GB  1.02GB  logical   ext3            boot
 6      1.03GB  2.05GB  1.02GB  logical   linux-swap(v1)
 7      2.05GB  3.07GB  1.02GB  logical   ext3
 8      3.07GB  5.12GB  2.05GB  logical   ext3
 9      5.12GB  9.22GB  4.09GB  logical   ext3
10      9.22GB  13.3GB  4.09GB  logical   ext3
 
(parted)

这是一个物理硬盘,分为 7 个不同的分区。这样做的原因很多,但最好被理解为“分治”原则的应用。以这种方式分割时,流氓程序不能通过占用所有磁盘空间,使整个服务器崩溃,该程序将限制在其分区中。我不会再谈论磁盘分区,但是我会继续关注文件系统,再次引用维基百科

文件系统是一种组织数据的手段。通过提供存储,检索和更新数据的过程,以及管理包含它的设备上的可用空间,数据预期在程序终止后保留。文件系统以有效的方式组织数据,并根据设备的特定特性进行调整。在操作系统和文件系统之间,通常存在紧耦合。一些文件系统提供了机制来控制数据和元数据的访问。确保可靠性是文件系统的主要职责。一些文件系统允许多个程序几乎同时更新同一个文件。

类 Unix 操作系统创建一个虚拟文件系统,这使得所有设备上的所有文件似乎都存在于单个层次结构中。这意味着,在这些系统中,有一个根目录,系统上存在的每个文件位于它下方的某个地方。类 Unix 系统可以使用 RAM 磁盘或网络共享资源作为其根目录。

这意味着,所有文件系统都集成在一个大树中。对于熟悉 Microsoft Windows 的人来说,这意味着比起C:\D:\等盘符,这种命名方案有一个单独的根,/,所有其他分区都连接到它上面。将文件系统连接到现有目录的过程称为挂载。连接文件系统的目录称为挂载点。同样,看一看:

这是我之前展示给你的相同分区,你可以在这个列表中看到挂载点。不以/dev/vda开头的是虚拟文件系统,它允许访问不同的系统设施,但它们和此练习无关。现在我们来看看/etc/fstab文件:

看起来很恐怖,但让我们选取一行:

按照字段将其拆开。

和之前一样,这些信息可以通过man fstab提供给你。现在我将向你展示使用现有文件系统的几个命令:

  • mount - 打印出所有已挂载的文件系统。

  • mount -a - 挂载/etc/fstab中描述的所有文件系统。

  • mount /dev/sda<N> /<mount point> - 挂载分区。

  • umount /dev/sda<N> /<mount point> - 解除挂载分区。

  • mount -h - 打印出使用mount的简短帮助。

  • fsck - 检查分区是否有错误。

  • blkid - 打印出唯一的分区标识符。

现在,你将学习如何列出已安装的分区,挂载和解除挂载它们。

这样做

你会看到什么

解释

  1. 打印你的/etc/fstab文件的内容,它包含分区信息以及挂载位置。

  2. 打印当前已挂载的分区。

  3. 打印系统中所有分区的 UUID。

  4. 解除挂载/tmp分区,以便你可以检查它。

  5. 再次打印出当前已挂载的分区。/tmp现在不存在于此列表中。

  6. 检查/tmp分区是否有错误。fsck通过读取相应的/etc/fstab条目知道要检查哪个分区。

  7. 挂载/etc/fstab中描述的所有分区。

  8. 再次打印当前已挂载的分区。/tmp已经返回了此列表。

附加题

Last updated