☰
虚拟机上手全攻略:从创建、系统安装到网络排错与快照克隆
2026/10/13 11:09:22 网站建设 项目流程

第一次接触虚拟化的人,多半是从“创建一个虚拟机”这个动作开始的。虚拟机的本质并不玄,它就是用软件在物理电脑上模拟出CPU、内存、硬盘、网卡、光驱这一整套硬件,让一台电脑同时跑多个操作系统,系统之间互相隔离,互不影响。日常工作里,我被问到最多的问题几乎都围着虚拟机转:装Linux为什么蓝屏、建好的虚拟机怎么黑屏、怎么让虚拟机和宿主机互相复制文件、CentOS里为什么连不上网。这些问题的源头,多数都能追溯到创建虚拟机时参数没选对。这篇文章从零开始,手把手讲完整流程:准备工作、创建向导、系统安装、网络配置、故障排查,再到快照和克隆这类进阶玩法,尽量用最直白的话讲清楚背后的道理。适合没用过虚拟机的新手,也适合建好虚拟机却老出问题的同学。

1. 创建虚拟机前先想清楚的三件事

1.1 虚拟机到底在解决什么问题

虚拟机解决的问题,说白了就是三个:系统隔离、环境复现、快速回滚。你可以把物理电脑理解成一间大房子,虚拟机就是在房子里隔出若干小单间,每个单间可以装不同的系统、跑不同的软件,单间之间互不串门。比如你日常用Windows办公,但想学Linux,或者想跑一些只在Linux下才顺手的服务,直接用虚拟机装一个Ubuntu,体验和独立电脑几乎一样。再比如你要测试一个会删数据的脚本、会改注册表的软件,那就在虚拟机里跑,出了任何问题都不会拖累宿主机。

以前要同时用Windows和Linux,最土的办法是装双系统,来回重启切换,还容易把引导搞坏。虚拟机直接把这个问题解决了:两个系统可以同时运行,屏幕上开几个窗口就是几个系统,想用哪个点哪个。更进一步,因为虚拟机里所有东西归根到底都是磁盘上的几个文件,你可以随时打一个快照,在里面怎么折腾都不怕,坏了就回滚到之前的某个状态。

我个人的理解是,虚拟机最大的价值是“允许你犯错”。学习阶段的折腾、测试环境的搭建、应急情况下临时恢复旧系统,都可以在一个隔离环境里放心操作。热词里看到很多人搜“虚拟机运行游戏”“虚拟机安装Linux系统”这类问题,其实都是在用这个特性。开发人员可以用它搭建与生产环境一致的开发环境,运维人员可以用它练手各种服务部署,学生可以用它反复练习系统安装,普通用户想体验新系统也完全不用冒着重装电脑的风险。

1.2 主流虚拟机软件怎么选:VMware、VirtualBox还是Hyper-V

现在个人电脑上常用的虚拟机软件主要是三款:VMware Workstation Pro、VirtualBox、还有Windows自带的Hyper-V。这三款我都用过,各有各的脾气,但如果你主要是在自己的Windows电脑上做实验,我建议首选VMware Workstation Pro。这里有个好消息,VMware Workstation Pro现在已经对个人用户免费,去官方站点注册一个个人账号就能拿到许可证,不需要再到处找安装包。

功能点VMware Workstation ProVirtualBoxHyper-V
支持平台Windows / LinuxWindows / macOS / Linux仅Windows
授权方式个人用户免费开源免费Windows系统内置
图形与3D支持较好一般一般
快照 / 克隆 / 加密功能完整快照克隆有,加密较弱偏向服务器场景
新手友好度高中低

VMware Workstation 16和17版本我都用过,17的界面更简洁,但是创建虚拟机的底层逻辑没有太大变化。VirtualBox免费开源、跨平台,尤其适合在macOS上跑虚拟机,但它的性能上限和偶发兼容性问题比较考验耐心。Hyper-V是Windows系统自带的功能,适合公司服务器做底层虚拟化,个人桌面日常折腾不建议直接用,因为创建Linux虚拟机时显卡和驱动会有兼容问题,操作门槛也更高。

