Linux 磁盘管理

关键要点

  • Linux 磁盘管理涉及分区、格式化、挂载和维护,影响系统性能。
  • 磁盘设备通过 /dev 下的设备文件管理,支持多种接口如 IDE、SATA。
  • 常用命令包括 df(查看空间)、du(检查使用)、fdisk(分区)、mount(挂载)。
  • 文件系统类型如 ext4、xfs 有不同容量和性能特点。

磁盘管理基础

Linux 磁盘管理是确保系统高效运行的重要部分。磁盘设备以文件形式存在,通常在 /dev 目录下,如 /dev/sda 表示第一块 SATA 磁盘。管理包括分区(如 MBR、GPT)、格式化(创建文件系统)和挂载(关联到目录)。

磁盘类型与命名

  • 接口:IDE(/dev/hd)、SCSI/SATA/USB(/dev/sd)、虚拟设备(/dev/vd)。
  • 分区:MBR 支持 4 主分区(或 3 主+1 扩展),最大 2TB;GPT 支持 128 分区,最大 18EB。
  • 硬盘类型:HDD(机械,容量大,价格低)和 SSD(固态,速度快,抗震性好)。

常用命令

以下是核心命令及其用途:

命令用途示例
df查看文件系统空间使用情况df -h(人类可读格式)
du检查目录或文件占用空间du -sm /*(查看总大小)
fdisk管理 MBR 分区fdisk /dev/sdc
gdisk管理 GPT 分区(>2TB)gdisk /dev/sdb
mount挂载分区mount /dev/hda1 /mnt
umount卸载分区umount /dev/hdc6
mkfs格式化分区,创建文件系统mkfs -t xfs /dev/sdb1
fsck检查并修复文件系统fsck -C -f -t ext3 /dev/hdc6

文件系统

  • 类型:ext2(小分区)、ext3(日志,32TB 文件系统)、ext4(1EB 文件系统,16TB 文件)、xfs(8EB,日志恢复快)。
  • 挂载:通过 mount 命令关联到目录,需编辑 /etc/fstab 实现永久挂载。


详细报告

Linux 磁盘管理是系统性能优化的关键环节,涉及磁盘设备的识别、分区、格式化、挂载和维护。以下是全面的讲解,涵盖基本概念、命令和高级主题。

1. 概述

Linux 将一切视为文件,硬件设备通过设备文件与内核驱动关联。磁盘设备通常位于 /dev 目录下,如 /dev/sda 表示第一块 SCSI/SATA/USB 磁盘,/dev/hda 表示 IDE 磁盘。

2. 磁盘结构与命名

  • 设备号:主要设备号(major number)标识设备类型,次要设备号(minor number)标识同一类型的不同设备。
  • 设备类型
  • 块设备:以块为单位访问数据,如磁盘。
  • 字符设备:以字符为单位访问数据,如键盘。
  • 网络设备:用于主机间数据交换。
  • 命名规则
  • 物理设备
    • IDE:/dev/hd[a-d],如 /dev/hda
    • SCSI/SATA/USB:/dev/sd[a-p],如 /dev/sda
    • 软盘:/dev/fd[0-1]
    • CD-ROM:/dev/cdrom/dev/sr0
  • 虚拟设备/dev/vd/dev/xvd,常见于虚拟机。
  • 分区:主分区或扩展分区编号为 1-4,逻辑分区从 5 开始,如 /dev/sda5

3. 硬盘类型

  • 接口类型
  • IDE:并行接口,最高速度 133MB/s,较老旧。
  • SCSI:并行接口,最高速度 640MB/s,服务器常用。
  • SATA:独立数据和电源线,最高速度 6Gbps,桌面和服务器广泛使用。
  • SAS:集成数据和电源线,最高速度 6Gbps,高端服务器。
  • USB:最高速度 480MB/s,适合移动设备。
  • M.2:用于固态硬盘,速度快,常见于笔记本。
  • 尺寸
  • LFF(3.5 寸):台式机常用,容量大。
  • SFF(2.5 寸):服务器常用,利于密度和散热。
  • HDD vs SSD
  • HDD:传统机械硬盘,使用磁盘和磁头,价格低廉,容量大,适合冷数据存储。
  • SSD:固态硬盘,基于闪存,速度快,抗震性好,重量轻,但价格较高,容量相对较小,适合高性能场景。

4. 分区

  • MBR(主引导记录)
  • 最多支持 4 个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可创建逻辑分区)。
  • 逻辑分区编号从 5 开始,如 /dev/sda5
  • 最大支持 2TB 磁盘,适合老旧系统。
  • GPT(GUID 分区表)
  • 支持 128 个分区(默认,可配置更多)。
  • 最大支持 18EB 磁盘(1EB = 1024PB,1PB = 1024TB),适合现代大容量存储。
  • 分区命令
  • fdisk:用于 MBR 分区管理,支持交互式操作,如 fdisk /dev/sdc
  • gdisk:用于 GPT 分区管理,安装方式 yum -y install gdisk,操作如删除(d)、新建(n)、写入(w)。
  • parted:高级分区工具,支持大于 2TB 磁盘或小型分区,非交互式示例:parted /dev/sdb mklabel gpt yes

5. 文件系统管理

文件系统是磁盘存储数据的组织方式,Linux 支持多种类型。

  • 文件系统类型
  • ext2:适合小分区,如 /boot,无日志,性能稳定。
  • ext3:ext2 的日志版本,最大 32TB 文件系统,2TB 文件(实际文件 16GB,子目录 32000)。
  • ext4:ext3 的后继,最大 1EB 文件系统,16TB 文件,支持无限子目录,性能优于 ext3。
  • xfs:最大 8EB 文件系统和文件,日志恢复快,常用服务器场景。
  • 其他:swap(交换空间)、iso9660(CD)、btrfs、reiserfs、Windows 文件系统(FAT32、NTFS、exFAT)、Unix 文件系统(FFS、UFS、JFS2)。
  • 创建文件系统
  • mkfs 命令用于格式化分区,示例:mkfs -t xfs /dev/sdb1
  • 支持类型包括 ext2、ext3、ext4、xfs 等,可通过 -L 'LABEL' 设置标签。
  • 挂载与卸载
  • mount:将分区挂载到指定目录,示例:mount /dev/hda1 /mnt,选项如 -t(文件系统类型)、-o(挂载选项,如 ro、rw、async)。
  • umount:卸载分区,示例:umount -lf /home-f(强制)、-l(懒卸载)。
  • 永久挂载需编辑 /etc/fstab 文件,格式为 设备 文件系统 挂载点 类型 选项 转储 频率
  • 交换空间管理
  • mkswap:设置交换分区,示例:mkswap /dev/sdb1-c 检查坏块。
  • swapon:启用交换空间,示例:swapon -a(从 /etc/fstab 启用所有)。
  • swapoff:禁用交换空间,示例:swapoff -a

6. 磁盘使用与检查

  • df:查看文件系统的整体磁盘使用量,示例:df -h 显示人类可读格式,如 /dev/sda2 50G 1.2G 49G 3% /
  • 选项:-h(人类可读)、-T(显示类型)、-i(inode 信息)、-a(包括虚拟文件系统)。
  • du:检查目录或文件占用空间,示例:du -sm /* 查看每个目录的总大小。
  • 选项:-a(所有文件)、-h(人类可读)、-s(总大小)、-S(包括子目录)。
  • fsck:检查并修复文件系统,示例:fsck -C -f -t ext3 /dev/hdc6-C 显示进度、-f 强制检查、-a 自动修复、-y 自动回答“是”。
  • 支持文件系统:cramfs、ext2、ext3、msdos、vfat。

7. 其他相关命令

  • lsblk:列出块设备,示例:lsblk -f 显示文件系统信息。
  • partx:同步磁盘分区信息,示例:partx -a /dev/sda 添加到内核。
  • partprobe:重新加载分区表,示例:partprobe /dev/sdx 通知内核更新。
  • blkid:查看块设备信息,示例:blkid -o list 显示 UUID 和挂载点。

8. 高级主题

  • 配额:管理用户和组的磁盘使用量,限制存储空间。
  • RAID:冗余数组,提高数据冗余和性能,如 RAID 0(条带化)、RAID 1(镜像)。
  • LVM:逻辑卷管理,灵活扩展磁盘空间,通过逻辑卷(LV)动态调整大小。

9. 注意事项

  • 分区前备份重要数据,避免操作失误。
  • GPT 适合现代大容量磁盘,MBR 适合老旧系统。
  • 挂载点建议使用空目录,避免覆盖现有数据。
  • 定期检查文件系统(如 fsck)以确保数据完整性。

以上内容基于可靠资源整理,适合初学者和有经验的用户参考。


关键引文

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注