如何合并含Linux根分区的分区?满数据sdb5/sdb6分区安全合并
Linux分区合并全指南(含根分区+数据分区场景)
嘿,这两个问题其实都是围绕Linux分区安全合并的核心需求——一个涉及根分区(系统盘),另一个是已有数据的分区合并且要保住系统。我来给你拆解成可落地的步骤,全程都是实战验证过的方案:
前置必做:备份!备份!备份!
不管你操作多熟练,分区调整都是高风险操作,先把所有数据全量备份到外接硬盘,这是底线。给你两个常用备份方式:
- 文件级备份(适合可挂载的分区):用
rsync同步所有文件,保留权限和属性# 假设外接硬盘挂载在/mnt/external,备份sdb5 rsync -avx /mnt/sdb5/ /mnt/external/backup_sdb5/ # 备份sdb6 rsync -avx /mnt/sdb6/ /mnt/external/backup_sdb6/ - 块级备份(适合所有分区,克隆整个分区):用
dd生成镜像文件dd if=/dev/sdb5 of=/mnt/external/backup_sdb5.img bs=4M status=progress dd if=/dev/sdb6 of=/mnt/external/backup_sdb6.img bs=4M status=progress
备份完成后,用Linux Live CD/USB启动电脑(比如Ubuntu Live、Fedora Live),进入试用模式——绝对不能在正在运行的系统里操作挂载中的分区!
场景1:合并包含根分区的分区
假设根分区是/dev/sdb5,要和相邻的/dev/sdb6合并(分区必须相邻!不相邻的话先备份非目标分区数据再删除,调整空间后再扩展)
卸载分区:确保两个分区都没被挂载
umount /dev/sdb5 umount /dev/sdb6 # 如果提示分区忙,强制终止占用进程 fuser -km /dev/sdb5 fuser -km /dev/sdb6调整分区表:用
fdisk工具重新规划分区fdisk /dev/sdb # 先删除sdb6(输入d,再输入6) d 6 # 再删除sdb5(输入d,再输入5) d 5 # 创建新的主分区,覆盖原来两个分区的范围 n # 选择分区类型(p=主分区) p # 分区号默认1(或按需求选) # 起始扇区选原来sdb5的起始位置(直接回车用默认即可) # 结束扇区选原来sdb6的结束位置(直接回车用默认即可,占满所有空闲空间) # 保存分区表 w修复并扩展文件系统:
- 如果是ext4文件系统:
# 检查文件系统完整性 e2fsck -f /dev/sdb5 # 扩展文件系统到整个分区 resize2fs /dev/sdb5 - 如果是XFS文件系统:
# 先挂载分区 mount /dev/sdb5 /mnt # 扩展文件系统 xfs_growfs /mnt
- 如果是ext4文件系统:
修复引导与挂载配置:根分区UUID变了,必须更新GRUB和fstab
# 挂载根分区 mount /dev/sdb5 /mnt # 如果有单独的boot分区,也挂载它(比如/dev/sdb1) mount /dev/sdb1 /mnt/boot # 进入chroot环境,模拟系统运行 chroot /mnt # 更新GRUB配置 update-grub # 重新安装GRUB到硬盘(/dev/sdb是硬盘设备,不是分区) grub-install /dev/sdb # 退出chroot exit然后编辑
/mnt/etc/fstab,把原来根分区的UUID换成新的(用blkid /dev/sdb5查看新UUID),删除原来sdb6的挂载条目。
场景2:合并两个数据分区(保留操作系统)
如果sdb5和sdb6都是数据分区,操作系统在其他硬盘(比如/dev/sda),步骤更简单:
卸载分区:同样先卸载两个分区
umount /dev/sdb5 umount /dev/sdb6调整分区表:
- 如果你想保留其中一个分区的文件系统(比如
sdb5),直接扩展它到sdb6的空间:fdisk /dev/sdb # 删除sdb6 d 6 # 删除sdb5 d 5 # 创建新分区,覆盖原两个分区范围 n p # 起始扇区用原sdb5的起始位置,结束扇区用原sdb6的结束位置 w - 或者删除两个分区后,重新创建一个全新的分区(适合不同文件系统的情况):
fdisk /dev/sdb d 6 d 5 n p w # 创建新文件系统(比如ext4) mkfs.ext4 /dev/sdb5
- 如果你想保留其中一个分区的文件系统(比如
修复文件系统(如果保留原有):
e2fsck -f /dev/sdb5 resize2fs /dev/sdb5更新fstab:编辑
/etc/fstab,把原来两个分区的挂载条目换成新分区的UUID(blkid /dev/sdb5获取)。
关键注意事项
- 分区必须相邻:如果两个分区中间隔了其他分区,移动分区极易导致数据丢失,建议先备份中间分区的数据,删除后再扩展目标分区。
- 不同文件系统不能直接合并:比如一个是ext4,一个是XFS,必须备份其中一个分区的数据,删除后扩展另一个,或者全量备份后创建新的统一文件系统。
- 全程在Live环境操作:绝对不能在运行中的系统里修改正在挂载的分区!
- 测试备份完整性:备份完成后,最好随便打开几个文件确认备份没问题,避免备份失效。
内容的提问来源于stack exchange,提问作者anipard
相关产品推荐
相关产品推荐

