10. 磁盘与存储
10.1 查看磁盘使用情况
bash
# df — 查看文件系统磁盘空间
df -h # 人类可读格式
df -hT # 包含文件系统类型
# du — 查看目录占用空间
du -sh /home/user # 目录总大小
du -sh /home/* # 各子目录大小
du -h --max-depth=1 / # 根目录下各目录大小
# ncdu — 交互式磁盘分析(需安装)
ncdu /homebash
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 50G 22G 26G 46% /
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sda2 ext4 200G 156G 34G 83% /home
/dev/sdb1 ext4 500G 120G 355G 26% /data
$ du -sh /home/user/*
450M /home/user/Documents
2.1G /home/user/Downloads
850M /home/user/projects
50M /home/user/.cache10.2 磁盘分区与挂载
bash
# 查看磁盘和分区信息
lsblk
sudo fdisk -l
# 挂载分区
sudo mount /dev/sdb1 /mnt/data
# 卸载
sudo umount /mnt/data
# 查看当前挂载
mount | grep sdb
# 格式化分区(危险操作!会擦除数据)
sudo mkfs.ext4 /dev/sdb1
# 设置开机自动挂载(编辑 fstab)
sudo nano /etc/fstab
# 添加一行:/dev/sdb1 /data ext4 defaults 0 2bash
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 250G 0 disk
├─sda1 8:1 0 50G 0 part /
└─sda2 8:2 0 200G 0 part /home
sdb 8:16 0 500G 0 disk
└─sdb1 8:17 0 500G 0 part /data
sr0 11:0 1 1024M 0 rom10.3 LVM — 逻辑卷管理
LVM(Logical Volume Manager)让你可以灵活调整分区大小,不用像传统分区那样死板。
bash
# 创建 LVM 的三步曲
# 1. 创建物理卷(PV)
sudo pvcreate /dev/sdb /dev/sdc
# 2. 创建卷组(VG)
sudo vgcreate data_vg /dev/sdb /dev/sdc
# 3. 创建逻辑卷(LV)
sudo lvcreate -L 100G -n web_lv data_vg
sudo lvcreate -l 100%FREE -n backup_lv data_vg
# 格式化并挂载
sudo mkfs.ext4 /dev/data_vg/web_lv
sudo mount /dev/data_vg/web_lv /var/www
# 查看状态
sudo pvs
sudo vgs
sudo lvs
# 扩容逻辑卷
sudo lvextend -L +50G /dev/data_vg/web_lv
sudo resize2fs /dev/data_vg/web_lv10.4 Swap — 交换空间
bash
# 查看当前 swap
swapon --show
free -h
# 创建 swap 文件(4GB)
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效(添加到 fstab)
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 调整 swappiness(越低越少使用 swap)
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10bash
$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 2.7Gi 156Mi 128Mi 999Mi 820Mi
Swap: 4.0Gi 247Mi 3.8Gi
$ swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 4G 247.8M -2