展开完整的虚拟debian磁盘以使用空白空间

我有一个运行Debian 8的虚拟服务器,它具有完整的主磁盘。 我已经通过pipe理程序扩展了“物理”硬盘驱动器,但我无法弄清楚如何扩展主分区以使用虚拟磁盘上新创build的未分配空间。

我已经将虚拟磁盘从4GB扩展到了10GB。

fidks -l输出:

 GPT PMBR size mismatch (8388607 != 20971519) will be corrected by w(rite). Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 58BB252B-F2A7-48A3-9270-BB80B698AC35 Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 6293503 5242880 2.5G Linux filesystem /dev/sda3 6293504 8386559 2093056 1022M Linux swap 

df -h输出:

 Filesystem Size Used Avail Use% Mounted on udev 438M 0 438M 0% /dev tmpfs 90M 11M 80M 12% /run /dev/sda2 2.4G 2.4G 0 100% / tmpfs 449M 0 449M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 449M 0 449M 0% /sys/fs/cgroup /dev/sda1 511M 132K 511M 1% /boot/efi tmpfs 90M 0 90M 0% /run/user/1000 

重要提示:这是一个极其简单的系统,只有很less的工具,而且由于磁盘空间不够,我无法安装任何东西。

我正在寻找扩展分区的方法。

  1. 先决条件

    • 如果 / (/ dev / sda2)是一个可在线resize的文件系统, 那么在虚拟机内一切都是可以实现的,无需重启。 你从来没有告诉过什么文件系统。 我假设它是ext4(xfs也可以,也可能有其他的,但我不知道他们的命令)
    • 这是一个虚拟机,在继续之前做一个备份。
    • 安装gdisk。 不要使用fdisk而是使用gdiskfdisk并不总是处理我在下面描述的GPT PMBR问题, gdisk没有问题。 安装大小小于1M。
  2. 在分区上执行的操作

    • swapoff /dev/sda3准备删除:它是在方式,而不是至关重要的
    • 运行gdisk /dev/sda 。 注意关于GPT PMBR的警告:这是因为EFI在磁盘的开始和结束处写入其标签信息。 所以,当你放大磁盘时,新的结尾不再有GPT签名和数据。 gdisk纠正这些信息,并要求确认:只要接受。 fdisk在这一步可能会失败(在fdisk的最后w处完成)。
    • 用d和3删除分区3(交换),否则你不能放大分区2。
    • 棘手的部分:删除分区2( d 2 )。 (重新) 在同一地点创build分区2( n 2 ):select相同的开始(1050624)和更大的大小或更大的结束,所以你将有更多的空间可用,例如+7G 。 分区types8300.如果您被告知已检测到旧文件系统的签名,请不要清除它,这是您正在运行的系统。
    • 为交换( n 3 )重新创build一个新的分区3,build议默认启动,并且可能与之前的大小相同,键入8200。
    • 写入更改(确认…)。 你会得到一个有关内核的错误,而不是使用新的分区表。 这是预料之中的。 退出( q )。
  3. partx命令修复内核的视图问题

    • “移动”swap的分区

       # cat /sys/class/block/sda3/start #kernel's view of the old sda3 partion's position 6293504 # partx -u /dev/sda3 # cat /sys/class/block/sda3/start (some higher value) #kernel's view of sda3 is fixed 
    • 如果在此步骤中没有获得更高的值,则中止并重新启动:内核将在重新引导后获得新的几何graphics(但会报告交换不可用)并跳到步骤4。

    • 放大的根fs'分区

       # cat /sys/class/block/sda2/size #kernel's view of the old partition's size 5242880 # partx -u /dev/sda2 # cat /sys/class/block/sda2/size (some bigger value) #kernel's view of sda2 is fixed 
  4. 文件系统

    • 重新使用交换,并放大文件系统:现在分区中有空间,里面的文件系统可以使用该空间。

       # mkswap /dev/sda3 # swapon /dev/sda3 # resize2fs /dev/sda2 # ext4 can be resized "online" ie while mounted. 
    • 或者为xfs:

       # xfs_growfs / 

你定了 确认重新启动后仍然可以。 否则,有备份。