在Linux系统中,磁盘管理是系统管理员必须掌握的核心技能之一。以下是基本概念:
设备命名:
分区表示:
# 查看所有磁盘及分区
fdisk -l
# 或使用lsblk查看块设备
lsblk
# 更详细的信息
lsblk -f
# 对/dev/sdb进行分区
fdisk /dev/sdb
fdisk常用命令:
- n
:新建分区
- d
:删除分区
- p
:打印分区表
- t
:更改分区类型
- w
:保存并退出
- q
:不保存退出
parted /dev/sdb
parted常用命令:
- mklabel
:创建分区表(msdos或gpt)
- mkpart
:创建分区
- print
:显示分区信息
- rm
:删除分区
- quit
:退出
# 格式化为ext4
mkfs.ext4 /dev/sdb1
# 格式化为xfs
mkfs.xfs /dev/sdb1
# 格式化为fat32
mkfs.vfat -F 32 /dev/sdb1
# 格式化为NTFS
mkfs.ntfs /dev/sdb1
# 检查ext4文件系统
fsck.ext4 /dev/sdb1
# 检查xfs文件系统
xfs_repair /dev/sdb1
# 创建挂载点
mkdir /mnt/data
# 挂载分区
mount /dev/sdb1 /mnt/data
/etc/fstab格式:
<设备> <挂载点> <文件系统类型> <挂载选项> <dump选项> <fsck顺序>
示例:
/dev/sdb1 /mnt/data ext4 defaults 0 0
或使用UUID(推荐):
# 获取UUID
blkid /dev/sdb1
# 然后使用UUID格式
UUID=xxxx-xxxx-xxxx /mnt/data ext4 defaults 0 0
defaults
:默认选项(rw,suid,dev,exec,auto,nouser,async)ro
:只读挂载noexec
:禁止执行二进制文件nosuid
:禁止suid/sgid位生效nodev
:禁止设备文件umount /mnt/data
# 如果设备忙,可以使用-l选项强制卸载
umount -l /mnt/data
# 对于ext2/3/4文件系统
resize2fs /dev/sdb1
# 对于xfs文件系统(需要先卸载)
xfs_growfs /mount/point
# 创建物理卷
pvcreate /dev/sdb1
# 创建卷组
vgcreate vg_data /dev/sdb1
# 创建逻辑卷
lvcreate -L 10G -n lv_data vg_data
# 格式化并挂载
mkfs.xfs /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /mnt/data
# 创建交换分区
mkswap /dev/sdb2
swapon /dev/sdb2
# 永久生效,添加到/etc/fstab
/dev/sdb2 none swap sw 0 0
设备忙无法卸载:
# 查看哪个进程在使用
lsof /mnt/data
# 或
fuser -vm /mnt/data
fstab错误导致无法启动: 在启动时进入单用户模式,修复fstab文件
磁盘空间不足:
# 查看磁盘使用情况
df -h
# 查看目录大小
du -sh /*
文件系统损坏:
# 对于ext文件系统
fsck -y /dev/sdb1
# 对于xfs文件系统
xfs_repair /dev/sdb1
通过掌握这些磁盘管理技能,您可以有效地在Linux系统中管理存储资源,确保数据的安全和系统的稳定运行。