《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)

简介: 《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)

7443eb4abd0a02d948a622c83b1672a.png

6.1 磁盘分区与格式化

探索 Linux 的磁盘分区与格式化就像是准备一块未开垦的土地,将其分割成不同用途的区域并进行耕种,以便它能够存储丰富的数据作物。让我们深入了解如何高效地管理这片土地。

6.1.1 重点基础知识

  • 磁盘分区: 分区就是将物理硬盘划分成逻辑部分,每个部分可以独立使用。这有助于数据管理和优化存储空间使用。fdiskparted 是常用的分区工具,前者更传统,后者功能更全面且支持更大的存储。
  • 文件系统格式化: 格式化是在分区上创建文件系统的过程,它决定了数据如何存储和检索。常见的文件系统类型有 ext4、XFS、Btrfs 等。使用 mkfs 命令配合具体的文件系统类型,如 mkfs.ext4,来格式化分区。

6.1.2 重点案例:为新硬盘配置分区和文件系统

假设你添加了一块新硬盘到你的 Linux 系统中,现在需要将其分区并格式化,以存储备份数据。

  1. 检查新硬盘:
    使用 lsblk 查看已连接的存储设备和它们的分区情况。
lsblk
  1. 分区新硬盘:
    假设新硬盘被识别为 /dev/sdb,使用 fdiskparted 对其进行分区。
sudo fdisk /dev/sdb
  1. fdisk 的交互式菜单中,创建一个新分区,并按照提示操作。
  2. 格式化新分区:
    假设你创建的新分区为 /dev/sdb1,使用 mkfs.ext4 命令对其进行格式化。
sudo mkfs.ext4 /dev/sdb1
  1. 挂载新分区:
    创建一个挂载点并挂载新分区。
sudo mkdir /mnt/newdisk
sudo mount /dev/sdb1 /mnt/newdisk

6.1.3 拓展案例 1:创建交换分区

对于需要增加虚拟内存的系统,你可以将一部分硬盘空间划分为交换分区。

sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2

假设 /dev/sdb2 是为交换空间预留的分区。

6.1.4 拓展案例 2:使用 LVM 管理分区

逻辑卷管理(LVM)允许更灵活的分区管理,比如动态调整分区大小。首先创建物理卷(PV),然后创建卷组(VG),最后创建逻辑卷(LV)并格式化。

sudo pvcreate /dev/sdb3
sudo vgcreate vgbackup /dev/sdb3
sudo lvcreate -n lvbackup -l 100%FREE vgbackup
sudo mkfs.ext4 /dev/vgbackup/lvbackup

通过理解和应用这些分区与格式化的知识和技能,你就能够更好地管理你的存储资源,无论是为新硬盘准备数据存储区,还是优化现有的存储结构。这些技能对于维护一个健康、高效的 Linux 系统至关重要。


6.2 挂载与卸载文件系统

在 Linux 的世界里,挂载是将文件系统连接到主文件树的过程,而卸载则是这一过程的逆操作。这就像是把一本新书放回书架的正确位置,或者从书架上取下一本书来阅读。理解挂载和卸载的概念及操作对于管理存储设备和访问数据至关重要。

6.2.1 重点基础知识

  • 挂载(Mounting): 将一个文件系统附加到当前目录结构的指定位置。这使得你可以访问存储在物理设备上的数据。使用 mount 命令可以实现这一点。
  • 卸载(Unmounting): 与挂载相反,卸载是从文件系统结构中移除一个已挂载的文件系统。这通常在你不再需要访问该文件系统的数据或需要移除物理设备之前进行。使用 umount 命令来执行卸载操作。
  • 自动挂载: 在系统启动时自动挂载文件系统,这通常通过编辑 /etc/fstab 文件来实现。

6.2.2 重点案例:挂载新的硬盘分区

假设你刚刚添加了一块新硬盘到服务器,创建了一个分区 /dev/sdb1 并格式化为 ext4 文件系统,现在需要将其挂载到 /data 目录以存储日志文件。

  1. 创建挂载点:
sudo mkdir /data
  1. 手动挂载分区:
sudo mount /dev/sdb1 /data
  1. 验证挂载:
    使用 df -hmount 命令查看分区是否成功挂载到 /data
  2. 配置自动挂载:
    编辑 /etc/fstab 文件,添加一行以确保在系统重启后自动挂载 /dev/sdb1
/dev/sdb1 /data ext4 defaults 0 2

6.2.3 拓展案例 1:挂载网络文件系统(NFS)

在多服务器环境中,你可能需要从一台服务器访问另一台服务器上的文件。假设有一个 NFS 共享需要挂载:

sudo mount -t nfs server:/path/to/share /mnt/nfs_share

这允许你通过 /mnt/nfs_share 访问远程共享的数据。

6.2.4 拓展案例 2:使用 UUID 挂载分区

为了避免设备名变化导致的挂载错误,推荐使用 UUID(Universally Unique Identifier)来标识分区。首先使用 blkid 命令找到分区的 UUID,然后在 /etc/fstab 中使用这个 UUID:

UUID=1234-5678 /data ext4 defaults 0 2

这样可以更稳定可靠地自动挂载分区。

通过掌握挂载与卸载文件系统的技巧,你就能更灵活地管理 Linux 系统的存储资源,无论是本地硬盘、移动存储设备还是网络存储,都能轻松应对。这是每个 Linux 用户和系统管理员必备的技能之一,有助于确保数据的可访问性和系统的稳定性。


6.3 磁盘配额与管理

