在不擦除数据的情况下调整 VM 分区大小

Art*_*íde 6 partitioning virtualization

我想在不擦除任何数据的情况下从虚拟机调整分区大小。

我只能通过 SSH 访问此 VM,因此我无法运行 Live 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
Run Code Online (Sandbox Code Playgroud)

我有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
Run Code Online (Sandbox Code Playgroud)

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

我找到的所有教程都需要一张 Live CD。

知道我怎么能做到吗?

谢谢

Adr*_*ian 7

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

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

  • 确保你有备份!
  • 调整扩展分区的大小以填充新的扇区上限
    • fdisk为此使用
    • 当心!fdisk可以破坏你的分区表
    • 这样做的方法在这里:调整大小/增加分区而不丢失数据
    • 该方法可以概括为
      • 删除现有分区(2 和 5)
      • 使用完全相同的起始扇区号重新创建它们
      • 对于分区 2,允许它消耗整个磁盘
      • 对于分区 5,使用它现在的确切起始扇区和大小
  • 在根卷组中注册一个新的 LVM 分区
    • 在扩展空间新建一个Linux LVM分区,让它消耗剩余的磁盘空间
    • 使其成为“物理卷”,pvcreate /dev/sdaX其中 X 是新分区
    • 列出卷组
      • vgdisplay
    • 扩展服务器卷组(根据需要用上一步中的名称替换名称)
      • vgextend server-vg /dev/sdaX
    • 显示逻辑卷
      • lvdisplay
    • 扩展根 fs 卷
      • lvextend /dev/server-vg/root /dev/sdaX
    • 调整根 FS 的大小以适应新空间
      • 取决于您使用的 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