Linux 磁盘管理

服务器磁盘满了、新加一块硬盘不会挂载、分区不知道怎么规划——这些都要用到磁盘管理知识。本课覆盖查看磁盘、分区、格式化、挂载、开机自动挂载与交换分区,是运维人员绕不开的硬核基础。

查看磁盘与使用空间

df -h                  # 查看各分区使用情况(-h 人性化显示)
# 输出:/dev/sda1   39G  6.5G   31G  18% /
lsblk                  # 树状查看磁盘与分区结构
# 输出:sda      8:0    0   40G  0 disk
# 输出:└─sda1   8:1    0   39G  0 part /
du -sh /var            # 统计目录总大小
# 输出:3.4G    /var

sda 是第一块 SATA/SCSI 盘,sda1 是它的第一个分区;NVMe 固态盘一般显示为 nvme0n1

用 fdisk 分区

以新盘 /dev/sdb 为例,进入交互式分区界面:

sudo fdisk /dev/sdb
# 常用交互指令:
#   n  新建分区
#   p  打印当前分区表
#   w  保存并退出
sudo fdisk -l /dev/sdb     # 查看分区结果
# 输出:/dev/sdb1  2048 41943039 20G 83 Linux

格式化文件系统

分区完成后要先格式化才能使用,常见文件系统有 ext4、xfs:

sudo mkfs.ext4 /dev/sdb1          # 格式化为 ext4
# 输出:Creating filesystem with 5242624 4k blocks ...
sudo mkfs.xfs /dev/sdb1           # 也可以格式化为 xfs
blkid /dev/sdb1                   # 查看文件系统类型与 UUID
# 输出:/dev/sdb1: UUID="abc123..." TYPE="ext4"

挂载与卸载

把格式化好的分区挂到某个空目录(挂载点)上:

sudo mkdir -p /data          # 先创建挂载点
sudo mount /dev/sdb1 /data   # 挂载
df -h /data
# 输出:/dev/sdb1   20G  24K   19G   1% /data
sudo umount /data            # 卸载

开机自动挂载 fstab

手动 mount 重启后会失效,写入 /etc/fstab 才能开机自动挂载:

echo "UUID=abc123... /data ext4 defaults 0 2" | sudo tee -a /etc/fstab

四列含义依次是:设备、挂载点、文件系统、挂载选项;最后两个数字分别表示是否备份与开机检查顺序。改完务必验证,避免写错导致无法开机:

sudo mount -a      # 按 fstab 内容重新挂载一次
# 无任何报错即说明配置正确

交换分区 swap

swap 是内存不足时的后备空间,用交换文件创建最灵活:

sudo fallocate -l 2G /swapfile    # 创建 2GB 的交换文件
sudo chmod 600 /swapfile          # 仅允许 root 读写
sudo mkswap /swapfile             # 格式化为交换空间
sudo swapon /swapfile             # 启用 swap
free -h
# 输出:Swap:   2.0Gi        0B  2.0Gi

小结:磁盘管理的主线是"lsblk/df 查看 → fdisk 分区 → mkfs 格式化 → mount 挂载 → 写入 fstab 持久化"。新手最常踩的坑是改错 fstab,切记先执行 mount -a 验证通过再重启。

笔记加载中…