如果你的电脑配置比较老,或者想在macOS上跑虚拟机,VirtualBox也是一个很好的选择。只是装完系统后记得安装“增强功能”,否则鼠标切换、剪贴板共享、自适应分辨率这些体验都会差一截。我的建议很简单:Windows上折腾就VMware,macOS上折腾就VirtualBox,公司生产环境再考虑Hyper-V或专门的虚拟化平台。

1.3 动手前要准备什么:硬件、BIOS与系统镜像

很多人建虚拟机建到一半才发现卡壳:要么镜像不完整,要么启动就报错,要么根本没有开启CPU虚拟化。准备工作做扎实,后面能省一半时间。

第一,确认CPU虚拟化是否开启。现在几乎所有主流CPU都支持硬件虚拟化,Intel叫VT-x,AMD叫AMD-V,但很多电脑主板的BIOS默认是关着的。检查方法很简单,Windows下打开任务管理器,切到“性能”页,选中CPU,看右下角“虚拟化”一栏是否显示“已启用”。如果显示“已禁用”,需要重启电脑进BIOS,找到Intel Virtualization Technology、VT-x或SVM Mode这类选项,设为Enabled,保存重启。

第二,看内存和磁盘。个人建议物理内存至少16GB,8GB也能跑但会比较紧张。创建虚拟机时,要预留至少4GB内存给宿主机系统,不能让虚拟机把内存吃干。磁盘剩余空间建议至少50GB,因为一个Windows虚拟机的镜像文件动辄十几GB,再装几个软件就涨上去了。

第三,准备系统镜像。Windows镜像建议从微软官方渠道下载,Linux发行版镜像去各发行版官网下载,Ubuntu就访问ubuntu.com下载页面。下载完,建议校验一下哈希值,尤其是从非官方渠道拿来的镜像。Windows的PowerShell里可以这样算:

Get-FileHash D:\Downloads\ubuntu.iso -Algorithm SHA256

把算出来的值跟官网公布的值比对一下,一致才说明镜像完整、没被改动。这一步真不是可有可无,我见过太多人从第三方站点下了个残缺镜像,安装到一半报错,白白浪费好几个小时。

2. 创建虚拟机的完整步骤与参数详解

2.1 新建虚拟机向导逐步拆解

打开VMware Workstation,点“创建新的虚拟机”。向导有“典型”和“自定义”两条路,我的习惯是一律选“自定义”,因为典型模式会把很多关键参数隐藏起来,出了问题反而不容易排查。

第一步,兼容性选择当前Workstation版本,一般默认即可。第二步,选“稍后安装操作系统”。很多新手在这一步会直接把ISO镜像选上,我建议先不选,因为先建一个干净的虚拟机外壳、后面再挂载镜像,会灵活很多,尤其是装完系统后想换ISO做测试的时候。

第三步,客户机操作系统类型。这里要选对系统类型和版本,比如Ubuntu 64位、CentOS 7 64位、Windows 10 x64。这个选项会影响虚拟机的固件类型、磁盘控制器和芯片组默认配置。如果你拿的是32位老镜像,却选了个64位版本,后面引导就会出各种奇怪问题。

第四步,虚拟机名称和存放目录。这一点容易被忽略,但非常重要。我强烈建议每个虚拟机单独放在一个目录里,比如D:\VMs\Ubuntu-22.04,这样以后找快照、做克隆、整体迁移都省事。虚拟机目录里通常会有一个vmx配置文件,以及一个或多个vmdk虚拟磁盘文件。

第五步,固件类型。新版VMware默认选UEFI,老镜像或某些精简版Linux建议选传统BIOS。装Windows 10/11用UEFI没问题,装老版本系统或个别Linux发行版,选BIOS更稳。后面遇到黑屏问题,很多都和固件类型选错有关。