在 Linux 的磁盘管理剧场中,配额(Quota)是一位严格但公平的导演,确保每个参与者都在他们的角色范围内表演,没有人会过度占用舞台(磁盘空间)。磁盘配额允许系统管理员控制用户和群组可以使用的磁盘空间和文件数量。这就像是给每个用户或部门分配一个特定大小的仓库空间,确保资源的公平使用。

6.3.1 重点基础知识

  • 用户和群组配额:Linux 系统允许对用户和群组设置磁盘配额,这包括硬限制(绝对的上限,不能超过)和软限制(可以暂时超过,但会有警告)。
  • 设置和检查配额quota 命令用于检查磁盘配额使用情况,而 quotacheck 用于扫描文件系统以建立、检查和修复配额文件。edquota 是编辑配额的工具。
  • 启用配额:在文件系统上启用配额涉及到编辑 /etc/fstab 文件,并使用 quotaon 命令启用。

6.3.2 重点案例:为部门设置磁盘配额

假设你是 IT 管理员,需要为营销部门设置磁盘配额,以避免单个用户或项目占用过多存储资源。

  1. 启用文件系统配额:
    编辑 /etc/fstab,为营销部门使用的文件系统添加 usrquotagrpquota 选项。
/dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 2
  1. 重新挂载文件系统:
    应用更改并启用配额。
sudo mount -o remount /data
  1. 创建和初始化配额:
    使用 quotacheck 初始化配额文件,并生成配额报告。
sudo quotacheck -avugm
  1. 编辑配额限制:
    为营销部门的群组 marketing 设置配额。
sudo edquota -g marketing
  1. 在编辑器中,设置硬限制和软限制的磁盘使用量和文件数量。

6.3.3 拓展案例 1:临时增加配额

如果营销部门在进行一个大型项目,需要临时增加存储空间,你可以使用 edquota 调整他们的配额限制,项目结束后再调整回去。

6.3.4 拓展案例 2:自动警告超额使用

通过配置配额系统发送超额使用警告,可以让用户自觉管理他们的磁盘使用。这可以通过设置软限制并利用 warnquota 工具实现。

sudo warnquota

这个命令可以配置为定期运行,以邮件形式通知用户他们的磁盘使用情况。

6.3.5 拓展案例 3:监控磁盘使用情况

对于管理员来说,定期监控磁盘使用情况是很重要的。使用 repquota 命令可以生成整个文件系统的配额使用报告。

sudo repquota /data

通过实施磁盘配额,管理员可以有效管理系统资源,预防因少数用户或程序过度使用磁盘空间而导致的资源不足问题,确保系统的稳定运行和数据的安全存储。掌握磁盘配额与管理技巧对于维护一个高效、公平的存储环境至关重要。

目录
相关文章
|
16天前
|
存储 Linux 数据处理
探索Linux操作系统的内核与文件系统
本文深入探讨了Linux操作系统的核心组件,包括其独特的内核结构和灵活的文件系统。文章首先概述了Linux内核的主要功能和架构,接着详细分析了文件系统的工作原理以及它如何支持数据存储和检索。通过比较不同的文件系统类型,本文旨在为读者提供一个关于如何根据特定需求选择合适文件系统的参考框架。
|
3天前
|
监控 Linux Shell
Linux命令ionice:优化磁盘I/O优先级
`ionice`是Linux工具,用于调整进程的磁盘I/O优先级,改善系统响应。它设置三种I/O调度类:Idle(低优先级),Best-effort(默认)和Real-time(高优先级)。通过 `-c` 和 `-n` 参数分别设定调度类和优先级。示例:`ionice -c3 -n7 command`(低优先级I/O)和`ionice -c2 -p 1234`(改变PID为1234的进程为Idle类)。使用时注意平衡系统资源,避免干扰其他任务,并结合`iostat`、`iotop`监控性能。
|
7天前
|
Linux
蓝易云 - 无法修改BIOS情况下Linux切换根目录到其他磁盘
注意:这个过程涉及到系统的关键部分,如果操作不当,可能会导致系统无法启动。在进行操作之前,确保你已经做好了充分的备份,并且熟悉这个过程。如果可能,最好在一个没有重要数据的测试系统上进行尝试。
9 1
|
15天前
|
Ubuntu Linux 网络安全
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
ubuntu linux通过rclone 挂载onedrive 到本地磁盘
|
1天前
|
存储 JSON Linux
探索Linux文件系统的奥秘:`lsblk`命令详解
`lsblk`是Linux下用于列出块设备详情的命令,显示设备名、大小、类型、挂载点等信息,尤其适合查看磁盘分区和挂载状态。它以树形结构展示设备间的依赖,且支持多种输出格式。常用参数如`-a`显示所有设备,`-f`显示文件系统信息,`-o`定制输出列。结合其他命令使用能有效管理文件系统。注意权限和输出格式选择。
|
16天前
|
网络协议 Java Linux
Linux常用操作命令、端口、防火墙、磁盘与内存
Linux常用操作命令、端口、防火墙、磁盘与内存
17 0
|
17天前
|
存储 缓存 Linux
【Linux】文件系统
【Linux】文件系统
|
17天前
|
存储 Linux
【Linux】磁盘文件
【Linux】磁盘文件
|
17天前
|
Linux
45. 【Linux教程】文件系统检查
45. 【Linux教程】文件系统检查
21 0
|
17天前
|
Linux
44. 【Linux教程】创建文件系统
44. 【Linux教程】创建文件系统
20 0