虚拟机磁盘 扩容

words: 908    views:    time: 3min

vmware版本:14.1.1
ubuntu版本:16.0.4

磁盘 扩容/新增

虚拟机设置,进行磁盘扩展或新增,最后效果是类似的,不过新增的磁盘后续方便移除,而扩展的话只能调大不能减小。
这里180G是由80G扩展后的磁盘,50G是新增的磁盘。

由于还没有经过分区,指定文件系统,此时磁盘还不能被操作系统识别

但是可以通过fdisk -l列出所有磁盘设备

新建分区

接下来选择磁盘新建分区,这里以扩展后的180G磁盘作为示例:fdisk /dev/sda,键入”n”新建分区,选择主分区”p”,分区号不要重复(默认就行),再设置下分区起止位置,最后”w”保存

然后对分区进行格式化,参照上面sda1,将sda3的文件系统也格式化成ext4:mkfs.ext4 /dev/sda3

挂载目录

最后进行目录挂载,可以手动挂载,比如

1
mount /dev/sda3 /home/work

如果希望开机自动挂载,则修改/etc/fstab文件,在文件里添加一行

1
/dev/sda3       /home/work      ext4    defaults,        0     0

FAQ

  • 目录空间不够问题

如果对某个目录操作时提示磁盘写满,一般我们有两个办法:

1.通过软链接的方式将目录内容拷贝到另一个分区中,这种办法比较简单,比如目录/opt/data占用磁盘过大,那么我们可以将这个目录拷贝到/home/work,然后建个链接就行

1
2
3
cd /opt
cp -rf data /home/work
ln -s /home/work/data data

2.将目录挂载到一个独立的磁盘分区上,但是如果原先目录下有文件,直接挂载的话,会发现目录下的数据会变空

这是由于linux的虚拟文件系统(VFS)机制导致的,正常登录以后所看到的各个目录、文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接在硬盘上的实际目录树。
当你挂载某个设备到一个VFS挂载点上(比如/home/work),系统就把VFS中的这个挂载点指向所挂载的那个设备。当你访问挂载点时,就会看到挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点已不再指向它。所以之前的数据是被隐藏了,并没有删除,如果umount解除挂载,数据还能重新回来

所以办法是需要新建一个空目录作为跳板,并将磁盘分区挂载到这个空目录上,然后将数据文件拷贝到这个目录,再将磁盘分区挂载到原先想挂载的目录上,就能实现目的了。最后别忘了解除跳板目录的挂载,并删除跳板目录。

  • 虚拟机压缩包过大问题

有些场景下我们需要拷贝安装好的虚拟机,但是压缩包会很大,这时如果只是删除一些目录文件并不能减小虚拟机占用磁盘大小,那么可以通过下面的命令来删除虚拟机的操作痕迹(如果提示超出磁盘,则重复执行几次),然后在虚拟机磁的设置中,对磁盘进行整理压缩

1
2
sudo dd if=/dev/zero of=/home/zero.bak bs=2048K
sudo rm -rf /home/zero.bak


参考:

  1. https://blog.csdn.net/fuchen58/article/details/81172009
  2. https://blog.csdn.net/thekenofDIS/article/details/125511609