我们有这样的场景:我要增加其中一台虚拟机的磁盘空间,
磁盘详细信息:
root@Test-01:~# blkid
/dev/vda2: UUID="0eae0eb4-92ed-45ec-aa99-6d606f17e70a" TYPE="swap" PARTUUID="06cf22a2-02"
/dev/vda1: UUID="b5e223df-9f41-4e4c-aa8d-e4529fa28424" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="06cf22a2-01"
root@Test-01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 254:0 0 150G 0 disk
├─vda1 254:1 0 46G 0 part /
└─vda2 254:2 0 104G 0 part [SWAP]
As its a Not LVM I have tried the below , but its wont work
parted /dev/vda resizepart 1 100%
resize2fs /dev/vda1
root@Test-01:~# parted /dev/vda print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1024B 1049kB 1048kB Free Space
1 1049kB 49.4GB 49.4GB primary ext4
2 49.4GB 161GB 112GB primary linux-swap(v1)
我们需要将交换放到内存块的最后,交换位于
我们有 112GB 主 Linux 交换空间(v1)
现在我们想将第一个分区结束块增加到 156,而不是 49.4 gb
现在我们要将第二个分区的起始块从 49.4 gb 减少到 156
我们希望使用安全选项增加根卷而不丢失任何数据,
单独使用 parted 执行调整大小操作是否有风险并可能导致数据丢失?因此,下面的操作对我来说似乎不安全。
sudo parted /dev/vda resizepart 1 100%
sudo parted /dev/vda move 2 100%
这是一台虚拟机,而不是物理机器,我们不能在那里使用 USB 或 CD 驱动器,它是一台 Linux Debian 机器。
在不丢失根卷数据的情况下执行此操作的最佳方法是什么,任何帮助都将不胜感激。
答案1
不丢失根卷数据的最佳方法是利用这个借口来做在全新设置的、明确独立的机器上完成备份恢复当确认您的备份没有问题时,只需切换到那个。
如果您确实想在实时机器上工作......只需根据其依赖关系对步骤进行排序。
支持在线添加/删除分区。支持在线扩展文件系统。活动文件系统不完全支持分区表重新加载,但只需重新启动即可。
- 验证您的备份恢复例程
- 在 fstab 中注释掉 swap 条目
- 重新加载
- 交换
- 删除交换分区
- 将根分区扩展到现在未使用的空间
- 根据需要重新启动
- resize2fs /dev/vda1
- 重新创建交换分区(在新的位置)
- mkswap /dev/vda2
- 在 fstab 中更新/重新启用交换条目
- 再次重新启动以验证自动交换激活是否再次起作用