Vmware虚拟机瘦身及Samba服务不可用问题解决

news2024/12/26 10:36:24

虚拟机磁盘空间膨胀是一个令人头疼的问题,特别是对许多搞开发的小伙伴。无论是做后台服务、嵌入式还是Android开发,都面临着这个难题。首先,操作系统本身就已占用不少空间,更新安装包,再下载一些开源软件,剩余空间立马就局促起来。要是进行Android开发,一个版本整下来,又是起步几十G的占用。对于Linux嵌入式开发,厂家SDK、编译工具链、构建系统(BuildRoot\Yocto)、再整个Ubuntu Arm版本,弄齐活了也得是几十G起步的占用。这样一来,怎么着也得预留100G的磁盘空间。

如果在安装系统时,没有选择分割磁盘文件模式,则上面所说的全部内容都会存放到一个虚拟磁盘文件上。也就是说,你在虚拟机系统中(比如Ubuntu)进行的下载行为,最终都会体现到物理机系统(比如Windows)上的一个vmdk文件中----这个文件会逐渐膨胀变大。但问题的关键是,即使在虚机系统中清理了部分空间,物理机系统这边的vmdk文件的空间占用并不会跟随减少。要解决这个问题,可以有下面几个办法:

1 安装系统时使用分割磁盘文件模式。但是很多小伙伴的遗留系统已经使用了单一磁盘文件模式,要改变模式,就需要重装系统。估计大家一想到要重装系统就头大,还是看看是否有其他临时措施可以比较好解决该问题。

2 通过Vmware自带的压缩磁盘功能。博主试了该功能,是能回收一些磁盘空间,但是杯水车薪,用处不大。几十G的空闲空间,通过该方法,仅能压缩3个G左右,这个结果不同的系统,不同的使用方式,可能会有些差异,但是从网上资料来看,大家的效果都一般。

3 使用Vmware自带的vmware-vdiskmanager工具。博主本人使用的是player免费版本,不带该工具,下载了pro版本,提取其中的工具测试,则总是提示磁盘空间不足。这样一来,这个方法也不是很好用。也许对原始pro版本安装的用户可能会友好一些,但对于免费版用户,估计还得寻找其他方法。

4 使用DiskGenius。该工具功能强大,支持常见虚拟机的虚拟磁盘格式,如下图所示:

使用DG工具缩减虚拟机磁盘文件空间占用的方法为:首先,新建虚拟磁盘文件,这样我们就有一个空白虚拟磁盘文件。然后再选择打开虚拟磁盘文件,将已有的虚拟磁盘文件导入DG工具。之后,再工具菜单中选择克隆磁盘,其中源选择导入的虚拟磁盘文件,目标为新建的虚拟磁盘文件。通过将实际虚拟机所用的虚拟磁盘内容按文件拷贝到新创建的空白虚拟磁盘中,可以解决磁盘文件占用虚胖的问题。

采用该方法的缺点主要是需要找到足够的空间存放新拷贝的虚拟磁盘文件。这个也可以通过移动硬盘来解决。另外,就是整个拷贝耗时会比较长,最好是在晚上不用虚拟机系统的时候做这项工作。

博主经过实际测试,确认该方法可行。拷贝的新的虚拟磁盘物理空间占用与虚机中系统实际占用是一致的(小于实际虚拟机磁盘物理空间占用)。使用该方法前先对虚拟机系统占用空间进行彻底的清理释放,因为做一次拷贝耗时是比较久的。

瘦身后的虚拟磁盘文件可以被虚拟机加载,系统运行也正常。为了保证可靠性。建议对原虚拟磁盘文件进行备份,确认新拷贝文件没有问题后再移除。博主在实际测试时出了一个小问题,就是Samba服务不可用。最初怀疑是拷贝出问题了,但是通过对问题分析并尝试一些方法后,最终还是解决了,这里就将博主的分析解决过程分享出来。

因为是做开发,Samba还是比较好用的。拷贝完后,发现额外占用的空间回来了,心情大好,马上就准备使用新拷贝的虚拟机。结果,发现共享目录打不开。

最开始博主还以为是网络问题,重新配置IP地址,重新停用-启用虚拟网卡,重新配置主机端IP地址等,都试过了,结果是可以PING通,NFS服务也是好的,就是Samba共享用不了。

此时,选择重启Samba服务看看。结果,服务重启失败。那看来跟网络应该是没什么关系了。查看Samba启动日志,查找失败原因:

未找到明确原因后,继续查看Samba自己的日志记录:

从中发现部分文件的权限不对。进一步的查看nmbd 和smbd的状态,修改权限

修改后,再次启动服务,成功运行。

通过对问题的解决,发现这种瘦身方式可能存在一些隐患。因为是按文件拷贝,而非磁盘扇区,故有可能部分文件的信息可能会遗失,但是大的方面,文件本身的内容应该不会出问题。

看来后续的话,原始虚拟磁盘文件还需要保留一段时间,以便不时之需。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【管理篇】确定自己的管理风格

目录标题 常见的四类领导力风格不同领导力风格适应的场景领导力风格总结 常见的四类领导力风格 四类领导力风格,简单概况如下: 指令式管理:重事不重人,关注目标和结果,喜欢发号施令但不亲力亲为。支持式管理&#xf…

Windows编译SeetaFace6

1. 概述 SeetaFace6包含人脸识别的基本能力:人脸检测、关键点定位、人脸识别,同时增加了活体检测、质量评估、年龄性别估计,并且顺应实际应用需求,开放口罩检测以及口罩佩戴场景下的人脸识别模型。 发布时间 人脸识别算法版本 G…

易语言IDE界面美化支持库