第六步,处理器、内存、磁盘参数,细节我放到下一节讲。

第七步,在“自定义硬件”界面里,把不需要的声卡、打印机、软驱移除,并且确认CD/DVD光驱“启动时连接”已勾选,同时指向你的ISO镜像。最后点完成,一个虚拟机的硬件壳子就建好了。

建完之后,虚拟机本身还只是个“空壳”,要按下电源按钮开机,它才会从光驱引导并安装系统。

2.2 CPU、内存、磁盘参数怎么定才不卡

创建向导里最核心的三个参数是:处理器数量、虚拟机内存、磁盘大小。很多人习惯性往高里给,结果宿主机卡死,虚拟机也没变快,这其实是对资源分配的理解出了问题。

先给一套适合多数学习场景的默认配置:

使用场景vCPU数量内存动态磁盘大小
Windows 10/11桌面体验24GB60GB
Linux服务器/命令行学习1-22GB20GB
Linux桌面(带GUI)24GB40GB
跑Docker/K8s等测试48GB80GB

vCPU数量建议不超过物理机核心数,但不代表给得越多越快。虚拟机里的CPU调度依赖宿主机,分配过猛会导致宿主机资源枯竭。我的经验是,单台虚拟机给2到4核足够绝大多数学习场景,真要跑编译或压测再临时加大。内存是实打实要占用的,给虚拟机分配4GB,宿主机就少了4GB,所以所有虚拟机内存总和不要超过物理内存的70%,留一些余量给宿主机系统。

磁盘有两种分配方式:立即分配所有空间,以及动态分配。动态分配下,虚拟磁盘文件会随着使用增长,刚开始只占很小体积,适合大多数场景。立即分配性能略好,但会一次性占用磁盘空间。另一个选项“将虚拟磁盘拆分成多个文件”,默认就可以选,好处是备份和迁移更灵活,虽然有一点点性能损耗,个人使用基本感觉不到。

补充一个细节:虚拟机硬盘接口建议用SATA或NVMe。新系统用NVMe没问题,老系统求稳就选SATA。桥接网络、USB控制器这些设备也尽量按需保留,不需要的全删掉,减少启动时的设备枚举时间。

2.3 系统镜像从哪里下载,怎么校验

镜像来源问题,值得单独说一遍。Windows镜像去微软官网下载,不要随便搜索什么“精简版”“优化版”,因为你永远不知道别人在镜像里塞了什么。Ubuntu从官方网站下载桌面版或Server版ISO,CentOS Stream从CentOS官网下载。如果你要用的是一些专用镜像,比如EDA虚拟机、装好Zabbix的虚拟机镜像,那就从对应项目的官方渠道获取,并且看清楚它写明支持哪个虚拟化平台,是VMware还是VirtualBox。

拿到镜像后,强烈建议校验SHA256。Linux和macOS下用命令行:

sha256sum ubuntu.iso

Windows下用PowerShell的Get-FileHash。比对官方给出的校验值,如果一致再开始安装。我把话放这儿,很多安装中遇到的“文件损坏”“找不到内核”“卡在某个百分比”的报错,十有八九是镜像本身有毛病,而不是虚拟机的问题。

2.4 开电源前必须检查的设置项

新建完虚拟机,我从来不会急着点“开启此虚拟机”,会按下面几项过一遍设置。

第一,检查“虚拟机设置-处理器”,确认“虚拟化Intel VT-x/EPT 或 AMD-V/RVI”这个选项是否勾选。这个选项非常重要,物理机BIOS的虚拟化开关打开后,在VMware里还要勾上它,才能让虚拟机获得完整的硬件虚拟化能力。如果你后面想在虚拟机里再跑虚拟机,也就是嵌套虚拟化,那这个选项更是必须的。

第二,检查内存是否合理。别给Windows虚拟机只分配512MB,也别一上来就分配16GB。按使用场景来。

