Linux磁盘管理
Linux磁盘管理
查看磁盘信息
# 查看所有磁盘
lsblk
# 查看磁盘详情
sudo fdisk -l
# 查看磁盘使用情况
df -h
# 查看目录大小
du -sh /var/log
du -sh /* | sort -rh | head -10
磁盘分区
MBR分区
# 启动fdisk
sudo fdisk /dev/sdb
# 常用命令
# n - 新建分区
# d - 删除分区
# p - 打印分区表
# w - 保存并退出
# q - 不保存退出
GPT分区
# 使用gdisk
sudo gdisk /dev/sdb
# 或使用parted
sudo parted /dev/sdb
使用 parted 命令行分区
# 启动parted
sudo parted /dev/sdb
# 创建GPT分区表
(parted) mklabel gpt
# 创建分区
(parted) mkpart primary ext4 0% 100%
# 退出
(parted) quit
格式化文件系统
# ext4格式化
sudo mkfs.ext4 /dev/sdb1
# xfs格式化
sudo mkfs.xfs /dev/sdb1
# 指定标签
sudo mkfs.ext4 -L "DataDisk" /dev/sdb1
挂载文件系统
临时挂载
# 创建挂载点
sudo mkdir -p /mnt/data
# 挂载
sudo mount /dev/sdb1 /mnt/data
# 卸载
sudo umount /mnt/data
# 查看挂载
mount | grep sdb
永久挂载
# 查看UUID
sudo blkid /dev/sdb1
# 编辑/etc/fstab
sudo vim /etc/fstab
# 添加行
UUID=xxxx-xxxx /mnt/data ext4 defaults,noatime 0 2
fstab字段说明
| 字段 | 说明 |
|---|---|
| 设备 | 设备名或UUID |
| 挂载点 | 目录路径 |
| 文件系统 | ext4, xfs等 |
| 挂载选项 | defaults, noatime等 |
| dump备份 | 0=不备份 |
| fsck检查 | 0=不检查 |
LVM管理
LVM(Logical Volume Manager)提供灵活的磁盘管理。
基本概念
- PV(Physical Volume):物理卷
- VG(Volume Group):卷组
- LV(Logical Volume):逻辑卷
创建LVM
# 创建物理卷
sudo pvcreate /dev/sdb1 /dev/sdc1
# 创建卷组
sudo vgcreate datavg /dev/sdb1 /dev/sdc1
# 创建逻辑卷
sudo lvcreate -n datalv -L 50G datavg
# 格式化并挂载
sudo mkfs.ext4 /dev/datavg/datalv
sudo mkdir /mnt/data
sudo mount /dev/datavg/datalv /mnt/data
扩展LVM
# 扩展逻辑卷
sudo lvextend -L +10G /dev/datavg/datalv
# 扩展文件系统
sudo resize2fs /dev/datavg/datalv
# XFS: sudo xfs_growfs /mnt/data
Swap管理
# 查看swap
swapon --show
# 创建swap文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久启用
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 调整swap使用倾向
sudo sysctl vm.swappiness=10
实践:添加新磁盘
#!/bin/bash
# 添加新磁盘完整流程
# 1. 查看新磁盘
lsblk
# 2. 分区
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%
# 3. 格式化
sudo mkfs.ext4 /dev/sdb1
# 4. 挂载
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
# 5. 永久挂载
echo 'UUID=$(blkid -s UUID -o value /dev/sdb1) /data ext4 defaults,noatime 0 2' | sudo tee -a /etc/fstab
echo "完成!"
总结
磁盘管理是系统运维的基础技能。掌握磁盘分区、格式化、挂载和LVM管理,能够有效管理服务器存储资源。