Raid 0分区碎片整理及分区合并相关技术咨询
Raid 0分区碎片整理及分区合并相关技术咨询
首先给你把核心问题讲明白:
- sda3满了之后,系统绝对不会自动用sda4的空间。这俩是完全独立的挂载分区,文件只会存在各自的分区里,当sda3被填满时,再往里面写文件会直接弹出“磁盘空间不足”的错误,不会自动切换到sda4。
- 要不要合并?全看你的使用习惯:如果想把8TB空间当成一个整体来用,不用手动操心把文件放到哪个分区,那合并很有必要;如果能接受分门别类存文件(比如把大体积的媒体文件、备份文件放到sda4,系统或常用文件留在sda3),那保持分开也没问题。
接下来重点说无损合并sda3数据的靠谱方案——用LVM(逻辑卷管理)来整合这两个Raid0分区,步骤如下:
前提说明
假设sda3是你正在用的分区(比如挂载在/或者/data),sda4是刚建好的空Raid0分区。刚好sda4的4TB空间能装下sda3的所有数据,这是操作的基础。
步骤1:把sda3的数据备份到sda4
- 先把sda4挂载到临时目录,比如
/mnt/temp:sudo mount /dev/sda4 /mnt/temp - 用
rsync完整复制sda3的数据到sda4:- 如果sda3是根分区,要排除系统虚拟目录(这些目录是临时生成的,不需要复制):
sudo rsync -avx --exclude='/proc/*' --exclude='/sys/*' --exclude='/dev/*' --exclude='/mnt/*' --exclude='/tmp/*' / /mnt/temp/ - 如果sda3是普通数据分区(比如挂载在
/data),直接复制就行:sudo rsync -avx /data/ /mnt/temp/
- 如果sda3是根分区,要排除系统虚拟目录(这些目录是临时生成的,不需要复制):
- 复制完后,手动点开几个重要文件(比如文档、配置文件)确认一下,确保数据没丢没坏。
步骤2:将两个分区转为LVM逻辑卷
- 卸载sda3和sda4:
如果卸载sda3时提示“设备忙”,可以尝试进入单用户模式操作,或者用Ubuntu Live CD启动系统再处理。sudo umount /dev/sda3 sudo umount /dev/sda4 - 把两个分区初始化为LVM物理卷:
sudo pvcreate /dev/sda3 sudo pvcreate /dev/sda4 - 创建一个卷组(名字可以自己取,比如
storage_vg):sudo vgcreate storage_vg /dev/sda3 /dev/sda4 - 创建逻辑卷,用掉卷组里的全部空间:
sudo lvcreate -l 100%FREE -n main_lv storage_vg - 格式化逻辑卷为你原来用的文件系统(比如ext4):
sudo mkfs.ext4 /dev/storage_vg/main_lv
步骤3:恢复数据并更新系统配置
- 把新的逻辑卷挂载到临时目录:
sudo mount /dev/storage_vg/main_lv /mnt/new - 把之前备份到
/mnt/temp的数据复制回逻辑卷:sudo rsync -avx /mnt/temp/ /mnt/new/ - 更新
/etc/fstab,让系统开机自动挂载逻辑卷:- 先获取逻辑卷的UUID:
sudo blkid /dev/storage_vg/main_lv - 编辑
/etc/fstab,把原来sda3的挂载项替换成逻辑卷的UUID,比如:UUID=xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx / ext4 defaults 0 1
- 先获取逻辑卷的UUID:
- 重启系统,确认逻辑卷正常挂载,所有数据都能正常打开。
重要提醒
- 虽然整个流程是无损的,但如果有条件,操作前最好再做一份离线备份(比如外接硬盘),以防意外断电或操作失误搞砸数据。
- 如果你的Raid0是用
mdadm创建的软Raid,那上面步骤里的/dev/sda3、/dev/sda4要换成对应的软Raid设备(比如/dev/md0、/dev/md1),操作逻辑完全一样。
备注:内容来源于stack exchange,提问作者Lutfu Kacaran
相关产品推荐
相关产品推荐