第三,检查CD/DVD是否“启动时连接”,并且正确指向ISO文件。如果镜像路径变了、或者光驱没有勾选启动时连接,开机就会提示找不到引导设备。

第四,移除不必要的硬件。声卡、打印机、软驱,都不需要就删掉。虚拟软驱尤其碍事,有些系统启动时会尝试读软驱,卡半天。

第五,显示设置里先别勾3D加速。Linux的某些发行版在VMware里开启3D加速反而会黑屏,个人建议先不开,等装完VMware Tools、一切稳定后再打开也不迟。

3. 系统安装实测:Windows、Ubuntu、CentOS各走一遍

3.1 安装Windows虚拟机的关键操作

虚拟机开机后,如果屏幕下方出现“Press any key to boot from CD/DVD”的提示,这时要在虚拟机窗口里点一下,然后按键盘任意键,才能从光驱引导。很多新手看到黑屏就一直傻等,其实只是没按那个键。

进入Windows安装界面后,我建议选“自定义:仅安装Windows”,不要选“升级”。升级选项会去检查旧系统,反而添麻烦。产品密钥可以先跳过,装完系统再激活完全来得及。磁盘分区部分不用手动折腾,直接选中整块虚拟磁盘,下一步即可。虚拟磁盘本来就是一块空盘,分区交给Windows自动处理才是正路。

第一次进桌面后,你会觉得分辨率很别扭,鼠标也移不出虚拟机窗口,这是没装VMware Tools的典型症状。先在虚拟机里打开光驱,运行VMware Tools的安装程序setup64.exe,装完重启,分辨率、鼠标切换、剪贴板共享就全部正常了。如果在虚拟机窗口里鼠标卡住,按Ctrl+Alt可以把鼠标释放出来,装了Tools之后就不需要这个热键了。

3.2 安装Ubuntu/CentOS时最容易翻车的3个地方

Ubuntu安装相对简单,但翻车的地方也不少。第一个是“安装类型”选择。新手看到“清除整个磁盘并安装Ubuntu”会吓一跳,以为会删掉宿主机的东西。放心,虚拟机里就是一块虚拟空盘,选这个完全没问题。

第二个是更新和第三方驱动的勾选项。为了安装速度,一般可以不勾“在安装时下载更新”,装完系统再手动升级。第三个是安装完成重启时,屏幕提示“请移除安装介质,然后按回车”。在VMware里虽然光驱还连着ISO,但一般会自动跳过,如果卡住了,就在虚拟机设置里把CD/DVD的“启动时连接”取消,或者在设备里直接断开光驱,再回到虚拟机里按回车。

CentOS和RHEL系特别注意:安装源的“软件选择”决定了你装出来的是什么环境。带图形界面的桌面环境适合新手,最小安装适合当服务器用。很多人装完最小安装后才发现连gcc都没有,还得补装开发工具,所以建议在软件选择界面里顺手勾上“开发工具”。磁盘分区用默认的LVM即可,不用去手动建复杂分区。

还有一个通用操作:如果Ubuntu安装过程中黑屏,可以试着按Ctrl+Alt+F2或F3切到命令行终端,登录后排查桌面服务。很多时候系统没死,只是显示层出了问题。

3.3 VMware Tools与增强功能:装了才有完整体验

不管是VMware还是VirtualBox,装完系统后第一件事就是装增强工具。VMware里叫VMware Tools,VirtualBox里叫增强功能,作用是一样的:它是一组驱动和服务,提供显卡驱动、鼠标无缝移动、剪贴板共享、文件拖拽、文件夹共享、时间同步等能力。

Windows虚拟机的安装方法前面说了,菜单“虚拟机-安装VMware Tools”,然后在虚拟机里运行安装程序。Linux虚拟机我更推荐直接装发行版仓库里的open-vm-tools,省事又稳定:

sudo apt install open-vm-tools

CentOS等RHEL系用:

sudo yum install open-vm-tools

