![调整虚拟机分区大小而不删除数据](https://linux22.com/image/878286/%E8%B0%83%E6%95%B4%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%86%E5%8C%BA%E5%A4%A7%E5%B0%8F%E8%80%8C%E4%B8%8D%E5%88%A0%E9%99%A4%E6%95%B0%E6%8D%AE.png)
我想从虚拟机调整分区大小而不删除任何数据。
我只能通过 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/sda
有21.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
参考 :
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% /