Linux 磁盘管理
一、基本概念
1. 磁盘与分区
物理磁盘:如 /dev/sda、/dev/nvme0n1,对应整块硬盘。
分区:将物理磁盘划分为逻辑区域,如 /dev/sda1、/dev/sda2。
分区表:记录分区信息,主要有两种格式:
-
MBR(Master Boot Record):传统格式,支持最多4个主分区(或3主分区+1扩展分区+多个逻辑分区),最大支持2TB磁盘。
-
GPT(GUID Partition Table):新一代格式,支持更多分区(通常128个)和更大磁盘(2TB以上),需要 UEFI 支持。
2. 文件系统
分区需要格式化为特定的文件系统后才能存储数据。常见 Linux 文件系统:
-
ext2/ext3/ext4:Linux 标准文件系统,ext4 是目前广泛使用的版本。
-
XFS:高性能文件系统,适合大文件和大容量,许多现代发行版默认使用(如 RHEL/CentOS 7+)。
-
Btrfs:下一代文件系统,支持快照、压缩、校验和等高级功能。
-
swap:交换分区,用作虚拟内存。
常用命令速查表
| 类别 | 命令 | 说明 |
|---|---|---|
| 查看 | lsblk |
列出块设备 |
| 查看 | fdisk -l |
查看分区表 |
| 查看 | blkid |
查看 UUID 和文件系统类型 |
| 分区 | fdisk / gdisk / parted |
分区工具 |
| 格式化 | mkfs.ext4 / mkfs.xfs / mkswap |
创建文件系统/交换 |
| 挂载 | mount / umount |
挂载/卸载 |
| 自动挂载 | /etc/fstab |
配置文件 |
| LVM | pvcreate, vgcreate, lvcreate |
创建物理卷、卷组、逻辑卷 |
| RAID | mdadm |
管理软件 RAID |
| 配额 | edquota, quota, repquota |
磁盘配额管理 |
| 检查 | fsck |
文件系统检查 |
| 空间 | df, du |
磁盘空间使用情况 |
| 交换 | swapon, swapoff |
启用/禁用交换 |
df—磁盘空间使用情况
df(disk free)用于显示文件系统的总容量、已用空间、可用空间、使用率以及挂载点等信息。
常用选项
-
-h(human-readable):以人类易读的格式显示(如 KB、MB、GB)。 -
-T:显示文件系统类型。 -
-i:显示 inode 使用情况而非块使用情况。 -
-a:显示所有文件系统,包括虚拟文件系统(如 proc、sysfs)。 -
-t <类型>:只显示指定类型的文件系统。
df -h # 查看所有挂载文件系统的磁盘使用情况(人性化显示)
df -Th # 显示文件系统类型和磁盘使用情况
df -i # 查看 inode 使用情况
df -h /home # 仅显示 /home 所在文件系统的信息
du—估算文件/目录的磁盘使用空间
常用选项
-
-h:以人类易读格式显示(KB、MB、GB)。 -
-s(summarize):只显示总计大小,不列出子目录。 -
-a:显示所有文件的大小,而不仅仅是目录。 -
--max-depth=N:指定显示目录树的深度,例如--max-depth=1只显示当前目录下的一级子目录大小。 -
-c:最后给出总计。 -
-d N:相当于--max-depth=N(部分版本支持)。
du -sh /home/user # 显示 /home/user 目录的总大小
du -h --max-depth=1 /var # 显示 /var 下一级子目录的大小
du -ah /etc | sort -rh | head -10 # 列出 /etc 下最大的10个文件
du -ch *.log # 统计当前目录下所有 .log 文件的总大小并给出总计
df :从文件系统层面查看磁盘空间使用情况,适合快速了解系统整体磁盘占用。
du : 从文件/目录层面统计磁盘使用,适合定位哪些目录或文件占用了大量空间。
fdisk :是底层分区工具,用于管理磁盘的分区表,创建或调整分区结构。
fdisk – 磁盘分区管理工具
fdisk 是一个用于创建、删除、修改磁盘分区的命令行工具,支持 MBR 和 GPT 分区表(对于 GPT 推荐使用 gdisk 或 parted,但 fdisk 新版本也支持 GPT)。操作时需要 root 权限。
交互模式常用内部命令
-
m:显示帮助菜单。 -
p:打印当前分区表。 -
n:新建分区。 -
d:删除分区。 -
t:修改分区类型(如 83 为 Linux,82 为 swap)。 -
w:保存修改并退出。 -
q:不保存退出。
sudo fdisk -l # 列出所有磁盘的分区表
sudo fdisk /dev/sdb # 对 /dev/sdb 进行分区操作
更多推荐




所有评论(0)