将 `/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

相关推荐
StarsGreen1 小时前
libva在intel平台上的前端流程简介
linux
坤坤子吖4 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
Felven6 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
莫晓燚6 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
咋的啥名都用不了呢~6 小时前
Linux项目部署5(安装Nginx的插件)
linux
CodeYp20196 小时前
第11讲:应用层协议 HTTP
linux·http
爱和冰阔落6 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
我是koten12 小时前
【运维杂谈】K8s遇到Terminating的名称空间删除不了怎么办?(解决方案亲测有效)
linux·运维·服务器·云原生·kubernetes·k8s·名称空间
2601_9679873720 小时前
安装 Redis 或 Redis Stack
linux·windows·redis·macos·安装
feng_you_ying_li20 小时前
linux之数据链路层
linux·网络·智能路由器