编译源码时发现报错空间不足,如果创建虚拟机时选择了多个vmdk存储,则需要先合并,然后从vmdk创建新的虚拟机之后再扩容即可。
一、首先将多个vmdk合并成一个vmdk
PS:注意选择vmdx的时候,查看一下当前vmware正在使用的是哪个vmdk。(如果创建过快照,则会有多个vmdk。选择错了vmdk的话,生成的合并的vmdk可能是之前的vmdk,具体是不是创建快照时的不清楚,总之是状态和最新的状态不一致)。
下面操作时的vmdk路径有错误,正确的vmdk名应该如下图所示。自己记得修改成最新的就好。(有时,合并不到100%有可能就合并完了,我这边测试合并到68%就successful了)
执行命令:
C:\Program Files (x86)\VMware\VMware Workstation
λ vmware-vdiskmanager.exe -r "G:\ubuntu16.04-x64-pwn\ubuntu16.04-x64-pwn-2.vmdk" -t 0 "G:\ubuntu16.04-x64\ubuntu16.04.vmdk"
参数说明:
-r <source-disk> : convert the specified disk; need to specify
the disk type must be specified.
-t <disk-type> : disk type id
Disk types:
0 : single growable virtual disk
1 : growable virtual disk split in 2GB files
2 : preallocated virtual disk
3 : preallocated virtual disk split in 2GB files
4 : preallocated ESX-type virtual disk
5 : compressed disk optimized for streaming
6 : thin provisioned virtual disk - ESX 3.x and above
参考这里:https://www.cnblogs.com/Achang/archive/2013/03/22/2975754.html
二、合并完成之后,从vmdk创建虚拟机。
参考这里:
https://jingyan.baidu.com/article/9113f81b2796852b3214c705.html
或者添加新硬盘为合并的vmdk后,删除原来的硬盘也可以。
三、创建完成虚拟机之后,点击磁盘扩容即可。
四、使用gparted创建分区
ps -aux | grep apt | awk '{print $2}'|xargs kill -9 # 杀掉占用apt的进程
sudo apt-get install gparted
可惜,如果新的分区和/是相邻的,就可以直接扩容了。
不相邻的话,则最多只能挂载到一个新的目录了。格式化新加的硬盘,并保存配置。
切到root下查看磁盘的情况,发现已经存在设备,但是还未挂载。
ubuntu# fdisk -l
Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfcc56ffc
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 75497471 75495424 36G 83 Linux
/dev/sda2 75499518 83884031 8384514 4G 5 Extended
/dev/sda3 83884032 419430399 335546368 160G 83 Linux
/dev/sda5 75499520 83884031 8384512 4G 82 Linux swap / Solaris
Partition table entries are not in disk order.
ubuntu# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 393M 6.3M 386M 2% /run
/dev/sda1 36G 6.8G 27G 21% /
tmpfs 2.0G 272K 2.0G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 393M 64K 393M 1% /run/user/1000
在磁盘/下创建new目录后,把/dev/sda3直接挂载到/new即可。如果挂载错了,执行umount /dev/sda3再重新挂载即可。
ubuntu# mount /dev/sda3 /new
ubuntu# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 393M 6.2M 386M 2% /run
/dev/sda1 36G 6.8G 27G 21% /
tmpfs 2.0G 468K 2.0G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 393M 80K 393M 1% /run/user/1000
/dev/sda3 158G 60M 150G 1% /new
下次对linux分区时,试着把/放到物理磁盘分区的最后,扩容起来方便。在安装vmware时,默认选择简易安装模式,选择稍后安装操作系统,之后配置虚拟机的光驱加载ISO就可以进入正常的安装模式了。由于选择了错误的vmdx,才出现了这样的情况。本次虽然没有直接把/扩容,但是合并了vmdx后,发现根目录/磁盘占用也少了很多。原先40g占用了30多g,合并后只占用了9个多g。