如何在不丢失数据的情况下对卷进行分区

如何在不丢失数据的情况下对卷进行分区

我们有这样的场景:我要增加其中一台虚拟机的磁盘空间,

磁盘详细信息:

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

不丢失根卷数据的最佳方法是利用这个借口来做在全新设置的、明确独立的机器上完成备份恢复当确认您的备份没有问题时,只需切换到那个。


如果您确实想在实时机器上工作......只需根据其依赖关系对步骤进行排序。

支持在线添加/删除分区。支持在线扩展文件系统。活动文件系统不完全支持分区表重新加载,但只需重新启动即可。

  1. 验证您的备份恢复例程
  2. 在 fstab 中注释掉 swap 条目
  3. 重新加载
  4. 交换
  5. 删除交换分区
  6. 将根分区扩展到现在未使用的空间
  7. 根据需要重新启动
  8. resize2fs /dev/vda1
  9. 重新创建交换分区(在新的位置)
  10. mkswap /dev/vda2
  11. 在 fstab 中更新/重新启用交换条目
  12. 再次重新启动以验证自动交换激活是否再次起作用

相关内容