调整虚拟机分区大小而不删除数据

调整虚拟机分区大小而不删除数据

我想从虚拟机调整分区大小而不删除任何数据。

我只能通过 SSH 访问此 VM,因此无法运行实时 CD。

操作系统是 Ubuntu 14.04.2 LTS。

我当前的分区是:

Number  Start   End     Size    Type      File system  Flags
1      1049kB  256MB   255MB   primary    ext2         boot
2      257MB   10,7GB  10,5GB  extended
5      257MB   10,7GB  10,5GB  logical                 lvm

我有10,7GB未分配。 df -h输出:

Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/server--vg-root    7,6G  5,8G  1,4G  81% /
none                           4,0K     0  4,0K   0% /sys/fs/cgroup
udev                           2,0G  4,0K  2,0G   1% /dev
tmpfs                          396M  516K  395M   1% /run
none                           5,0M     0  5,0M   0% /run/lock
none                           2,0G     0  2,0G   0% /run/shm
none                           100M     0  100M   0% /run/user
/dev/sda1                      236M   43M  181M  20% /boot

/dev/sda21.5GB,我只使用10GB

我发现的所有教程都需要一张 Live CD。

你知道该如何做吗?

谢谢

答案1

看起来您实际上并没有可用的空闲空间 — “扩展”分区通常覆盖所有剩余的磁盘空间。您有可能有空闲空间;特别是如果您创建了 10GB 的磁盘映像,然后将其调整为 20GB。

因此,假设您确实有空白空间,您需要:

  • 确保您有备份!
  • 调整扩展分区的大小以填充新的扇区上限
    • 用于fdisk
    • 小心!fdisk可能会破坏您的分区表
    • 实现此目的的方法如下:调整/扩大分区大小而不丢失数据
    • 该方法可以概括为
      • 删除现有分区(2 和 5)
      • 使用完全相同的起始扇区号重新创建它们
      • 对于分区 2,允许它占用整个磁盘
      • 对于分区 5,使用其现在的精确起始扇区和大小
  • 在根卷组中注册新的 LVM 分区
    • 在扩展空间中创建一个新的 Linux LVM 分区,允许它使用剩余的磁盘空间
    • 将其设为“物理卷”,pvcreate /dev/sdaX其中 X 是新分区
    • 列出卷组
      • vgdisplay
    • 扩展服务器卷组(根据需要将名称替换为上一步中的名称)
      • vgextend server-vg /dev/sdaX
    • 显示逻辑卷
      • lvdisplay
    • 扩展根文件系统卷
      • lvextend /dev/server-vg/root /dev/sdaX
    • 调整根文件系统的大小以适应新空间
      • 取决于你使用的 FS...例如基于 ext 的 FS
      • resize2fs /dev/server-vg/root

参考 :

https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/

http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

答案2

我在装有 Ubuntu Server 18.04 且没有 LVM 的虚拟机中完成了此操作。

在 VirtualBox 中增加 HDD 后的初始状态。

ivanx@ivanx:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk
├─sda1   8:1    0    1M  0 part
└─sda2   8:2    0   20G  0 part /

下一步是删除分区并调整大小磁盘管理

ivanx@ivanx:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 41940991 41936896  20G Linux filesystem

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): p
Device     Start   End Sectors Size Type
/dev/sda1   2048  4095    2048   1M BIOS boot

Command (m for help): n
Partition number (2-128, default 2): 2
First sector (4096-83886046, default 4096): 4096
Last sector, +sectors or +size{K,M,G,T,P} (4096-83886046, default **83886046**): 

Created a new partition 2 of type 'Linux filesystem' and of size 40 GiB.
Partition #2 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: N

Command (m for help): p
Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 83886046 83881951  40G Linux filesystem

Command (m for help): w
The partition table has been altered.
Syncing disks.

检查结果:

ivanx@ivanx:~$ df -h
/dev/sda2        20G   19G  466M  98% /

ivanx@ivanx:~$ sudo resize2fs /dev/sda2
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/sda2 is now 10485243 (4k) blocks long.

ivanx@ivanx:~$ df -h
/dev/sda2        40G   19G   20G  49% /

答案3

为什么不试试 GParted?它有一个 GUI,并且允许 [调整分区大小和移动数据。

在此处输入图片描述

相关内容