You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并含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合并(分区必须相邻!不相邻的话先备份非目标分区数据再删除,调整空间后再扩展)

  1. 卸载分区:确保两个分区都没被挂载

    umount /dev/sdb5
    umount /dev/sdb6
    # 如果提示分区忙,强制终止占用进程
    fuser -km /dev/sdb5
    fuser -km /dev/sdb6
    
  2. 调整分区表:用fdisk工具重新规划分区

    fdisk /dev/sdb
    # 先删除sdb6(输入d,再输入6)
    d
    6
    # 再删除sdb5(输入d,再输入5)
    d
    5
    # 创建新的主分区,覆盖原来两个分区的范围
    n
    # 选择分区类型(p=主分区)
    p
    # 分区号默认1(或按需求选)
    # 起始扇区选原来sdb5的起始位置(直接回车用默认即可)
    # 结束扇区选原来sdb6的结束位置(直接回车用默认即可,占满所有空闲空间)
    # 保存分区表
    w
    
  3. 修复并扩展文件系统:

    • 如果是ext4文件系统:
      # 检查文件系统完整性
      e2fsck -f /dev/sdb5
      # 扩展文件系统到整个分区
      resize2fs /dev/sdb5
      
    • 如果是XFS文件系统:
      # 先挂载分区
      mount /dev/sdb5 /mnt
      # 扩展文件系统
      xfs_growfs /mnt
      
  4. 修复引导与挂载配置:根分区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),步骤更简单:

  1. 卸载分区:同样先卸载两个分区

    umount /dev/sdb5
    umount /dev/sdb6
    
  2. 调整分区表:

    • 如果你想保留其中一个分区的文件系统(比如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
      
  3. 修复文件系统(如果保留原有):

    e2fsck -f /dev/sdb5
    resize2fs /dev/sdb5
    
  4. 更新fstab:编辑/etc/fstab,把原来两个分区的挂载条目换成新分区的UUID(blkid /dev/sdb5获取)。

关键注意事项

  • 分区必须相邻:如果两个分区中间隔了其他分区,移动分区极易导致数据丢失,建议先备份中间分区的数据,删除后再扩展目标分区。
  • 不同文件系统不能直接合并:比如一个是ext4,一个是XFS,必须备份其中一个分区的数据,删除后扩展另一个,或者全量备份后创建新的统一文件系统。
  • 全程在Live环境操作:绝对不能在运行中的系统里修改正在挂载的分区!
  • 测试备份完整性:备份完成后,最好随便打开几个文件确认备份没问题,避免备份失效。

内容的提问来源于stack exchange,提问作者anipard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:02:25