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

虚拟机磁盘空间膨胀是一个令人头疼的问题,特别是对许多搞开发的小伙伴。无论是做后台服务、嵌入式还是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.rhkb.cn/news/318309.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解码Starknet Verifier:深入逆向工程之旅

1. 引言 Sandstorm为: 能提交独立proof给StarkWare的Ethereum Verifier,的首个开源的STARK prover。 开源代码见: https://github.com/andrewmilson/sandstorm(Rust) L2Beat 提供了以太坊上Starknet的合约架构图&…

Docker私有仓库搭建

下载离线镜像 检查Docker环境 docker versionDocker Hub 中registry 最新版本为 2.8.3,详见 registry . https://hub.docker.com/_/registry/tags 下载镜像 docker pull registry:2.8.3离线导出,方便在无法联网的设备上安装 docker image save regi…

【QT学习】12.UDP协议,广播,组播

一。Udp详细解释 UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。与TCP相比,UDP不提供可靠性、流量控制、拥塞控制和错误恢复等功能,但由于其简单性和低开销&#x…

单片机编程实例400例大全(100-200)

今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些,我大概看了下,很多都具备实际产品的参考价值。 今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些,我大概看了下,很多都具备实际…

【Java】HOT100 贪心算法

目录 理论基础 一、简单贪心 LeetCode455:分发饼干 二、中等贪心 2.1 序列问题 LeetCode376:摆动序列 2.2 贪心股票问题 LeetCode121:买卖股票的最佳时机 LeetCode121:买卖股票的最佳时机ii 2.3 两个维度权衡问题 LeetCode135&…

GPT是什么?直观解释Transformer | 深度学习第5章 【3Blue1Brown 官方双语】

【官方双语】GPT是什么?直观解释Transformer | 深度学习第5章 0:00 - 预测,采样,重复:预训练/生成式/Transformer模型 3:03 - Transformer 的内部结构 6:36 - 本期总述 7:20 - 深度学习的大框架 12:27 - GPT的第一层:…

NIO(非阻塞I/O)和IO(阻塞I/O)详解

文章目录 一、NIO(Non-blocking I/O,非阻塞I/O)1、Channel(通道)与Buffer(缓冲区)1.1、使用ByteBuffer读取文件1.2、ByteBuffer 方法1.2、ByteBuffer 结构1.3、字符串与 ByteBuffer 互转1.4 Sca…

Github查找代码项目高级语法(含科研项目查找案例)

基础搜索语法 1.搜索名字 in:name XXX 2.搜索描述 in:description XXX 3.搜索readme in:readme XXX 4.根据stars stars:>2000 5.根据fork fork:>3000 6.仓库大小搜索 size:>5000 [注意: 该处单位大小为 k] 7.根据更新时间 …

Spark01 —— Spark基础

文章目录 Spark01 —— Spark基础一、为什么选择Spark?1.1 MapReduce编程模型的局限性1.2 Spark与MR的区别1.3 版本1.4 优势1.5 Spark其他知识1、多种运行模式2、技术栈3、spark-shell:Spark自带的交互式工具4、Spark服务 二、Spark的基础配置三、Spark实…

Github 2024-05-03 Java开源项目日报 Top9

根据Github Trendings的统计,今日(2024-05-03统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9Kotlin项目1C++项目1libGDX: 跨平台Java游戏开发框架 创建周期:4284 天开发语言:Java, C++协议类型:Apache License 2.0Star数量:2…

【深度学习基础(2)】深度学习之前:机器学习简史

文章目录 一. 深度学习的起源1. 概率建模--机器学习分类器2. 早期神经网络--反向传播算法的转折3. 核方法 -- 忽略神经网络4. 决策树、随机森林和梯度提升机5. 神经网络替代svm与决策树 二. 深度学习与机器学习有何不同 可以这样说,当前工业界所使用的大部分机器学习…

【树 图论 阶乘 组合 深度优先搜索】1916. 统计为蚁群构筑房间的不同顺序

本文设计知识点 树 图论 阶乘 组合 深度优先搜索 图论知识汇总 LeetCoce1916. 统计为蚁群构筑房间的不同顺序 你是一只蚂蚁,负责为蚁群构筑 n 间编号从 0 到 n-1 的新房间。给你一个 下标从 0 开始 且长度为 n 的整数数组 prevRoom 作为扩建计划。其中&#xff0…

区块链 | IPFS:CID

🦊原文:Anatomy of a CID 🦊写在前面:本文属于搬运博客,自己留存学习。 1 CID 在分布式网络中与其他节点交换数据时,我们依赖于内容寻址(而不是中心化网络的位置寻址)来安全地定位…

第8章 软件工程

一、软件工程概述 (一)软件危机 1、含义:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 2、解决方案:引入软件工程的思想。 (二&#x…

【MySQL | 第十篇】重新认识MySQL索引匹配过程

文章目录 10.重新认识MySQL索引匹配过程10.1匹配规则10.2举例&#xff1a;联合索引遇到范围查询&#xff08;>、<、between、like&#xff09;10.2.1例子一&#xff1a;>10.2.2例子二&#xff1a;>10.2.3例子三&#xff1a;between10.2.4例子四&#xff1a;like 10…

一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面

本系列博客主要记录WebRtc实现过程中的一些重点&#xff0c;代码全部进行了注释&#xff0c;便于理解WebRTC整体实现。 一、创建html页面 简单添加input、button、video控件的布局。 <html><head><title>WebRTC demo</title></head><h1>…

机器学习之基于Tensorflow(LSTM)进行多变量时间序列预测股价

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介&#xff1a;机器学习之基于TensorFlow&#xff08;LSTM&#xff09;进行多变量时间序列预测股价 一、项目…

HTML5本地存储账号密码

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>HTML5本地存储账号密码</title> </head…

ROS快速实现helloworld

ROS中涉及的编程语言以C和Python为主&#xff0c;ROS中的大多数程序两者都可以实现&#xff0c;在本系列教程中&#xff0c;每一个案例也都会分别使用C和Python两种方案演示&#xff0c;大家可以根据自身情况选择合适的实现方案。 ROS中的程序即便使用不同的编程语言&#xff…

leetcode51.N皇后(困难)-回溯法

思路 都知道n皇后问题是回溯算法解决的经典问题&#xff0c;但是用回溯解决多了组合、切割、子集、排列问题之后&#xff0c;遇到这种二维矩阵还会有点不知所措。 首先来看一下皇后们的约束条件&#xff1a; 不能同行不能同列不能同斜线 确定完约束条件&#xff0c;来看看究…