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

运行中系统Raid1配置故障:无法将/home与/var分区加入阵列

运行中系统Raid1配置故障:无法将/home与/var分区加入阵列

嘿,我看你这是在给运行中的系统搭RAID1,结果卡在/home和/var分区没法加入阵列了——这个问题我碰到过好多次,核心原因很简单:你要加的/dev/sda5和/dev/sda6现在正被系统挂载着,处于「忙(busy)」状态,mdadm自然没法操作它们。咱们一步步来解决:

先明确现状

从你给出的设备信息和RAID状态来看:

  • /dev/md0(根分区)已经正常搭建RAID1,双盘同步没问题
  • /dev/md127(对应/home)和/dev/md2(对应/var)现在都是单盘的RAID1阵列,且处于只读状态,还差sda5和sda6没加进去
  • 目前sda5还挂载在/home,sda6挂载在/var,这就是执行mdadm /dev/md127 -a /dev/sda5时提示Device or resource busy的原因

解决步骤(重中之重:先备份数据!)

不管做什么磁盘操作,先把/home和/var的所有数据备份到外部存储或者临时目录,比如用rsync:

# 备份/home
rsync -avx /home/ /mnt/external_drive/home_backup/
# 备份/var
rsync -avx /var/ /mnt/external_drive/var_backup/

一、处理/home分区(对应md127)

  1. 先把空的md127临时挂载,把原/home的数据同步过去:
    mkdir /mnt/md127
    mount /dev/md127 /mnt/md127
    rsync -avx /home/ /mnt/md127/
    
  2. 修改/etc/fstab,把/home的挂载点从sda5改成md127(推荐用UUID更稳定,先查UUID:blkid /dev/md127):
    把原来类似/dev/sda5 /home ext4 defaults 0 2的行,替换成:
    UUID=你的md127UUID /home ext4 defaults 0 2
    
  3. 卸载正在使用的/home和临时挂载的md127:
    umount /home
    umount /mnt/md127
    
    如果卸载失败,说明有进程占用/home,用fuser -m /home查看占用进程,临时终止它们;或者更稳妥的方式是用Linux Live镜像(比如Ubuntu Server Live)启动系统,在不挂载系统分区的环境下操作。
  4. 现在可以把sda5加入md127了:
    mdadm /dev/md127 -a /dev/sda5
    
  5. 用watch cat /proc/mdstat查看同步进度,等进度条走完,阵列就变成双盘正常状态了。

二、处理/var分区(对应md2)

步骤和/home类似,但/var被更多系统进程占用(比如日志、数据库),大概率没法直接卸载,推荐用Live CD/USB启动系统操作:

  1. 用Live系统启动后,先挂载md2和原sda6:
    mkdir /mnt/md2 /mnt/sda6
    mount /dev/md2 /mnt/md2
    mount /dev/sda6 /mnt/sda6
    
  2. 把sda6的/var数据同步到md2:
    rsync -avx /mnt/sda6/ /mnt/md2/
    
  3. 修改系统的/etc/fstab(需要先挂载根分区,比如mount /dev/md0 /mnt/root,然后编辑/mnt/root/etc/fstab),把/var的挂载点改成md2:
    替换原来的/dev/sda6 /var ext4 defaults 0 2为:
    UUID=你的md2UUID /var ext4 defaults 0 2
    
  4. 卸载sda6和md2:
    umount /mnt/sda6
    umount /mnt/md2
    
  5. 将sda6加入md2阵列:
    mdadm /dev/md2 -a /dev/sda6
    
  6. 同样用watch cat /proc/mdstat等待同步完成。

后续验证

同步完成后重启系统,执行以下命令确认状态:

  • df -h:检查/home和/var是否正确挂载在md127和md2上
  • mdadm --detail /dev/md127和mdadm --detail /dev/md2:查看阵列状态,应该显示[UU],代表双盘正常
  • 最后别忘了更新mdadm的配置文件,确保系统重启后能识别阵列:
    mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    

备注:内容来源于stack exchange,提问作者codelearner1029

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:49:30