虚拟机磁盘 扩容
words: 908 views: time: 3minvmware版本: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 | cd /opt |
2.将目录挂载到一个独立的磁盘分区上,但是如果原先目录下有文件,直接挂载的话,会发现目录下的数据会变空
这是由于linux的虚拟文件系统(VFS)机制导致的,正常登录以后所看到的各个目录、文件都是内核在加载时候构造在内存中的VFS目录树,而不是直接在硬盘上的实际目录树。
当你挂载某个设备到一个VFS挂载点上(比如/home/work),系统就把VFS中的这个挂载点指向所挂载的那个设备。当你访问挂载点时,就会看到挂载在此处的设备。而之前所挂载的设备依然在那里,只不过挂载点已不再指向它。所以之前的数据是被隐藏了,并没有删除,如果umount解除挂载,数据还能重新回来
所以办法是需要新建一个空目录作为跳板,并将磁盘分区挂载到这个空目录上,然后将数据文件拷贝到这个目录,再将磁盘分区挂载到原先想挂载的目录上,就能实现目的了。最后别忘了解除跳板目录的挂载,并删除跳板目录。
- 虚拟机压缩包过大问题
有些场景下我们需要拷贝安装好的虚拟机,但是压缩包会很大,这时如果只是删除一些目录文件并不能减小虚拟机占用磁盘大小,那么可以通过下面的命令来删除虚拟机的操作痕迹(如果提示超出磁盘,则重复执行几次),然后在虚拟机磁的设置中,对磁盘进行整理压缩
1 | sudo dd if=/dev/zero of=/home/zero.bak bs=2048K |
参考: