Linux存储管理命令是系统管理员和开发人员日常工作中不可或缺的工具,它们用于管理磁盘分区、文件系统、挂载点、磁盘空间以及数据备份等关键任务,这些命令涵盖了从基础的查看磁盘信息到高级的文件系统操作,熟练掌握它们能够有效提升系统管理的效率和可靠性,以下将详细介绍Linux存储管理中常用的命令及其功能。

df
命令用于显示文件系统的磁盘空间使用情况,默认以KB为单位显示,通过df -h
选项,可以以人类可读的格式(如GB、MB)输出,更直观地查看各分区的使用率。df -h /dev/sda1
将显示指定分区的空间信息,而du
命令则用于估计文件或目录的磁盘使用量,du -sh /home
可以快速查看/home
目录的总大小,-s
表示汇总输出,-h
同样以人类可读格式显示,结合sort
和head
命令,如du -sh /* | sort -hr | head -n 10
,可以找出系统中占用空间最大的前10个目录。
在磁盘分区管理方面,fdisk
和parted
是两种主流工具。fdisk
是一款传统的分区工具,适用于MBR分区表,通过fdisk -l
可以列出所有磁盘及其分区信息,进入交互模式后,可以执行n
创建新分区、d
删除分区、w
保存更改等操作,而parted
支持GPT和MBR分区表,功能更强大,适合大容量磁盘管理。parted /dev/sdb
进入交互模式后,使用mkpart
创建分区,print
查看分区表,set
设置分区标志位,对于新创建的分区,需要格式化文件系统,mkfs
命令用于此目的,如mkfs.ext4 /dev/sdb1
将分区格式化为ext4文件系统,mkfs.xfs /dev/sdb1
则格式化为XFS文件系统。
挂载文件系统是使分区可用的关键步骤,mount
命令用于挂载文件系统,基本语法为mount 设备路径 挂载点
,例如mount /dev/sdb1 /mnt/data
,为使挂载永久生效,需编辑/etc/fstab
文件,添加类似/dev/sdb1 /mnt/data ext4 defaults 0 0
的条目。umount
命令用于卸载文件系统,可通过umount /mnt/data
或umount /dev/sdb1
执行,在挂载前,需确保挂载点目录存在,可通过mkdir /mnt/data
创建。
磁盘空间监控与维护也是存储管理的重要内容。lsblk
命令以树状结构显示块设备信息,包括设备名称、大小、挂载点等,lsblk -f
还可显示文件系统类型。dmesg | grep sd
可以查看内核识别磁盘设备的相关日志,对于文件系统检查,fsck
命令用于检测和修复文件系统错误,如fsck /dev/sdb1
,但需注意,该命令应在文件系统未挂载时使用,以避免数据损坏,当磁盘空间不足时,可使用ncdu
(需安装)等工具进行交互式磁盘使用分析,定位大文件或无用文件。

逻辑卷管理(LVM)提供了更灵活的磁盘管理方式,允许动态调整分区大小、创建快照等。pvcreate
用于创建物理卷,如pvcreate /dev/sdc1
;vgcreate
用于创建卷组,如vgcreate myvg /dev/sdc1
;lvcreate
用于创建逻辑卷,如lvcreate -L 10G -n mylv myvg
创建一个10GB的逻辑卷,LVM的优势在于可以在线扩展逻辑卷,通过lvextend -L +5G /dev/myvg/mylv
扩展容量后,需使用resize2fs
(针对ext4)或xfs_growfs
(针对XFS)调整文件系统大小,快照功能可通过lvcreate -s -L 2G -n snaplv /dev/myvg/mylv
创建,用于数据备份。
在数据备份与恢复方面,dd
命令是低级复制工具,可用于磁盘克隆,如dd if=/dev/sda of=/dev/sdb bs=4M
将磁盘sda
克隆到sdb
,bs
选项设置块大小以提高效率。tar
命令用于文件归档,tar -czvf backup.tar.gz /home
将/home
目录压缩备份为backup.tar.gz
,-x
选项用于解压。rsync
命令适合增量备份,如rsync -avz /home/ /backup/
将/home
目录同步到/backup
,-a
归档模式,-v
显示详情,-z
压缩传输。
命令 | 功能描述 | 常用选项示例 |
---|---|---|
df | 查看文件系统磁盘空间使用情况 | df -h (人类可读格式) |
du | 估计文件或目录的磁盘使用量 | du -sh (汇总显示人类可读格式) |
fdisk | 磁盘分区工具(MBR) | fdisk -l (列出分区) |
parted | 磁盘分区工具(支持GPT/MBR) | parted /dev/sdb (交互模式) |
mkfs | 格式化文件系统 | mkfs.ext4 (格式化为ext4) |
mount | 挂载文件系统 | mount /dev/sdb1 /mnt/data |
umount | 卸载文件系统 | umount /mnt/data |
lsblk | 显示块设备信息(树状结构) | lsblk -f (显示文件系统类型) |
fsck | 检测和修复文件系统错误 | fsck /dev/sdb1 |
pvcreate | 创建LVM物理卷 | pvcreate /dev/sdc1 |
vgcreate | 创建LVM卷组 | vgcreate myvg /dev/sdc1 |
lvcreate | 创建LVM逻辑卷 | lvcreate -L 10G -n mylv myvg |
dd | 低级复制/磁盘克隆 | dd if=/dev/sda of=/dev/sdb |
tar | 文件归档/压缩 | tar -czvf backup.tar.gz /home |
rsync | 增量备份/文件同步 | rsync -avz /home/ /backup/ |
相关问答FAQs:
-
问:如何解决“device is busy”导致无法卸载分区的问题?
答:当系统提示“device is busy”时,通常表示有进程正在使用该分区,可通过以下步骤解决:使用fuser -km /mnt/data
命令强制终止访问该分区的所有进程(-k
表示终止,-m
表示挂载点或设备);再次尝试umount /mnt/data
,如果仍无法卸载,可检查是否有后台服务占用该分区,或尝试在单用户模式下卸载,确保没有用户在挂载点目录下操作文件。(图片来源网络,侵删) -
问:LVM逻辑卷扩容后,为什么文件系统大小未自动增加?
答:LVM逻辑卷扩容后,文件系统大小不会自动调整,需手动执行文件系统扩展命令,对于ext4文件系统,使用resize2fs /dev/myvg/mylv
;对于XFS文件系统,使用xfs_growfs /mnt/mountpoint
(挂载点路径),操作前需确保逻辑卷已通过lvextend
命令扩容,且文件系统处于挂载状态,执行后,可通过df -h
验证文件系统容量是否更新。