核心原理
Linux合并分区本质是:删除第二个分区 → 扩展第一个分区 → 调整文件系统,仅支持相邻的物理分区(如sda1
和sda2
相邻,但sda1
和sda3
不相邻)。
准备工作
-
备份数据
使用rsync
或tar
备份分区数据到外部存储(操作失误可能导致数据丢失)。rsync -av /mnt/partition1/ /backup/partition1/ rsync -av /mnt/partition2/ /backup/partition2/
-
检查分区布局
使用lsblk
或fdisk -l
查看分区顺序:lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
确认目标分区相邻(如
sda2
在sda1
之后)。 -
卸载分区
卸载所有相关分区:sudo umount /dev/sda1 sudo umount /dev/sda2
方法1:使用GParted(图形界面推荐)
适用场景:桌面环境用户,操作直观。
- 安装GParted:
sudo apt install gparted # Debian/Ubuntu sudo dnf install gparted # Fedora
- 启动GParted:
sudo gparted
- 操作步骤:
- 右键点击后一个分区(如
sda2
)→ 选择 Delete(分区变为未分配)。 - 右键点击前一个分区(如
sda1
)→ 选择 Resize/Move。 - 拖动分区边界,覆盖未分配空间 → 点击 Resize。
- 点击 Apply(✔️图标)执行操作。
- 右键点击后一个分区(如
- 系统自动扩展文件系统(支持ext4、NTFS等)。
方法2:使用命令行(高级用户)
适用场景:服务器或无图形界面环境。
示例目标:合并sda1
(主分区)和sda2
(需删除的相邻分区)。
步骤1:删除第二个分区
sudo fdisk /dev/sda # 进入磁盘操作
- 输入
d
→ 选择分区号2
(删除sda2
)。 - 输入
w
保存更改(此时sda2
空间变为未分配)。
步骤2:扩展第一个分区
sudo fdisk /dev/sda
- 输入
d
→ 选择分区号1
(删除sda1
,不删数据)。 - 输入
n
新建分区:- 选择
Primary
→ 分区号1
。 - 起始扇区保持与原
sda1
一致(检查原值)。 - 结束扇区默认到磁盘末尾(覆盖未分配空间)。
- 选择
- 输入
w
保存。
步骤3:扩展文件系统
- ext4文件系统:
sudo e2fsck -f /dev/sda1 # 强制检查文件系统 sudo resize2fs /dev/sda1 # 扩展文件系统
- XFS文件系统:
sudo xfs_growfs /dev/sda1
- 其他文件系统:
使用对应工具(如ntfsresize
for NTFS)。
注意事项
- 分区必须相邻:若不相邻,需先用
gparted
移动分区(耗时且风险高)。 - 分区表类型:GPT分区需预留
BIOS boot
或EFI
分区空间。 - 系统分区:禁止合并正在运行的系统分区(需从Live USB启动操作)。
- 操作中断:断电或强制终止可能导致分区损坏。
- 文件系统兼容性:
resize2fs
仅支持ext2/3/4;其他系统需专用工具。
常见问题
-
Q:合并后数据会丢失吗?
A:仅第二个分区(被删除的)数据会丢失,第一个分区数据保留(但仍需提前备份)。 -
Q:无法合并非相邻分区怎么办?
A:使用GParted移动分区位置(需大量时间且风险极高),或备份数据后重新分区。 -
Q:合并后分区未扩展?
A:检查是否漏掉resize2fs
或xfs_growfs
步骤,文件系统需手动调整大小。
- 推荐工具:优先使用GParted(图形化操作更安全)。
- 关键步骤:备份 → 卸载 → 删后分区 → 扩前分区 → 调文件系统。
- 风险提示:操作涉及分区表修改,任何失误都可能导致数据不可逆丢失,务必提前备份。
引用说明:本文操作基于GNU Parted官方文档、Linux
fdisk
手册页及Filesystem Hierarchy Standard (FHS)标准,工具建议来自Ubuntu社区及Arch Linux Wiki的实践指南。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9540.html