从RAID1模式的/home分区腾挪空间创建新存储分区的配置方法咨询
从RAID1模式的/home分区腾挪空间创建新存储分区的配置方法咨询
首先先把你当前的磁盘分区/RAID状态贴出来方便参考:
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 4G 0 loop /var/tmp nvme0n1 259:0 0 3.5T 0 disk ├─nvme0n1p1 259:1 0 256M 0 part │ └─md0 9:0 0 256M 0 raid1 /boot/efi ├─nvme0n1p2 259:2 0 8G 0 part │ └─md1 9:1 0 8G 0 raid1 [SWAP] ├─nvme0n1p3 259:3 0 2G 0 part │ └─md2 9:2 0 2G 0 raid1 /boot ├─nvme0n1p4 259:4 0 300G 0 part │ └─md3 9:3 0 299.9G 0 raid1 / └─nvme0n1p5 259:5 0 3.2T 0 part └─md4 9:4 0 3.2T 0 raid1 /home nvme1n1 259:6 0 3.5T 0 disk ├─nvme1n1p1 259:7 0 256M 0 part │ └─md0 9:0 0 256M 0 raid1 /boot/efi ├─nvme1n1p2 259:8 0 8G 0 part │ └─md1 9:1 0 8G 0 raid1 [SWAP] ├─nvme1n1p3 259:9 0 2G 0 part │ └─md2 9:2 0 2G 0 raid1 /boot ├─nvme1n1p4 259:10 0 300G 0 part │ └─md3 9:3 0 299.9G 0 raid1 / └─nvme1n1p5 259:11 0 3.2T 0 part └─md4 9:4 0 3.2T 0 raid1 /home
看你的配置,是双NVMe盘做了全系统的RAID1冗余,/home挂在md4这个RAID1卷上。下面分带RAID冗余和不带RAID两种方案给你讲操作步骤,优先推荐带RAID的,毕竟冗余能降低数据丢失风险:
一、保留RAID1模式创建新分区(推荐)
这个方案会让新分区也保持RAID1冗余,和现有系统的冗余策略一致:
第一步:先备份/home数据!
虽然RAID1有冗余,但分区操作属于高风险操作,一定要先把/home里的重要数据备份到外部存储(比如USB硬盘)。用rsync备份的命令参考:rsync -av /home/ /path/to/external/backup/home/第二步:卸载/home分区
先切换到root用户,然后确保没有普通用户在使用/home(可以用who命令查看,让用户退出或者直接重启到单用户模式更稳妥),然后执行卸载:umount /home第三步:缩小现有RAID1的/home卷
- 先缩小RAID卷上的文件系统(假设你的/home是ext4格式,XFS不支持缩小,要是XFS的话只能备份后重建分区):
resize2fs /dev/md4 1.7T # 原来3.2T,减去1.5T,留1.7T给/home,也可以多留几十G余量 - 停止RAID1卷:
mdadm --stop /dev/md4 - 分别修改两个NVMe盘上的p5分区:
先操作第一个盘:
在fdisk交互界面:fdisk /dev/nvme0n1- 输入
d删除p5分区 - 输入
n创建新的p5分区,类型选主分区,起始位置尽量和原来的一致,结束位置设为1.7T左右 - 输入
w保存修改
然后同样操作第二个盘fdisk /dev/nvme1n1,删除p5再创建同样大小的新p5。
- 输入
- 重新组装RAID1卷:
用mdadm --assemble /dev/md4 /dev/nvme0n1p5 /dev/nvme1n1p5mdadm --detail /dev/md4检查RAID状态,确认同步完成后再继续。 - 调整文件系统适配新的分区大小:
resize2fs /dev/md4
- 先缩小RAID卷上的文件系统(假设你的/home是ext4格式,XFS不支持缩小,要是XFS的话只能备份后重建分区):
第四步:创建新的RAID1分区
- 在两个NVMe盘上分别创建新的分区(比如p6):
同样用fdisk /dev/nvme0n1和fdisk /dev/nvme1n1,创建大小为1.5T的主分区p6,保存修改。 - 创建新的RAID1卷:
等待RAID同步完成(可以用mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/nvme0n1p6 /dev/nvme1n1p6cat /proc/mdstat查看进度)。 - 格式化新分区:
mkfs.ext4 /dev/md5 # 也可以换成你需要的文件系统,比如xfs
- 在两个NVMe盘上分别创建新的分区(比如p6):
第五步:挂载新分区
- 创建挂载点:
mkdir /data # 可以换成你想要的挂载目录名 - 编辑
/etc/fstab添加自动挂载条目,确保重启后自动挂载:
添加一行:/dev/md5 /data ext4 defaults 0 2 - 手动挂载测试:
mount /data
- 创建挂载点:
第六步:恢复/home数据并重新挂载
rsync -av /path/to/external/backup/home/ /home/ mount /home
二、不使用RAID创建新分区(不推荐)
如果不在乎新分区的冗余,只想快速划出空间,可以用这个方案:
前面的备份、卸载/home、缩小RAID1卷的步骤和上面完全一样,之后的操作改为:
- 创建独立分区
只需要在其中一个NVMe盘上创建1.5T的分区(比如nvme0n1p6),格式化:mkfs.ext4 /dev/nvme0n1p6 - 挂载新分区
同样创建挂载点,编辑/etc/fstab添加条目:
然后挂载即可。/dev/nvme0n1p6 /data ext4 defaults 0 2 - 最后恢复/home数据并挂载/home。
一些重要提醒
- 如果你的/home是XFS文件系统,XFS不支持缩小操作,只能先备份数据,然后删除md4和两个盘的p5分区,重新创建更小的p5分区并组装RAID1,格式化后恢复数据,再创建新分区。
- 操作fdisk的时候一定要仔细,别误删了/boot、/或者swap的分区,不然系统直接挂掉。
- RAID同步过程可能需要一段时间,尤其是大磁盘,耐心等同步完成再做后续操作。
备注:内容来源于stack exchange,提问作者Anoop Kumar
相关产品推荐
相关产品推荐