易语言IDE界面美化支持库 下载下来可以看到,是一个压缩包。 那么,怎么安装到易语言中呢? 解压之后,得到这两个文件。 直接将clr和lib丢到易语言安装目录中,这样子就安装完成了。 打开易语言,在支持库配置…

swift微调多模态大语言模型

微调训练数据集指定方式的问题请教 Issue #813 modelscope/swift GitHubQwen1.5微调训练脚本中,我用到了--dataset new_data.jsonl 这个选项, 可以训练成功,但我看文档有提到--custom_train_dataset_path这个选项,这两个有什么…

C 认识指针

目录 一、取地址操作符(&) 二、解引用操作符(*) 三、指针变量 1、 指针变量的大小 2、 指针变量类型的意义 2.1 指针的解引用 2.2 指针 - 整数 2.3 调试解决疑惑 认识指针,指针比较害羞内敛,我们…

局域网唤醒平台:UpSnap

简介:UpSnap是一个简单的唤醒局域网网络应用程序。UpSnap为每个用户、每个设备提供了唯一的访问权限。虽然管理员拥有所有权限,但他们可以为用户分配特定的权限,如显示/隐藏设备、访问设备编辑、删除和打开/关闭设备电源。 历史攻略&#xf…

Nginx(参数设置总结)

文章目录 Nginx(工作机制&参数设置)1.Master&Worker工作机制1.示意图2.解释3.Nginx争抢机制4.accept_mutex解决惊群现象5.多进程结构不用多线程结构的好处6.IO多路复用,实现高并发7.优势 2.参数配置1.work_processes1.基本介绍2.work…

智慧旅游引领未来风尚,科技助力旅行更精彩:科技的力量推动旅游业创新发展,为旅行者带来更加便捷、高效和智能的旅行服务

目录 一、引言 二、智慧旅游的概念与特点 (一)智慧旅游的概念 (二)智慧旅游的特点 三、科技推动旅游业创新发展 (一)大数据技术的应用 (二)人工智能技术的应用 (…

Android Binder机制

一.简介 Binder是什么? Android系统中,涉及到多进程间的通信底层都是依赖于Binder IPC机制。 例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于 此,整个Android系统架构中,大量采…

企业计算机服务器中了rmallox勒索病毒怎么处理,rmallox勒索病毒解密恢复

网络在为企业提供便利的同时,也为企业的数据安全带来严重威胁。随着网络技术的不断发展,越来越多的企业利用网络开展各项工作业务,网络数据安全问题,一直成为企业关心的主要话题,但网络威胁随着网络技术的不断成熟&…

18_Scala面向对象编程trait

文章目录 trait1.定义trait2.向类中混入特质2.1没有父类2.2有父类 3.动态混入3.1动态混入查询功能到公司业务中 4.父类,子类,特质初始化优先级5.Scala功能执行顺序6.常用API trait –特质的学习需要类比Java中的接口,源码编译之后就是interf…

【DPU系列之】Bluefield 2 DPU卡的功能图,ConnectX网卡、ARM OS、Host OS的关系?(通过PCIe Switch连接)

核心要点: CX系列网卡与ARM中间有一个PCIe Swtich的硬件单元链接。 简要记录。 可以看到图中两个灰色框,上端是Host主机,下端是BlueField DPU卡。图中是BF2的图,是BF2用的是DDR4。DPU上的Connect系列网卡以及ARM系统之间有一个…

解决Maven本地仓库存在依赖包还需要远程下载的问题

背景 公司有自己maven私服,正在在私服可以使用的情况,打包是没问题的。但是这次是由于公司大楼整体因电路检修而停电,所有服务器关机,包括maven私服服务器。然后当天确有一个包需要打,这个时候发现死活打不了&#xf…

学习3:scrapy请求对象、模拟登录、POST请求、管道的使用、crawlspider爬虫类

请求对象 请求对象参数 scrapy.Request(url[],callback,method"GET",headers,body,cookies,meta,dont_filterFalse)callback 表示当前的url响应交给那个函数去处理method 指定请求方式headers 接受一个字典,其中不包括cookiesbody 接收json字符串&#…

vs 2022 Xamarin 生成 Android apk

再保存,如果没有生成apk就重启软件 再试一次

【hive】transform脚本

文档地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManualTransform 一、介绍二、实现1.脚本上传到本地2.脚本上传到hdfs 三、几个需要注意的点1.脚本名不要写全路径2.using后面语句中,带不带"python"的问题3.py脚本Shebang…

list 的模拟实现

目录 1. list 的实现框架 2. push_back 3. 迭代器 4. constructor 4.1. default 4.2. fill 4.3. range 4.4. initializer list 5. insert 6. erase 7. clear 和 destructor 8. copy constructor 9. operator 10. const_iterator 10.1. 普通人的处理方案 10.2. …

基于Java EE平台项目管理系统的设计与实现(论文 + 源码)

【免费】基于javaEE平台的项目管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89267688 基于Java EE平台项目管理系统的设计与实现 摘 要 随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文…

Linux网络部分——DHCP、FTP

目录 一、DHCP动态主机配置协议 1. DHCP工作原理(流程) 2. 使用DHCP的好处 3.DHCP的分配方式 4.DHCP安装和配置【☆】 二、FTP文件传输协议 1. FTP传输模式 2.FTP安装与配置【☆】 3. FTP设置白名单和黑名单【☆】 一、DHCP动态主机配置协议 DH…

自动驾驶融合定位系列教程五:惯性导航误差分析

自动驾驶融合定位系列教程五:惯性导航误差分析 一、概述 在定位领域的几乎所有多传感器融合系统中,都有IMU存在,而且,IMU是定位系统的主线与核心(对此可能很多人并不同意,但是我仍然坚定地坚持这一观点&a…