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 验证通过再重启。