我希望分区中的数据/dev/sda1
自动“溢出”到该/dev/vda
分区。所以我想我的问题是:如何合并 2 个分区,使其/
大小变为 138GB?
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 780M 34M 747M 5% /run
/dev/sda1 39G 7.7G 32G 20% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 780M 0 780M 0% /run/user/1000
/dev/vda 99G 60M 94G 1% /mnt/vda
这些是可用的磁盘:
root@vps:/# fdisk -l
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xffcebafc
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 83886046 83883999 40G 83 Linux
我对此了解不多,所以我可能不会问正确的问题。
答案1
鉴于您正在处理两个物理设备,您将无法在物理级别组合分区。但是,您可以使用 LVM(逻辑卷管理器)创建相当于虚拟块设备的内容,该虚拟块设备由多个真实的块设备。这将模拟 ~138GB 的分区。也可以使用 BTRFS 在文件系统级别执行类似的操作,但您可以使用 LVM 执行以下操作:
注意:除了 LVM 支持之外,您的系统还需要能够从 LVM 引导,这取决于您的引导加载程序及其配置方式。
转换为 LVM
显然,请确保首先备份系统,因为此过程会清除/dev/sda1
和/dev/vda
。然后从 Live CD/USB 驱动器启动 Linux 并...
- 运行
wipefs /dev/vda
以快速清除分区。 - 通过运行创建LVM物理卷
pvcreate /dev/vda
- 创建卷组:
vgcreate vg0 /dev/vda
- 为您的根文件系统创建一个逻辑卷:
lvcreate -L80G -n rootfs vg0
。不用担心80GB的大小;稍后会增加。 - 将文件系统放在逻辑卷上,例如... ext4:
mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
- 挂载新文件系统... /mnt/newroot:
mount -L ROOTFS /mnt/newroot
- 由于您是从 Live CD 执行此操作,因此您需要将真实的安装
/
到某处,例如... /mnt/oldroot:mount /dev/sda1 -o ro /mnt/oldroot
- 复制老根将成为什么新根:
cp -aR /mnt/oldroot/* /mnt/newroot/
现在,到目前为止,除了失去了其中的一切之外/dev/vda
,没有发生任何不可挽回的事情。因此,这是设置引导加载程序(例如 GRUB2)以进行引导/dev/vg0/rootfs
并确保可以引导的绝佳机会。除了 df 输出应如下所示之外,一切都应该相同:
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 780M 34M 747M 5% /run
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 780M 0 780M 0% /run/user/1000
/dev/vg0/rootfs 99G 7.7G 92G ?% /
如果您已经做到这一点,那么您可以继续执行以下操作来利用 LVM 的神奇力量。对于某些文件系统,例如 EXT4,可以在实时系统上完成以下操作;无需现场 CD。
- 清除旧根:
wipefs /dev/sda1
- 创建新的物理卷:
pvcreate /dev/sda1
- 将新物理卷添加到 LVM:
vgextend vg0 /dev/sda1
此时,这两个分区可供 LVM 使用,但尚未使用。要使用两个分区(实际上它们现在是 LVM 物理卷),/
请扩展根逻辑卷以消耗所有可用空间:
- 扩大逻辑卷:
lvextend -l 100%FREE /dev/vg0/rootfs
- 扩大文件系统:
resize2fs /dev/vg0/rootfs
这应该会给你一个大小约为 138GB 的根文件系统:)