![在linux中合并分区而不丢失数据](https://linux22.com/image/174066/%E5%9C%A8linux%E4%B8%AD%E5%90%88%E2%80%8B%E2%80%8B%E5%B9%B6%E5%88%86%E5%8C%BA%E8%80%8C%E4%B8%8D%E4%B8%A2%E5%A4%B1%E6%95%B0%E6%8D%AE.png)
我使用的是 CentOS 7。我的数据位于vdb2
. ,我没有数据vdb3
。是否可以合并所有 4 个分区并分配一个挂载点(/data1)而不丢失数据?vdd
vde
[user@hbase2 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 253:0 0 50G 0 disk
└─vda1 253:1 0 50G 0 part /
vdb 253:16 0 450G 0 disk
├─vdb1 253:17 0 46.6G 0 part /mnt/10.1.14.83
├─vdb2 253:18 0 372.5G 0 part /data1
└─vdb3 253:19 0 30.9G 0 part
vdc 253:32 0 20G 0 disk
├─vdc1 253:33 0 4G 0 part /home
├─vdc2 253:34 0 4G 0 part /var/tmp
├─vdc3 253:35 0 4G 0 part /var/log
├─vdc4 253:36 0 4G 0 part /var/log/audit
└─vdc5 253:37 0 4G 0 part /var
vdd 253:48 0 20G 0 disk
vde 253:64 0 250G 0 disk
[user@hbase2 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 36G 15G 71% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 385M 3.5G 10% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vdc5 3.9G 333M 3.4G 9% /var
/dev/vdc2 3.9G 16M 3.6G 1% /tmp
/dev/vdc3 3.9G 113M 3.5G 4% /var/log
/dev/vdb1 46G 53M 44G 1% /mnt/10.1.14.83
/dev/vdc1 3.9G 222M 3.5G 6% /home
/dev/vdc4 3.9G 82M 3.6G 3% /var/log/audit
/dev/vdb2 367G 242G 106G 70% /data1
tmpfs 783M 0 783M 0% /run/user/1002
答案1
是的,您可以使用 LVM 将四个块设备放入一个池中,从中您可以为文件系统创建逻辑卷/data
。
vdd
在和上创建分区vde
。技术上不需要,但推荐。- 使用三个未使用的分区创建 LVM 卷组:
vgcreate vg0 /dev/vdb3 /dev/vdd1 /dev/vde1
- 创建逻辑卷:
lvcreate -l 100%FREE -n data1 vg0
- 在逻辑卷上创建文件系统。例如,使用 ext4: mkfs.ext4 -L DATA1 /dev/mapper/vg0-data1`
/data1
以只读模式远程文件系统,以使复制文件更安全:umount /data
&& mount -o ro /data1`- 将新文件系统挂载到临时位置:
mkdir /mnt/foo && mount -L DATA1 /mnt/foo
- 将文件复制
/data1
到临时安装点:cp -av /data1/ /mnt/foo/
- 进行修改
/etc/fstab
,以便它/data1
从新文件系统(步骤 3 中的逻辑卷)安装。 - 重新启动并交叉手指。
- 验证新文件系统是否已安装在
/data1
。 - 一旦您满意,就可以回收旧分区了:
wipefs /dev/vdb2 && vgextend vg0 /dev/vdb2 && lvextend vg0/data1 -r -l +100%FREE