[ Content contribution] Linux 入门教程(八):磁盘管理与文件系统深入解析
Tofloor
poster avatar
玄圭SwenGway
deepin
2025-01-05 12:49
Author

Linux 入门教程(八):磁盘管理与文件系统深入解析

大家好!在上一节,我们聊到了软件包管理工具,今天我们将进入一个更“硬核”的领域——磁盘管理与文件系统。这可能听起来很复杂,但放心,我们会以通俗易懂、幽默风趣的方式来解释,不用担心,你不会被硬盘和分区搞得头晕目眩的!😎

为了让你更好地理解,我们会不时做一些和 Windows 的对比,因为很多人对 Windows 的磁盘管理比较熟悉。接下来,我们将了解 Linux 系统的磁盘管理、文件系统,和一些常见的命令工具,跟着我们一起动手玩转磁盘吧!


一、Linux 文件系统概述

首先,让我们来聊聊文件系统。简而言之,文件系统就像是一个魔术师,它决定了文件如何在磁盘上保存和管理。在 LinuxWindows 中,虽然最终的目标是存储文件,但它们的工作方式和机制是完全不同的。

Windows 文件系统 VS Linux 文件系统

  • Windows 系统使用的是 NTFS(New Technology File System)。它的优势在于支持大文件、权限管理、加密等功能。但 NTFS 是为桌面用户设计的,相比之下,它在跨平台兼容性、性能优化等方面做得不如 Linux 的一些文件系统。
  • Linux 系统使用的文件系统种类较多,其中最常用的是 ext4(第四代扩展文件系统)。Linux 文件系统的设计理念通常是模块化、可靠性和性能优化,且在跨平台兼容性上更强。

Linux 文件系统的优势

  1. 性能:Linux 文件系统(如 ext4)经过精心设计,处理大量小文件时非常高效。
  2. 灵活性:Linux 文件系统通常支持更多的功能和扩展,如符号链接、硬链接等。
  3. 可靠性:Linux 文件系统提供了更强的容错能力和修复机制。
  4. 开源与自由:Linux 文件系统的源代码开放,允许用户自由修改和优化。

二、常见的 Linux 文件系统及特点

虽然 Linux 支持多种文件系统,但以下几种是最常用的:

  1. ext4:这是 Linux 中最常用的文件系统,是 ext3 的继任者。相比于 ext3,ext4 提供了更高的性能、更大的容量支持和更好的数据恢复能力。它适用于大多数桌面和服务器应用。
    • 特点:大文件支持、高性能、日志记录、数据一致性、动态分配。
  2. Btrfs:这是一个较新的文件系统,旨在提供更高的可扩展性和灵活性,支持快照、子卷等高级功能。
    • 特点:支持快照、压缩、数据冗余、文件系统的自我修复。
  3. XFS:这是一个高性能的文件系统,尤其擅长处理大文件。常用于企业级应用。
    • 特点:高性能、大文件支持、日志记录。
  4. F2FS:这是一个面向闪存存储(如 SSD)的文件系统,优化了闪存的读写性能。
    • 特点:专为 SSD 优化、低延迟、高吞吐量。

三、着重介绍 ext4 文件系统

我们这次主要关注 ext4 文件系统,它是大多数 Linux 发行版的默认文件系统。要了解它,我们先从历史开始。

ext4 文件系统的历史

  • ext2:最初的 Linux 文件系统,广泛应用于 1990 年代末到 2000 年初。虽然它稳定且功能丰富,但在处理大数据时并不是最优。
  • ext3:是 ext2 的增强版,引入了日志(journal)功能,用于提高文件系统的可靠性。但在大文件处理、性能等方面,它还是有些不足。
  • ext4:作为 ext3 的继任者,ext4 在性能、容量和功能上都有了显著提升,现已成为大多数 Linux 发行版的标准文件系统。

ext4 的优势

  • 大文件支持:ext4 支持单个文件最大 16 TiB,整个文件系统最大支持 1 EiB(远超一般应用需求)。
  • 性能提升:ext4 通过延迟分配、日志写入等机制,优化了磁盘性能。
  • 数据一致性:通过日志功能,ext4 能够保证数据的一致性,防止突然断电或崩溃时数据损坏。

四、Swap 交换空间

接下来,我们要介绍一个让很多 Linux 新手头疼的概念——swap

什么是 Swap?

Swap(交换空间)是 Linux 系统用来处理内存不足的一种技术。它是磁盘上的一块预留空间,用来临时存储当内存(RAM)不够用时的数据。