装完重启。如果你用的是ESXi这类平台,系统里一般已经预装了open-vm-tools,不用重复装。VirtualBox用户对应要装“增强功能”,装完还要在虚拟机的“设置-常规-高级”里把“共享剪贴板”和“拖放”设置为“双向”,否则即使装了增强功能也没法双向复制。

4. 虚拟机联网:桥接、NAT、仅主机到底怎么选

4.1 三种模式的原理与适用场景

虚拟机网卡连接方式藏在“虚拟机设置-网络适配器”里。VMware的三种连接模式,每一种都对应不同的使用目的。选错了,就会出现“虚拟机连不上网”“宿主机访问不了虚拟机服务”这类问题。

模式原理适用场景外部设备能否直接访问虚拟机
桥接模式虚拟网卡直接连到物理网络,虚拟机像局域网里的一台独立机器需要被局域网内其他设备访问,比如搭网站、SSH连接能
NAT模式虚拟机通过宿主机共享上网,虚拟网段与物理网络隔开只需要上网、不需要外部主动来访默认不能
仅主机模式虚拟机和宿主机组成一个私有网络,与外网完全隔离测试纯内网服务不能

新手记不住也正常,我的速记方法是:桥接就是“这台虚拟机在路由器眼里是一台真实电脑”,NAT就是“躲在宿主机身后蹭网上网”,仅主机就是“关起门来自己玩”。

默认情况下,VMware新建虚拟机用的是NAT模式,这也是最适合新手的模式。NAT模式下,宿主机像一个透明路由器,虚拟机通过它访问外网。因为虚拟机的IP和宿主机物理网卡不在同一网段,所以不会和局域网里其他设备的IP冲突,也不需要你手动配置,几乎是打开就能上网。很多“虚拟机连不上网”的问题,从NAT换到桥接反而更复杂,没必要。

4.2 实战给虚拟机配固定IP

NAT模式下,虚拟机默认通过DHCP获取IP,IP地址可能会变。如果你长期要通过SSH连进虚拟机,或者要固定访问里面的服务,建议给虚拟机配一个静态IP。这里拿Ubuntu Server 22.04举例,新版系统用netplan管理网络:

sudo nano /etc/netplan/00-installer-config.yaml

把文件改成下面这样,注意网卡名要以实际上机查询到的为准:

network: version: 2 ethernets: ens33: dhcp4: false addresses: - 192.168.100.10/24 routes: - to: default via: 192.168.100.2 nameservers: addresses: - 223.5.5.5 - 8.8.8.8

这里192.168.100.2是VMware NAT模式的默认网关,它其实是宿主机侧虚拟出来的NAT网关。不同机器网段可能不同,如果不确定,就去VMware菜单“编辑-虚拟网络编辑器”里查看NAT网段。改完配置执行sudo netplan apply,然后ping网关、ping外网验证。

CentOS 7这类老系统有个经典问题:网卡默认没启用。执行ip addr如果看不到IP,检查/etc/sysconfig/network-scripts/ifcfg-ens33里的ONBOOT配置,把它改成yes,然后重启网络服务或者执行ifup ens33。

4.3 NAT模式下做端口映射,宿主机直接访问虚拟机服务

如果虚拟机跑了一个Web服务或SSH,而它用的是NAT模式,你想在宿主机浏览器里直接访问,那就需要做端口转发。

打开VMware菜单“编辑-虚拟网络编辑器”,选中NAT模式的VMnet8,点“NAT设置”,在里面添加端口转发规则。比如把宿主机的8080端口转发到虚拟机192.168.100.10的80端口,之后宿主机浏览器访问http://localhost:8080,就能看到虚拟机里的Web服务。

这里有个容易踩的坑:虚拟机里的服务必须监听0.0.0.0,不能只监听127.0.0.1,否则宿主机转发流量过去会被拒绝。另外宿主机的8080端口可能被其他程序占用,转发前先确认一下。这种端口转发只对宿主机本机访问有效,局域网其他设备想访问虚拟机服务,就得用桥接模式,或者在物理路由器上做端口映射了。

