用虚拟机玩Linux时经常发生Linux硬盘空间不足的情况,而宿主机硬盘空间又吃紧,怎么办?
很多童鞋给Linux分配的硬盘是8G,而安装Linux时采用默认分区方式的话swap分区有2G。swap分区即交换分区,类似于Windows的虚拟内存pagefile.sys。当内存不足时,把一部分硬盘空间虚拟成内存使用。而内存够用时则排不上用场。
对于实体机Linux,这2G的swap空间一般算不了什么,但对硬盘只有8G的虚拟机Linux来说,2G就很宝贵了。所以——减小Linuxswap分区收回空间。
减小swap分区的方法:
1、先df-h和fdisk-l命令查看一下当前分区情况,如图。根分区为5.5G。
图中/dev/mapper/vg_"hostname"-lv_swap就是swap分区,为2G。swap分区亦可用free命令查看到。
2、用swapoff命令关闭交换分区:
#swapoff/dev/mapper/vg_"hostname"-lv_swap
然后用free命令检查下swap是否变为0了。
3、用lvreduce命令把swap分区减小1500M:
#lvreduce-L-1500M/dev/mapper/vg_"hostname"-lv_swap
输入y,确定,看到提示swap减小至516M。
4、重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:
#mkswap/dev/mapper/vg_"hostname"-lv_swap
5、swapon开启swap分区:
#swapon/dev/mapper/vg_"hostname"-lv_swap
然后用free命令检查下swap是否变为516M了。
扩展根分区把回收的空间利用起来
1、此时回收的1500M是闲置的自由空间,还得将它分配给根分区。还好现在的Linux分区一般是采用LVM分区方式,可以很方便地进行分区的动态扩展,不破坏现有数据。笔者这里是使用图形LVM(LogicalVolumeManager)工具进行分区的动态扩展(如果没有安装此工具则需要装一下system-config-lvm的rpm包)。高手亦可在命令行下完成。
#system-config-lvm
展开逻辑视图->lv_root,点击编辑属性。
2、点击使用剩余,可以看到5.54G增大至7.0G了。然后确定。
3、回到LVM界面,查看到自由空间变为0了。
4、回到命令行模式用df-h命令检查一下,可以看到根分区增大至6.9G了。动态扩展无需重启,立即生效,大功告成!