为什么需要 Swap?

当你的 RAM 满了,系统就会把一些暂时不用的内存数据“换”到 swap 空间中,从而为正在运行的程序腾出更多内存。虽然这个过程比直接使用 RAM 慢很多,但它能保证系统不会因为内存耗尽而崩溃。

Swap 和 RAM 的关系

  • RAM:存储当前运行的程序数据,速度非常快。
  • Swap:磁盘上的临时存储,速度远慢于 RAM,但能为系统提供额外的内存空间。

通常,在 Linux 系统上,swap 空间是由一个单独的分区或者一个 swap 文件构成。


五、Linux 设备表示方法

在 Linux 中,设备 是通过文件进行表示的,每个设备都有一个对应的文件。例如,硬盘、USB 驱动器、光盘等设备都可以作为文件来访问。

  • 硬盘设备:通常,硬盘分区会被表示为 /dev/sda1/dev/sda2 等,表示硬盘的第一个、第二个分区。
  • USB 设备:类似地,USB 驱动器会被表示为 /dev/sdb/dev/sdc 等。

这些设备文件存在于 /dev 目录下,设备文件的名字通常依赖于硬件的顺序。


六、挂载文件系统(mount)

在 Linux 中,磁盘或分区必须挂载到文件系统上,才能访问其中的数据。挂载就像是将一个硬盘“接入”到系统中,系统才知道如何管理这些数据。

使用 mount 命令挂载文件系统

假设你有一个名为 /dev/sda1 的分区,你想挂载它到 /mnt/data 目录下,命令如下:

sudo mount /dev/sda1 /mnt/data

这样,你就能通过 /mnt/data 路径访问这个分区的内容了。

查看当前挂载的文件系统

要查看当前系统上所有挂载的文件系统,使用 mount 命令:

mount

卸载文件系统(umount)

当你不再需要访问某个文件系统时,需要将其卸载。卸载文件系统就像是将它从系统中“拔出”。注意,卸载文件系统时,你不能在该文件系统中打开任何文件或文件夹。

sudo umount /mnt/data

七、启动时自动挂载(编辑 /etc/fstab

在 Linux 启动时,某些文件系统需要自动挂载,这个过程通过 /etc/fstab 文件来管理。

编辑 /etc/fstab 文件

/etc/fstab 文件是一个文本文件,定义了在启动时需要挂载的所有文件系统。你可以通过编辑这个文件来指定系统启动时自动挂载某些分区。

  1. 打开 /etc/fstab 文件:

    sudo nano /etc/fstab
    
  2. 添加一行来自动挂载分区。例如,假设你希望在启动时自动挂载 /dev/sda1/mnt/data,可以添加如下内容:

    /dev/sda1    /mnt/data    ext4    defaults    0    2
    

    其中:

    • /dev/sda1:设备
    • /mnt/data:挂载点
    • ext4:文件系统类型
    • defaults:挂载选项
    • 0:表示不需要备份
    • 2:表示文件系统的检查顺序(根文件系统通常是 1,其他文件系统通常是 2)
  3. 保存并退出。下次启动时,/dev/sda1 会自动挂载到 /mnt/data


八、查看磁盘使用情况(df)

想知道系统磁盘是否快满了?使用 `

df` 命令可以快速查看磁盘的使用情况。

df -h
  • -h 选项让结果以易读的形式(例如 GB、MB)显示出来。
  • -t选项可以指定某个指定的硬盘或文件系统,如只查看ext4分区使用情况可以这样 df -t ext4

九、检查和修复文件系统(fsck)

如果磁盘出现问题(如突然断电导致的文件系统错误),你可以使用 fsck 命令来检查和修复文件系统。

sudo fsck /dev/sda1

这个命令会扫描文件系统并修复任何错误。


十、建立文件系统(mkfs)

当你准备格式化一个分区并建立新的文件系统时,使用 mkfs 命令。例如,要在 /dev/sda1 上创建 ext4 文件系统:

sudo mkfs.ext4 /dev/sda1

总结

通过今天的学习,我们了解了 Linux 的文件系统、swap、磁盘管理以及常用的命令工具。这些工具和概念是你深入了解和管理 Linux 系统的重要基础。希望通过今天的教程,你对 Linux 磁盘管理有了更清晰的理解,并且能更好地利用这些工具为你的系统提供高效和稳定的支持!

Reply Favorite View the author
All Replies
晚秋(lateautumn)
Moderator
2025-01-05 16:54
#1

学习了,谢谢分享like

Reply View the author