5. 虚拟机常见问题排查与避坑实录

5.1 安装Linux蓝屏、开机黑屏怎么救

“虚拟机安装Linux蓝屏”是非常高频的搜索词。先说蓝屏,两个高频原因:物理机BIOS没开启虚拟化,或者VMware里没勾选VT-x/AMD-V。先去任务管理器确认物理机虚拟化已启用,再检查虚拟机设置里的虚拟化引擎勾选。另一个原因和固件类型有关,若建虚拟机时选了UEFI,而ISO是传统BIOS引导的旧版Linux,就会出现启动异常。反过来也一样,回到虚拟机设置里把固件改成BIOS或UEFI再试。

开机黑屏也分好几种。一种是开机后风扇狂转、屏幕上只有光标在闪,这多半是显示驱动或图形加速的问题。先在虚拟机设置里关掉3D加速,黑屏一般就能解决。另一种是进入GRUB菜单后,选了“尝试或安装Ubuntu”就卡黑屏,这时在GRUB界面按e编辑启动参数,在linux行末加上nomodeset再启动,可以临时绕开显卡驱动问题。

如果只是屏幕没画面但虚拟机还在运行,可以按Ctrl+Alt+F2或F3切到命令行终端,登录后排查桌面服务。Ubuntu 20.04之后的内核在VMware里偶尔黑屏,还可能是Wayland显示服务器和虚拟机显卡驱动兼容性的问题,可以在登录界面切回Xorg会话,或者直接在GRUB里加nomodeset参数。

5.2 复制粘贴失效:为什么外面的命令粘不进虚拟机终端

“外面的命令怎么复制到ubuntu虚拟机内部的dos窗口”,这个问题其实包含了两个误解。第一,Ubuntu里的黑色窗口不叫DOS窗口,叫终端Terminal。第二,复制粘贴失效,90%的情况是VMware Tools没装好,或者服务没启动。

在Ubuntu里先确认open-vm-tools状态:

systemctl status open-vm-tools

如果没装或者服务异常,就安装并启用:

sudo apt update && sudo apt install open-vm-tools sudo systemctl enable --now open-vm-tools

重启虚拟机后,宿主机复制文本,再回到虚拟机里按Ctrl+V应该就能粘贴。如果粘贴到终端里没反应,试试右键菜单粘贴,或者按Ctrl+Shift+V。有些终端模拟器对Ctrl+V的处理方式不同,快捷键和宿主机冲突也常见。另外,如果你复制的是一整段命令,里面带了换行符,粘贴时可能只执行第一行,这不算故障,把命令拆开粘或者先在记事本里处理一下就好。

CentOS虚拟机复制不进去也是同一类问题,先装open-vm-tools再说。VirtualBox用户要注意,增强功能装完后还要把“共享剪贴板”设为双向,否则复制照样失效。

5.3 虚拟机连不上网怎么排查

虚拟机连不上网,按顺序查四件事:网卡连接模式、网卡是否启用、IP配置、DNS和防火墙。

第一,看虚拟机设置里的网络适配器是否是“已连接”,连接模式是NAT还是桥接。第二,进虚拟机执行ip addr,看网卡有没有IP。CentOS 7这类老系统经常是ONBOOT=no导致网卡没启用,改成yes并重启网络即可。Ubuntu如果没拿到IP,可以先执行sudo dhclient ens33临时获取,通网后再配置静态IP。

第三,ping网关,ping外网。网关能通、外网不通,基本是DNS问题,检查/etc/resolv.conf里的nameserver是否可用。第四,关掉防火墙再测试。CentOS 7用systemctl stop firewalld,Ubuntu用sudo ufw disable。如果防火墙关了就能通,那就是规则问题,而不是虚拟机网络本身没配好。

5.4 提示“CPU已被禁用”或“虚拟机CPU已禁用”怎么办

