将 `/data` 盘中的所有数据迁移到 `/home/user/data` 目录下,然后将该磁盘与另一块磁盘组建 RAID 1

在 Ubuntu 24.04 中,将 /data 盘中的所有数据迁移到 /home/user/data 目录下,然后将该磁盘与另一块磁盘组建 RAID 1,并重新挂载到 /data,可以按照以下详细步骤操作:


⚠️ 前提假设

  • 你当前的数据盘挂载在 /data,对应磁盘为 /dev/sdX1(如 /dev/sdb1
  • 你有一块新的空磁盘 /dev/sdY(如 /dev/sdc)用于组建 RAID 1
  • 新挂载目标是 /data
  • 用户目录是 /home/user/data
  • 你拥有 root 权限

🧩 步骤总览

  1. [迁移 /data 中的数据到 /home/user/data](#迁移 /data 中的数据到 /home/user/data)
  2. [卸载原来的 /data 盘](#卸载原来的 /data 盘)
  3. [清空原 /data 磁盘和新磁盘](#清空原 /data 磁盘和新磁盘)
  4. [创建 RAID 1 设备](#创建 RAID 1 设备)
  5. [格式化并挂载 RAID 设备](#格式化并挂载 RAID 设备)
  6. [将数据迁移回 RAID,更新 /etc/fstab](#将数据迁移回 RAID,更新 /etc/fstab)

✅ 步骤 1:迁移 /data 内容到 /home/user/data

bash 复制代码
sudo mkdir -p /home/user/data
sudo rsync -aHAXv /data/ /home/user/data/

确保迁移完整:

bash 复制代码
diff -r /data /home/user/data

✅ 步骤 2:卸载原 /data 分区

bash 复制代码
sudo umount /data

你可以先查看挂载信息确认设备名:

bash 复制代码
df -h | grep /data
lsblk

✅ 步骤 3:清空两个磁盘中的旧信息(危险操作!)

假设你要使用 /dev/sdb/dev/sdc 组成 RAID 1:

bash 复制代码
# 清除 RAID 或分区表信息
sudo mdadm --zero-superblock /dev/sdb
sudo mdadm --zero-superblock /dev/sdc

# 可选:彻底清除分区信息
sudo wipefs -a /dev/sdb
sudo wipefs -a /dev/sdc

✅ 步骤 4:使用 mdadm 创建 RAID 1

bash 复制代码
sudo apt update
sudo apt install -y mdadm

然后创建 RAID 1:

bash 复制代码
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

查看创建情况:

bash 复制代码
cat /proc/mdstat

保存 RAID 配置:

bash 复制代码
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u

✅ 步骤 5:格式化并挂载 RAID 设备

bash 复制代码
# 格式化为 ext4 文件系统
sudo mkfs.ext4 /dev/md0

# 创建挂载点
sudo mkdir /data

# 挂载
sudo mount /dev/md0 /data

查看是否挂载成功:

bash 复制代码
df -h | grep /data

✅ 步骤 6:将数据迁移回 /data 并设置自动挂载

将数据从 /home/user/data 移回 /data

bash 复制代码
sudo rsync -aHAXv /home/user/data/ /data/

获取 UUID 并写入 /etc/fstab 以便自动挂载

bash 复制代码
sudo blkid /dev/md0

输出类似:

复制代码
/dev/md0: UUID="xxxxx-xxxx-xxxx" TYPE="ext4"

编辑 /etc/fstab

bash 复制代码
sudo nano /etc/fstab

添加:

fstab 复制代码
UUID=xxxxx-xxxx-xxxx /data ext4 defaults,nofail,discard 0 0

保存并测试挂载:

bash 复制代码
sudo mount -a

🧪 检查 RAID 状态

bash 复制代码
cat /proc/mdstat
sudo mdadm --detail /dev/md0

🧹 可选:删除中间数据

bash 复制代码
sudo rm -rf /home/user/data

相关推荐
mCell1 小时前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
杰克逊的日记1 小时前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏2 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔2 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula2 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-3 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw3 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
van叶~5 小时前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡6 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
zoulingzhi_yjs6 小时前
haproxy配置详解
linux·云原生