Linux分区缩小分区大小操作指南
缩小分区是一项高风险操作,可能导致数据丢失,务必提前备份重要数据(如使用rsync或tar备份至外部存储)。以下是针对不同分区类型的详细步骤:
若分区处于挂载状态(如/home、/var),需先卸载。使用umount命令,例如:
sudo umount /dev/sda5 # 替换为目标分区路径
通过df -h确认分区已卸载(不再显示在列表中)。
使用e2fsck(适用于ext2/ext3/ext4)检查文件系统完整性,强制修复错误:
sudo e2fsck -f /dev/sda5 # 替换为目标分区路径
先缩小文件系统,再调整分区表,避免数据截断。使用resize2fs命令,指定目标大小(如4G):
sudo resize2fs /dev/sda5 4G # 缩小至4GB
注:若分区为根分区(无法卸载),需进入救援模式(如使用Live CD/USB启动),再执行上述步骤。
使用parted或fdisk修改分区大小:
sudo parted /dev/sda
(parted) resizepart 5 4GB # 将分区5缩小至4GB(编号需与fdisk一致)
(parted) quit
sudo fdisk /dev/sda
Command (m for help): p # 查看分区表,记录起始扇区(Start)
Command (m for help): d # 删除目标分区(如分区5)
Command (m for help): n # 新建分区
Partition type: p # 主分区
Partition number: 5 # 保持原编号
Start sector: [之前记录的值] # 必须与原起始扇区一致
End sector: [输入新大小对应的扇区,或直接输入+4G]
Command (m for help): w # 保存并退出
使用df -h查看分区大小,确认是否缩小至目标值;再用fdisk -l /dev/sda检查分区表是否正确。
LVM分区的缩小需通过逻辑卷(LV)→ 文件系统的顺序操作,步骤更严格:
若分区已挂载(如/home),先卸载:
sudo umount /dev/vg0/lv1 # 替换为逻辑卷路径(如/dev/mapper/vg-home)
sudo e2fsck -f /dev/vg0/lv1 # 替换为逻辑卷路径
使用resize2fs将文件系统缩小至目标大小(如30G):
sudo resize2fs /dev/vg0/lv1 30G
使用lvreduce命令,将逻辑卷缩小至目标大小(需小于等于文件系统大小):
sudo lvreduce -L 30G /dev/vg0/lv1 # 缩小至30GB
注:若逻辑卷正在使用,需添加
-f强制缩小(风险更高)。
重新挂载分区:
sudo mount /dev/vg0/lv1 /mnt/home # 替换为挂载点
df -h /mnt/home # 确认大小
lvdisplay /dev/vg0/lv1 # 检查逻辑卷大小
lsof | grep /mnt/point或fuser -km /mnt/point查找并终止占用进程。fdisk -l查看)。