这个报错看着吓人,其实多数和虚拟机状态异常、虚拟化引擎选项有关。我在VMware里遇到“虚拟机CPU已禁用”,常见于Windows虚拟机开了快速启动、驱动异常,或者虚拟机之前被强制挂起/恢复后状态错乱。

处理步骤按顺序来:第一,彻底关闭虚拟机,不是挂起,然后想办法进客户机系统,关掉系统里的“快速启动”。第二,虚拟机设置-CPU,把“虚拟化Intel VT-x/EPT或AMD-V/RVI”勾上,重新开机。第三,如果还是报错,检查虚拟机目录下有没有.vmss挂起状态文件,有的话先删除再启动。第四,仍不行就在vmx配置文件末尾加一行vhv.enable = "TRUE",保存后重开VMware。改vmx前先备份,这是底线。

如果你用VirtualBox,对应的症状可能是“不能为虚拟机电脑打开一个新任务”。这个多半也是VT-x没有被虚拟机检测到。确认BIOS虚拟化开关打开,然后注意Windows系统的Hyper-V和基于虚拟化的安全(VBS)功能会和VirtualBox、VMware抢虚拟化资源,必要时关掉Hyper-V和VBS再试。

还有人遇到“电脑启动虚拟机后自动关机”。如果是笔记本,多是因为虚拟机满负载运行导致CPU过热,触发了保护关机。检查电源散热模式,限制虚拟机CPU占用,或者降低分配的CPU核数,通常能解决。

5.5 忘了root密码怎么进系统重置

在虚拟机里折腾系统,忘记root密码太常见了。虚拟机比物理机好救,因为它可以随便关电源、改启动参数。

CentOS 7/8的救法:开机进GRUB菜单,在启动项上按e,找到linux16或linux开头的那一行,在末尾加上rd.break enforcing=0,按Ctrl+X启动。进入shell环境后,依次执行:

mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot

Ubuntu更简单:开机进GRUB,选择“Advanced options for Ubuntu”,进入恢复模式recovery mode,选root,然后在shell里执行passwd命令改密码。

有人问“ESXi里的Ubuntu虚拟机忘记root密码,按ctrl+d输入不了”,这其实是理解错提示了。ESXi控制台弹出的“Give root password for maintenance”或类似提示,只是让你输入密码继续,而真正要重置密码得从GRUB菜单进入恢复模式或单用户模式,不是靠Ctrl+D。别被界面上的提示语带偏,思路还是走单用户重置那套。

最后提醒一句:这个操作只建议在虚拟机和自己的实验环境里折腾,生产环境请走正规的密码管理流程。

6. 虚拟机的性能优化与进阶玩法

6.1 快照是后悔药,但别当备份用

快照是虚拟机最值钱的功能之一。它把虚拟机的当前状态,包括内存、磁盘、硬件配置整个存下来,之后系统被你弄坏了,只要点一下“恢复到快照”,几分钟就回到拍照时的状态。

我的习惯是:每次安装大软件、跑危险脚本、修改系统关键配置之前,先打个快照。比如装VMware Tools前、升级内核前、配置NFS前,都打一个。出了问题直接回滚,比重装系统快一个数量级。

但快照不是备份。快照文件依赖原虚拟磁盘文件,原文件丢了照样抓瞎。真正的备份应该用VMware的“导出为OVF”功能,或者干脆把整个虚拟机目录复制到另一块盘上。另外快照别打太多,层层叠叠会占巨大磁盘空间,还会让虚拟机性能变差。我的经验是一台虚拟机一般只保留一到两个快照,确认没问题就删掉旧的。

6.2 克隆:一分钟复制一套环境

如果你辛苦搭好了一套“黄金模板”虚拟机,之后需要很多套相似环境,别再去重复安装系统。在VMware里右键虚拟机-管理-克隆,就可以复制出一套新虚拟机。

