虚拟机VMWare安装第三方封装的系统镜像的方法
时间:2023-06-28 16:09:01 | 来源:网站运营
时间:2023-06-28 16:09:01 来源:网站运营
虚拟机VMWare安装第三方封装的系统镜像的方法:(禁止任何形式转载)
2017-11-27 18:42首次写于我QQ空间(实在懒得本站排版了先这样吧。。。)
最近周边有不少人问我,如何给VMware虚拟机安装第三方打包的系统镜像。
由于工作干活或者日常出于某种玩的目的,给虚拟机部署完之后还需进行后续一大堆必用软件的安装工作,这既是重复劳动,也是浪费自己时间的工作。用别人打包好的镜像包的话,往往人家为了压缩体积或者后续真机还原方便,采用了esd或gho的格式,即使有封装为iso格式的包也是出于为了不依赖部署环境并且方便解包挂载而做的,所以依然是不可以直接引导的。
所以在此我整理了一下思路并且详细说一下这个事。干脆整理完发出来,大家谁有这方面需求就可以读完一劳永逸了。
下面进入正题。
VMware只能安装iso格式的、并且是官方原版引导方式的镜像,这里先以Windows为例。尽管除了原版系统外第三方打包作品也有iso格式的,但正如你所见到的,大多数其实无非将gho、esd格式的压缩备份文件放置于sources文件夹内代替原版install.wim映像文件罢了,对虚拟机依然是不可以直接引导启动并部署的,所以对于微软原始iso之外的第三方打包镜像而言,作为虚拟机用的话,常规部署系统方法是行不通的。
有人设想先搞一个PE镜像包,然后启动虚拟机到PE,再在PE环境下离线安装系统给虚拟机,像给真机环境用PE内的安装器部署系统那样。
想法很好,可是行不通的,理由如下:
矛盾在于PE环境下无法安装vmtools,这是根本原因,为什么呢?
首先我们要明白站在文件交互角度,vmtools的两大作用:
1、负责支持复制粘贴或拖拽;
2、负责支持挂载共享文件夹(映射网络驱动器形式)。
由此可见我们常规的主机与客户机文件交互方式都是依赖于vmtools的。
但vmtools本身并不是VMVareWorkStation这个软件本身的某个组件,而是像个虚拟系统的某个重要“硬件驱动程序”,它虽然用于与底层“真实环境”沟通(物理硬件或主机系统),但它本身也要有适合自己运行的系统版本环境,正如我刚比喻形容的---它像个硬件驱动程序似的。那么对于完整的Windows或者Linux类等等系统,只要vmtools的版本对应正确了系统内核的版本,那么它当然是可以正常安装并工作的,但PE这种精简环境是不能让它正常安装并工作的。
那么没有了vmtools,既不能拖拽或复制客户机系统镜像包到PE里,也不能在PE里通过网络映射形式去共享主机文件夹,所以一筹莫展了。
【网上有人本着折腾精神执着滴去开启虚拟共享文件夹并把镜像包扔进去,他认为虽然在常规PE里是没有映射网络驱动器的功能,但他能找到一个“大而全”的甚至是“能唱歌能跳舞”的PE,这样就能开启map网络驱动器功能了。但是然并卵,能有map网盘功能并非重点,重点依然是vmtools让不让你丫这样做,再大而全的PE也总不能安装vmtools吧!】
坑爹的PE!
正确姿势来了: 通过PE来安装非微软原版的第三方操作系统是正确的战略思路之一。
但正确的战术姿势应该是通过软碟通把iso镜像文件打包进PE的镜像包里。
这种方式当然也适用于日后丢其它文件给客户机拿去用,
或者干脆只把其它文件用软碟通打包成iso给客户机用。
说白了相当于拷贝文件到一张DVD并且插入到客户机的光驱里,
客户机当然是可以正常拿来用这些数据的了。
具体方法如下:
一、首先用软碟通打开(加载)PE镜像包;
然后用“操作-添加文件”这功能来把镜像包添加进去,再“另存为--”到当前目录或桌面等其它地方;
二、好了,在VMware的DVD光驱配置里把新合成的PE路径指定进去,并勾选“启动时连接”。
【此时由于虚拟硬盘未分配空间并格式化,所以开机无法被识别,就直奔光驱引导启动去了】
虚拟机开机,会直接加载进入PE环境,win镜像包位于PE系统的光驱挂载分区里,这个很容易就找到了,不过我们先不管它。
先用DiskGenius给空白虚拟硬盘建立空间并格式化(格式化完记得调整盘符,将虚拟机主磁盘改成C盘)。
这里要理解一点---此时的镜像包文件虽然放置于光驱位置,但它只是放置,而不是解包挂载于虚拟光驱,所以不能直接供系统安装器使用。
三、OK,回到PE系统的光驱挂载分区,将镜像包拖到空白虚拟磁盘里,或者不拖也行,用PE自带的光驱虚拟工具对该镜像包进行二次解包挂载。
OK,开装。
四、部署完成后关机,
如果此前你调整过虚拟机BIOS的启动顺序为光驱优先于硬盘,那么再次开机之前记得先在VMware配置里取消DVD光驱设备的"开机时连接"。
如果你此前并未调整过BIOS的启动顺序,那么虚拟机BIOS默认的是优先从硬盘启动,那你不取消光驱开机连接的勾选也行。
五、虚拟系统最终会部署完毕进入客户机桌面,为了节省虚拟磁盘空间,去虚拟磁盘里删掉用完遗留下来的镜像包文件。
六、关机,在VMware的光驱配置里指定一个PE镜像包进去,但不勾选“开机连接”,然后从vmware软件的电源选项里找到“打开电源时进入固件”,即进入虚拟机的BIOS,设置启动顺序为DVD--硬盘--其它,这样的话便于以后随时进PE维护客户机系统(只需要勾选开机连接就能进PE)。
BIOS的其它设置调整,如开机是否开启数字小键盘、是否禁用软驱、是否disable其它I/O接口等等,自己根据自己需求搞。
终。
后记:
前面说过通过PE来安装非微软原版的第三方虚拟系统是正确的战略思路之一,那么势必还有之二。
之二非常简单粗暴,不依赖PE解包再打包这么麻烦。直接一句话---用diskgenius挂载虚拟磁盘vmdk文件,在真机环境下直接丢第三方镜像文件进去。。。
当然了,前提是先用PE给虚拟机新创建的虚拟磁盘进行分区并格式化,让它可访问。
警告:这种方式有他的特殊局限性,那就是只适用于首次给虚拟机安装系统,绝对严禁日后对客户机操作系统以该方式丢文件进去!
否则会直接破坏所有客户机系统的快照链。。。
(原因涉及文件系统底层原理:磁盘碎片的概念。首先“快照”这个概念是相当于对原系统的数据以及数据分布的扇区进行了“快照”,以后用户进行的任何文件数据增删改,都是依赖并引用这个磁盘“快照”的,说白了就是对这个磁盘“快照”的增量续写而已[而非覆盖写入],进一步解释,原系统本身的数据存储肯定是碎片化的,任何磁盘存储数据在日常状态不可能没有碎片,也就是说白了数据本身虽然可以是连续的但是磁盘扇区存储的时候可并非一定就连续啊!所以关键在于碎片扇区的排列结构---任何数据覆盖都会破坏这个扇区排列结构,。。所以用diskgenius挂载虚拟磁盘后离线写入数据完全不同于受虚拟机本身保护内的写入,前者是覆盖写入而后者是增量写入!
基于上面的客观原理,我们同样不难理解另一个现象:为何有时候快照文件很小,只有增删改的那点MB大小,而有的时候却很大,大到多少个GB甚至超越原系统本身的大小都很容易。而我们之所以常常选择每次用“快照”而非“完整克隆”的初衷,无非在于为了备份文件“小”,说白了我们选择的是增量备份而非一丢丢的增删改就非得在原系统的基础上完整备份一遍,毕竟哪有那么大存储空间去给这个完整但效率低下的备份方式去浪费。但是呢,问题出就出在【增删改之后又对磁盘进行了碎片整理】,原磁盘快照其实已经被“破坏”了,此时再次建立快照的话就不再是基于引用原始系统和上个快照的增量备份了,而是只能被迫重新建立完整备份。
再次这个同样的道理,对当前状态生成快照类增量备份的方式不仅是虚拟机受磁盘碎片整理的影响,对于真机环境下的备份也一样,最典型的就是AcronisTrueImage,它会以弹窗警告的形式告诉用户,增量备份的方式下应当禁止进行磁盘碎片整理。
所以我感觉VMware其实这一点做的非常不人性化,用户对虚拟磁盘进行碎片整理时不会收到任何警告。我也懒得查看VMware手册上是否对此有所阐述了。
)
【行文有点啰嗦,不好意思。将就着理解,不理解也没关系,知道咋操作就行了】