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

文章目录

  • [6.1 磁盘分区与格式化](#6.1 磁盘分区与格式化)
    • [6.1.1 重点基础知识](#6.1.1 重点基础知识)
    • [6.1.2 重点案例:为新硬盘配置分区和文件系统](#6.1.2 重点案例:为新硬盘配置分区和文件系统)
    • [6.1.3 拓展案例 1:创建交换分区](#6.1.3 拓展案例 1:创建交换分区)
    • [6.1.4 拓展案例 2:使用 LVM 管理分区](#6.1.4 拓展案例 2:使用 LVM 管理分区)
  • [6.2 挂载与卸载文件系统](#6.2 挂载与卸载文件系统)
    • [6.2.1 重点基础知识](#6.2.1 重点基础知识)
    • [6.2.2 重点案例:挂载新的硬盘分区](#6.2.2 重点案例:挂载新的硬盘分区)
    • [6.2.3 拓展案例 1:挂载网络文件系统(NFS)](#6.2.3 拓展案例 1:挂载网络文件系统(NFS))
    • [6.2.4 拓展案例 2:使用 UUID 挂载分区](#6.2.4 拓展案例 2:使用 UUID 挂载分区)
  • [6.3 磁盘配额与管理](#6.3 磁盘配额与管理)
    • [6.3.1 重点基础知识](#6.3.1 重点基础知识)
    • [6.3.2 重点案例:为部门设置磁盘配额](#6.3.2 重点案例:为部门设置磁盘配额)
    • [6.3.3 拓展案例 1:临时增加配额](#6.3.3 拓展案例 1:临时增加配额)
    • [6.3.4 拓展案例 2:自动警告超额使用](#6.3.4 拓展案例 2:自动警告超额使用)
    • [6.3.5 拓展案例 3:监控磁盘使用情况](#6.3.5 拓展案例 3:监控磁盘使用情况)

6.1 磁盘分区与格式化

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

6.1.1 重点基础知识

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

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

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

  1. 检查新硬盘 :

    使用 lsblk 查看已连接的存储设备和它们的分区情况。

    bash 复制代码
    lsblk
  2. 分区新硬盘 :

    假设新硬盘被识别为 /dev/sdb,使用 fdiskparted 对其进行分区。

    bash 复制代码
    sudo fdisk /dev/sdb

    fdisk 的交互式菜单中,创建一个新分区,并按照提示操作。

  3. 格式化新分区 :

    假设你创建的新分区为 /dev/sdb1,使用 mkfs.ext4 命令对其进行格式化。

    bash 复制代码
    sudo mkfs.ext4 /dev/sdb1
  4. 挂载新分区 :

    创建一个挂载点并挂载新分区。

    bash 复制代码
    sudo mkdir /mnt/newdisk
    sudo mount /dev/sdb1 /mnt/newdisk

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

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

bash 复制代码
sudo mkswap /dev/sdb2
sudo swapon /dev/sdb2

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

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

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

bash 复制代码
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. 创建挂载点:

    bash 复制代码
    sudo mkdir /data
  2. 手动挂载分区:

    bash 复制代码
    sudo mount /dev/sdb1 /data
  3. 验证挂载 :

    使用 df -hmount 命令查看分区是否成功挂载到 /data

  4. 配置自动挂载 :

    编辑 /etc/fstab 文件,添加一行以确保在系统重启后自动挂载 /dev/sdb1

    bash 复制代码
    /dev/sdb1 /data ext4 defaults 0 2

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

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

bash 复制代码
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:

bash 复制代码
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 选项。

    bash 复制代码
    /dev/sdb1 /data ext4 defaults,usrquota,grpquota 0 2
  2. 重新挂载文件系统 :

    应用更改并启用配额。

    bash 复制代码
    sudo mount -o remount /data
  3. 创建和初始化配额 :

    使用 quotacheck 初始化配额文件,并生成配额报告。

    bash 复制代码
    sudo quotacheck -avugm
  4. 编辑配额限制 :

    为营销部门的群组 marketing 设置配额。

    bash 复制代码
    sudo edquota -g marketing

    在编辑器中,设置硬限制和软限制的磁盘使用量和文件数量。

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

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

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

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

bash 复制代码
sudo warnquota

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

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

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

bash 复制代码
sudo repquota /data

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

相关推荐
quaer15 分钟前
Open-Sora全面开源?
开发语言·算法·机器学习·matlab·矩阵
hakesashou19 分钟前
python如何比较字符串
linux·开发语言·python
Ljubim.te27 分钟前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
深度学习实战训练营31 分钟前
基于keras的停车场车位识别
人工智能·深度学习·keras
乔代码嘚38 分钟前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
墨@#≯38 分钟前
机器学习系列篇章0 --- 人工智能&机器学习相关概念梳理
人工智能·经验分享·机器学习
cooldream200940 分钟前
Linux性能调优技巧
linux
大G哥41 分钟前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
长天一色44 分钟前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索