如何右移扩展分区释放空间扩容主分区?含Linux命令咨询
扩展分区右移并扩容主分区的完整解决方案
嘿,这是个典型的分区调整场景,我来一步步给你讲清楚怎么操作——不管是原理逻辑还是具体的Linux命令都给你安排明白!
一、核心逻辑:为什么要这么操作?
首先得明确两个关键点:
- 分区不能在挂载状态下修改:所以必须用Linux Live CD/USB启动系统,避免要调整的分区被系统占用。
- 扩展分区的移动本质是“删了重建”:直接移动扩展分区的操作很复杂,反而先删除扩展分区、扩容主分区,再把扩展分区重建到右侧空闲空间,是更稳妥的方案(前提是你备份了扩展分区里的逻辑分区数据)。
二、使用Parted命令完成操作的具体步骤
假设你的磁盘设备是/dev/sda(实际操作时替换成你的磁盘名,比如/dev/nvme0n1),先通过parted /dev/sda print free确认分区布局:主分区在左侧,中间是7GB空闲空间,扩展分区在空闲空间右侧。
前置准备
- 备份扩展分区内的所有数据:删除扩展分区会同时删除里面的所有逻辑分区,这一步绝对不能省!
- 进入Live环境:用Linux安装U盘/光盘启动,选择“试用Ubuntu”(或对应发行版的试用模式),确保没有挂载要修改的分区。
具体操作步骤
启动Parted交互模式:
sudo parted /dev/sda(加
sudo获取权限,输入你的密码即可)删除现有扩展分区:
先通过print命令确认扩展分区的编号(比如编号是2),然后执行:rm 2系统会提示确认,输入
yes即可。扩容主分区,合并7GB空闲空间:
确认主分区编号(比如编号是1),执行:resizepart 1这时会提示输入主分区的结束位置,你可以直接输入
100%(因为原来的7GB空闲空间紧挨着主分区右侧,输入100%会把主分区扩展到原扩展分区的起始位置);或者精确输入数值,比如原主分区结束在20GB,就输入27GB。重新创建扩展分区到最右侧:
执行:mkpart extended系统会提示输入起始位置(就是刚才主分区扩容后的结束位置,你可以直接按回车用默认值),然后输入结束位置为
100%,这样扩展分区就会占据原扩展分区的位置,完成“右移”的效果。恢复逻辑分区(如果需要):
如果你之前备份了逻辑分区的数据,现在可以重新创建逻辑分区:mkpart logical ext4 起始位置 结束位置然后格式化分区(比如用ext4格式):
mkfs.ext4 /dev/sda5(逻辑分区编号从
5开始,因为主分区+扩展分区占了1-4的编号范围)退出Parted:
quit
额外提醒
- 如果你的扩展分区里有多个逻辑分区,也可以用
gparted图形化工具操作,更直观,适合对命令行不太熟悉的用户——操作逻辑和命令行一致:先删除扩展分区,扩容主分区,再重建扩展分区。 - 操作完成后,重启系统进入原系统,用
df -h检查主分区的大小是否已经扩容成功。
内容的提问来源于stack exchange,提问作者Lucian Vidrascu
相关产品推荐
相关产品推荐

