← 返回首页
💾

Linux磁盘管理

📂 devops ⏱ 2 min 299 words

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)提供灵活的磁盘管理。

基本概念

创建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管理,能够有效管理服务器存储资源。