克隆分链接克隆和完整克隆。链接克隆省空间,但克隆出来的虚拟机依赖原始虚拟机的磁盘文件,原始虚拟机被删了,链接克隆也用不了。完整克隆是完全独立的副本,占空间但更稳,适合正式使用。

克隆前,建议把模板机里的主机名、SSH密钥这些容易冲突的东西清理一下。做正式克隆时,先把模板机关机,避免数据不一致。我经常用这套方法快速搭建集群学习环境,几分钟就能复制出好几台相同配置的机器,比一个个装系统高效太多。

6.3 磁盘瘦身与扩容

虚拟机磁盘越用越大,但系统里删了文件,vmdk文件却不见缩小,这是因为虚拟磁盘被写过的块不会自动释放。VMware中可以使用vmware-toolbox-cmd压缩磁盘,Linux下执行:

sudo vmware-toolbox-cmd disk shrink /

Windows下则需要先做磁盘碎片整理,再用VMware菜单“虚拟机-管理-整理磁盘碎片”。不过这方法耗时且效果有限,我更推荐创建虚拟机时直接把磁盘规划得大一点,避免后期扩容。

真要扩容也不难。先在虚拟机设置-硬盘里点“扩展”,填入新容量大小。这一步只是让虚拟磁盘文件变大,系统里的分区还需要手动扩展才行。Ubuntu可以用growpart加resize2fs,或者直接装gparted图形分区工具操作;Windows用磁盘管理里的“扩展卷”就行。

另外有人问“如何删除虚拟机目录”。流程是先彻底关机,在VMware里从库中移除虚拟机,再找到虚拟机目录手动删除。注意“移除”不等于删除文件,库里没有这台机器了,但磁盘上的目录还在,想彻底清干净一定要去文件系统里删掉那个目录。

6.4 虚拟机加密:防止别人直接拷走

VMware Workstation Pro对虚拟机加密有原生支持。右键虚拟机-设置-访问控制,可以给虚拟机设置一个加密密码。加密之后,哪怕别人把你的虚拟机目录整个拷走,没有密码也启动不了。

这个功能特别适合携带实验环境、向别人分发虚拟机镜像的场景。但要注意两件事:一是加密后每次开机VMware都会弹窗要求输入密码,日常使用略麻烦;二是密码忘了,虚拟机基本打不开、数据也无法恢复。所以密码一定要存到密码管理工具里,别随手写在一个桌面txt里,那就跟没加密一样了。VirtualBox也有类似能力,主要在磁盘介质加密层面,叫“磁盘加密”,操作路径不太一样,但思路相同。

6.5 多开虚拟机时的资源分配心得

很多人电脑配置不错,动不动就想同时开三四个虚拟机。我的建议是两个原则:所有虚拟机内存总和不超过物理内存的75%,所有vCPU总和不超过物理核心数。理论上可以超卖,但一旦宿主机内存吃紧,系统开始疯狂换页,所有虚拟机都会卡成幻灯片。

具体分配时,优先保证当前正在用的那台虚拟机资源充足。比如物理机16GB内存,打算开两台虚拟机,那就一台4GB,宿主机预留8GB,等有需要再给虚拟机临时加内存。VMware支持在虚拟机开机状态下动态调整内存,前提是客户机系统支持,这个功能很实用。

CPU核数的分配也一样。很多应用是单线程的,给4核和给8核没有任何区别。与其盲目加核,不如保证内存和磁盘IO够用。对个人用户来说,瓶颈往往在磁盘,所以把虚拟机目录放在固态硬盘上,比多分配两个vCPU有用得多。

最后分享一个我自己用下来的习惯:别把虚拟机当成一次性玩具。新建时花十分钟把目录命名、硬件参数、快照计划想清楚,后面能省出大量折腾时间。遇到黑屏蓝屏,不要第一时间重装,先检查CPU虚拟化、固件类型、Tools装没装、网络模式对不对。这些问题排查过一遍之后,你对虚拟化的理解会上一个台阶,之后再用ESXi、KVM这些更底层的平台,也会顺手很多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询