这几个月我又在VMware里折腾了几次Ubuntu,从装系统到配开发环境,再到系统被我改坏之后狼狈地救回来,整个过程基本踩遍了新人能踩的坑。这篇不打算搞成那种一步一步抄过来的流水账,而是把“Ubuntu虚拟机配置”这件事里的关键决策和底层逻辑讲清楚,附带我实际执行过的命令和参数。不管你是刚接触Linux想装个虚拟机练手,还是已经装了但遇到黑屏、蓝屏、忘记密码、环境变量改坏这类问题,都能在这里找到对应的解法。整篇文章基于Ubuntu 22.04 LTS加VMware Workstation Pro这套组合,这套组合目前最稳,资料也最多。
1. 为什么非要在虚拟机里跑Ubuntu:先算一笔成本账
1.1 虚拟机方案的真实价值:系统是拿来“折腾”的
很多新人问的第一个问题是:我想学Linux,为什么非要装虚拟机,直接装个双系统不行吗?我的回答很简单:双系统适合“确定要用”,虚拟机适合“需要折腾”。你装Ubuntu大概率不只是为了开机看桌面,而是要装环境、配软件、改配置。这个过程中一定会改坏东西,而Windows是你日常要用的系统,双系统下Ubuntu挂了不影响Windows,但来回重启很烦,切换成本极高。
虚拟机最大的价值就一条:系统级隔离。虚拟机里的Ubuntu本质上是一个独立文件,不管里面怎么折腾,宿主机Windows都不受影响。配合VMware的“快照”功能,可以做到“系统挂了,一键回到五分钟前”。我在搭开发环境的时候,每次配置完一个关键节点就拍一个快照,后面出问题直接回滚,比重装系统快十倍。这就相当于给Linux初学阶段买了一份保险。
1.2 怎么选虚拟机软件:为什么我站VMware Workstation Pro
虚拟机软件主流就是VMware和VirtualBox。我两台电脑上都装过,实际用下来VMware Workstation Pro的体验明显更顺。它有三个优势很关键:
- 快照机制更稳:VMware的快照是基于磁盘差分技术,创建快照后原虚拟磁盘变成只读基底,新增数据写到差分文件里,回滚时只要切换指针即可,速度快、占用小。VirtualBox也有快照,但机制实现不同,在频繁读写场景下更容易出问题。
- 拖拽和剪贴板共享更成熟:装了open-vm-tools之后,Windows和Ubuntu之间可以直接拖文件、共享剪贴板。这个功能在开发环境下太重要了,命令、代码、配置文件随手就粘过去了。
- 3D加速能力更强:虚拟机里跑GNOME桌面,VMware配合3D加速桌面流畅度比VirtualBox好不少。
而且现在VMware Workstation Pro已经对个人用户免费了,直接去官网下载安装就行,不需要再找旧版注册码。如果你实在不想用VMware,VirtualBox也能完成90%的工作,但下面的步骤建议以VMware为准。
注意一点:Windows自带的Hyper-V和WSL也可以跑Linux环境,但它们和VMware会抢虚拟化资源。如果出现VMware启动虚拟机特别慢、或者直接报“VMware与Hyper-V不兼容”的问题,需要检查Windows功能里Hyper-V、虚拟机监控程序平台是否被打开了,关掉它们再重启电脑。
1.3 硬件门槛有多低:别被“高性能”吓住
跑Ubuntu虚拟机的门槛远低于你的想象。拿Ubuntu 22.04桌面版来说,内存分配2GB就能开机,4GB就很流畅,CPU给2核心,磁盘40GB足够日常使用。宿主机如果只有8GB内存,分4GB给虚拟机也能接受,前提是别同时跑太多Windows软件。我的老笔记本是i5-8250U加12GB内存,虚拟机分配4GB+2核,日常写代码、跑编译完全够用。
还有一个容易踩的坑:虚拟化开关。VMware跑64位Ubuntu要求CPU支持并开启硬件虚拟化(Intel VT-x或AMD-V)。很多人装的时候报“此主机支持Intel VT-x,但Intel VT-x处于禁用状态”,直接进BIOS/UEFI里找Intel Virtualization Technology打开就行。不同主板位置不一样,一般都在Advanced/CPU Configuration菜单下。
2. VMware里装Ubuntu 22.04:从镜像到首次进桌面的完整步骤
2.1 镜像下载:官网和国内镜像源怎么选
镜像选择是很多人容易懵的第一个点。Ubuntu官网下载页提供的是官方源,国内访问速度有时候不稳定。我的习惯是优先用国内高校或云厂商镜像站,比如清华TUNA镜像站(mirrors.tuna.tsinghua.edu.cn)和阿里云镜像站(mirrors.aliyun.com),选择“22.04.4”或对应小版本目录,下载那个名字里带desktop-amd64.iso的文件就行。
这里说一下版本命名规则:Ubuntu的版本号是“年份.月份”,22.04就是2022年4月发布的版本,属于LTS(Long Term Support)长期支持版,支持周期长达五年以上,比那些短期版本省心太多。新手选版本只有一个原则:别盯着最新版,认准XX.04 LTS版本。20.04、22.04、24.04都可以,教程最多的是22.04,第三方依赖兼容性也最好。至于后缀amd64是64位x86架构,现在几乎不存在32位宿主机了,直接选amd64没问题。
2.2 新建虚拟机的核心参数:内存、CPU、磁盘这样给
打开VMware,选择“创建新的虚拟机”,这里有两个模式:典型和自定义。我建议选自定义,不是因为它难度更高,而是可以一步到位设置好参数,避免后面频繁改配置。
关键参数按这个来:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 客户机操作系统 | Linux / Ubuntu 64位 | VMware会根据这个预置兼容配置 |
| 固件类型 | UEFI 或 BIOS | 默认即可,别瞎改 |
| 内存 | 4096MB | 4GB是流畅和资源占用之间的平衡点 |
| 处理器 | 2核心(处理器数量1,每个处理器2核) | 取决于宿主CPU,8核以上可以给4核 |
| 虚拟磁盘 | 60GB,选择“将虚拟磁盘拆分成多个文件” | 拆分成多个文件便于复制迁移,40GB能装完系统加开发环境,给60GB是留富余 |
| 网络类型 | NAT模式 | 默认即可,NAT下虚拟机共享宿主网络,不需要额外配置 |
网络模式简单说两句,VMware提供三种模式:桥接模式让虚拟机像一台独立设备直接接入局域网,NAT模式通过宿主机转发上网,仅主机模式只能和宿主机通信。开发学习用NAT最省心,不需要关心网段冲突,宿主机断了网虚拟机也断网,符合直觉。
2.3 安装过程的关键决策点:语言、分区、账户
挂载ISO后启动虚拟机,会进入GRUB引导菜单,选第一项“Try or Install Ubuntu”。这里有个细节:我建议先选“Try Ubuntu”进入体验环境,再从桌面上的图标安装。原因很简单,体验环境可以顺便测试一下鼠标、键盘、显示分辨率是否正常,如果体验环境下就黑屏,直接安装大概率也会出问题。
进入安装界面后,语言选择建议用中文,虽然有些技术文档里英文路径更统一,但对新手来说,一个看得懂的安装界面能减少很多心理压力。键盘布局默认就好。接下来关键的是分区:
- 新手:直接选“清除整个磁盘并安装Ubuntu”,这是虚拟机的正确打开方式。别怕“清除”这两个字,它清的是虚拟磁盘,不是宿主机磁盘。
- 有经验:手动分区,给
/分配50GB,/home分配剩余空间,swap分配2GB。虚拟机场景下不需要单独分/boot,更没必要搞复杂的LVM。
让我解释一下为什么“清空整盘安装”对虚拟机最优。手动分区在物理机上是为了:系统盘崩了不影响数据盘、重装系统不丢数据。但虚拟机本身就是个文件,数据安全靠VMware快照而不是分区来保证,搞复杂分区除了增加自己的心智负担,没有任何实际收益。
账户设置注意两点:用户名别用中文,密码别太复杂但一定要记住。安装过程会问是否启用联网下载更新,建议先跳过,装完系统再手动换源更新,速度反而更快。整个安装过程大概10到15分钟,取决于虚拟机磁盘I/O和宿主CPU。
2.4 开机后第一件事:装open-vm-tools
系统装完重启,进入了Ubuntu桌面,现在的体验大概率是:分辨率只有1024×768,鼠标在Windows和虚拟机之间切换不流畅,无法拖拽复制文件。这些问题的根源只有一个:没装VMware Tools。
注意:不要下载VMware自带的VMware Tools安装包。很多人照着老教程点击“安装VMware Tools”,然后在Ubuntu里编译安装,各种依赖问题能卡一晚上。现在的正确做法是直接用APT装开源版本open-vm-tools:
sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y sudo systemctl enable --now open-vm-tools sudo reboot重启后分辨率会自动适应VMware窗口大小,剪贴板共享、文件拖拽也都能用了。这个细节为什么值钱?因为90%的Ubuntu虚拟机卡在“屏幕太小、复制粘贴不便”这一关就放弃了,而解决方案其实只需要这么一条命令。记住一个原则:VMware Tools用系统的包管理器装,永远不要去官网下载那个tar包。
3. 装完别急着开发:基础配置先做这几件事
3.1 修改APT软件源:更新速度提升明显
Ubuntu的软件包管理工具是APT,它的下载源配置在/etc/apt/sources.list文件里,默认指向官方源archive.ubuntu.com。在国内直接用官方源,sudo apt update经常卡住,因为官方源服务器部署在海外,速度慢且不稳定。这个问题的解法是换成国内镜像源。
改源之前先备份,操作如下:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's|http://archive.ubuntu.com/ubuntu/|http://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list sudo apt update这里解释一下为什么用sed直接替换而不是手动编辑:22.04的sources.list内容比较多,手动编辑容易删错行或者漏掉某个组件,用sed只替换域名,保留原有格式和组件目录(main、restricted、universe、multiverse)最安全。无论用清华镜像还是阿里云镜像,本质都是换了拉取软件包的服务器,不影响软件包本身的安全性和完整性。
换源后sudo apt update如果报错,八成是当前Ubuntu版本代号和源里写的路径不匹配。22.04的代号是jammy,如果你看到sources.list里的impish(21.10)之类的旧代号,说明源文件版本不对,需要手动改回来。这个问题在升级系统时尤其常见。
3.2 配置SSH:用宿主机终端直接管虚拟机
虚拟机里操作终端,有时候鼠标切入切出很烦人。我强烈建议装完系统后马上装SSH服务,这样可以在Windows宿主机上用终端工具(比如Windows Terminal或MobaXterm)直接连到虚拟机里操作,感觉和在真实Linux服务器上工作完全一样。
sudo apt install openssh-server -y sudo systemctl enable --now ssh ip addr show | grep inet看到类似192.168.xxx.xxx的地址后,在Windows终端里执行:
ssh 用户名@虚拟机IP输入密码就能登入。为什么我推荐这么做:一是复制粘贴命令方便,不需要依赖虚拟机的剪贴板共享;二是很多开发工具(比如VS Code的Remote-SSH插件)可以连接虚拟机开发,代码直接在虚拟机里编辑运行,体验接近真实服务器开发;三是一旦虚拟机图形界面出问题(黑屏之类),你还可以通过SSH进系统救回来,这一点在后面问题部分还会强调。
3.3 中文输入法设置:还是有点坑的
Ubuntu里中文输入法是一个绕不开的痛点。系统爱国安装中文语言包后,默认用IBus输入法框架。打开“设置-系统-区域和语言-输入源”,添加“汉语(智能拼音)”,大多数情况下就能用了。但如果你遇到以下情况:输入法选项里没有中文、或切换到中文输入法后打字卡顿、候选词不显示,最简单的解决方案是切换成Fcitx5:
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-configtool -y然后在系统里打开“语言支持”,把键盘输入法系统从IBus改为Fcitx5,注销重新登录,再用fcitx5-configtool添加拼音输入法。这里有个小坑:装完Fcitx5后不注销直接切可能完全没反应,因为输入法框架是会话级别的,必须重新登录才生效。
中文输入法这块我的建议是:别追求功能全,追求“能用”。虚拟机里用中文输入法主要是写笔记、搜资料,不便和卡顿影响不大,能用默认IBus就先别折腾Fcitx5。
3.4 快照功能:系统装完先打一发“后悔药”
基础配置做完,马上拍一个快照。VMware界面顶部菜单:虚拟机-快照-拍摄快照,命名写“基础系统-已配置源”,描述写清楚这个状态包含什么。这个习惯一定要养成,原因只有一条:快照是虚拟机相比物理机最大的优势,不用就是浪费。
快照的工作原理是:拍摄快照后,VMware会冻结当前虚拟磁盘状态作为基底,后续所有写入都到一个新的差分文件里。当你想回滚时,VMware把磁盘指针切回当前快照状态,虚拟机立刻恢复到拍摄瞬间。这个过程中即使虚拟机已经彻底损坏无法进入,只要VMware本体能识别虚拟磁盘文件,就能回滚。所以快照是应对“系统装废,无法进入”这类灾难性问题的终极底牌。
我自己的习惯是三个快照点:刚装完系统、配好基础环境、装完开发环境。如果项目里要装一些“不干净”的软件(比如老版本Ruby库、某些不被维护的依赖),装之前再补一个临时快照。快照不用拍太多,两三个够用就行,太多会占用磁盘空间且拖慢虚拟机性能。
4. 开发环境四件套:Git、Node.js、MySQL、Docker安装实录
4.1 Git安装与配置:三个必需项
绝大多数场景下Git直接用APT安装即可,版本不算最新但稳定够用:
sudo apt install git -y装完以后必须做三件事,否则后面用起来很别扭:
git config --global user.name "你的名字" git config --global user.email "你的邮箱" ssh-keygen -t ed25519 -C "你的邮箱"第一、二是把提交作者信息写进全局配置,跳过的话每次commit都会提示要补;第三是生成SSH密钥,用来绑定Gitee、GitHub这类平台。密钥生成后~/.ssh/id_ed25519.pub文件里的内容就是公钥,把公钥粘到平台的“SSH keys”设置里,以后clone私有仓库就不需要输密码了。
一个小坑:直接运行git pull或git push提示Host key verification failed,别慌,这是首次连接远端服务器时要确认指纹,输入yes回车即可。如果一直提示Permission denied (publickey),优先检查是不是用户名邮箱配置错了,以及密钥是否绑定到了正确的账号上。
4.2 Node.js:用nvm装才省心
Node.js的环境变量配置是整个开发环境中涉及“环境变量”逻辑最典型的一处。很多人上来就apt install nodejs npm,装完发现版本是老的,然后又手动下载tar包、手动改PATH、手动把npm注册地址改来改去,最后环境变量一团乱。我的建议是用nvm(Node Version Manager)管理Node版本。
sudo apt install curl -y curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash安装脚本执行完后,nvm会把环境变量写到~/.bashrc里,重新打开终端或者执行source ~/.bashrc后即可使用。然后安装Node.js LTS版本:
nvm install 20 nvm use 20 node -v npm -v这里解释一下为什么推荐nvm:它是用户级别的版本管理器,不需要sudo,不需要手动改系统级环境变量,每个Shell会话按需激活。环境变量出问题也就局限在当前用户目录,不会像改/etc/profile那样弄成整个系统起不来。而且nvm可以一条命令切换Node版本,对前端开发来说太刚需了。
npm默认下载源是官方registry,国内速度慢。一条命令切换:
npm config set registry https://registry.npmmirror.com设置完执行npm config get registry能输出新地址就说明生效了。
4.3 MySQL安装与基本配置
MySQL在Ubuntu虚拟机里的安装逻辑和Windows完全不同,最容易踩的坑是“装完登录不了、密码不对、权限拒绝”。一步步来:
sudo apt install mysql-server -y sudo systemctl status mysql安装完成后,Ubuntu的MySQL默认root用户使用auth_socket认证,也就是本地root系统用户直接输命令就能进MySQL,不需要密码。默认登录方式:
sudo mysql -u root看到MySQL提示符就说明安装成功了。接下来执行安全初始化:
sudo mysql_secure_installation这个脚本会问是否设置root密码、是否移除匿名用户等,按提示一路Y即可。之后日常使用建议新建一个开发账号,而不是一直用root:
CREATE USER 'dev'@'localhost' IDENTIFIED BY '你的密码'; GRANT ALL PRIVILEGES ON *.* TO 'dev'@'localhost'; FLUSH PRIVILEGES;常见报错和排查:
ERROR 1698 (28000): Access denied for user 'root'@'localhost',说明尝试用密码登录但是root还是socket认证方式,改用sudo mysql -u root登录,然后执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';切换认证方式。- 如果服务起不来,多半是数据目录权限问题,用
sudo tail -n 50 /var/log/mysql/error.log看具体报错,比瞎搜日志效率高得多。
如果你需要在外部工具(比如DBeaver、Navicat)连接虚拟机里的MySQL,登录用户host要设为'%'而不是'localhost',然后在虚拟机里确认防火墙没拦3306端口。NAT模式下宿主机连接虚拟机MySQL需要配置端口转发,这个场景实际用得少,暂不展开。
4.4 Docker安装:一条命令还不够的细节
Docker在Ubuntu上的安装也是经典话题。官方推荐方式是配置Docker官方APT源然后安装,但在国内直接连官方源经常失败。我的做法是用Ubuntu官方源里的docker.io包:
sudo apt install docker.io -y systemctl status docker sudo systemctl enable docker这样装的Docker版本可能比单纯用官方源稍旧,但胜在稳定、不用折腾源。装上之后有件事必须做,否则每次执行docker命令都要加sudo:
sudo usermod -aG docker $USER添加完之后注销重新登录,再执行docker version验证。这个操作的原理是:Docker守护进程通过socket与客户端通信,这个socket文件归属于root用户和docker用户组,把当前用户加入docker组后就有了访问权限。不重新登录不生效,这是很多人改完组以后依旧报权限拒绝的原因。
再配置一下国内镜像加速地址。编辑或新建/etc/docker/daemon.json:
{ "registry-mirrors": ["https://docker.m.daocloud.io", "https://mirror.ccs.tencent.com"] }保存后执行:
sudo systemctl daemon-reload sudo systemctl restart docker docker run hello-world能打印出Hello from Docker,这就算彻底跑通了。这里多说一句:daemon.json起作用的机制是Docker守护进程启动时会读取这个文件,所以任何改完路径或镜像加速不生效的问题,第一件事先看“有没有restart docker”,第二件事看JSON格式是不是正确,第三件事再怀疑网络。
5. 虚拟机常见问题速查:蓝屏、黑屏、密码、环境变量全解法
5.1 VMware报“无法连接到虚拟机”怎么办
这个弹窗文字是:“VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用。”配上错误代码,新手极易慌,以为虚拟机文件坏了。实际上这个提示的意思是VMware客户端和虚拟机进程之间的通信通道没建立起来,常见原因有三个:
- VMware Authorization Service服务没运行。右键“此电脑-管理-服务”,找到VMware Authorization Service,启动类型改为“自动”,如果处于停止状态直接启动。
- 虚拟机目录下有残留的锁文件。虚拟机关机时如果VMware进程崩溃,虚拟机目录下会残留
.lck开头的文件夹,右键虚拟机属性找到工作目录,删除里面所有.lck文件,然后重新启动虚拟机。 - 权限问题。以管理员身份运行VMware Workstation,很多只报这个错但服务正常、锁文件没有的情况,往往就是普通用户的权限不够。
执行一遍下来,90%能解决。顺序建议:先看服务,再删锁文件,最后换管理员运行,三步都不需要重装虚拟机。
5.2 虚拟机黑屏、蓝屏的排查路径
黑屏和蓝屏要分开说。
Ubuntu黑屏,最常见的一种表现是:开机引导正常、能看到鼠标光标、但是桌面不显示或者分辨率错乱。排查思路先从“系统内核有没有起来”入手:按Ctrl+Alt+F2或Ctrl+Alt+F3切到TTY终端,如果能出现登录提示,说明系统完全正常,纯粹是显卡或显示服务问题。这时在TTY里执行:
sudo apt install --reinstall open-vm-tools-desktop -y sudo reboot如果重装后还是黑屏,大概率是虚拟机的3D加速和显卡驱动不兼容。打开“虚拟机设置-显示器”,取消勾选“加速3D图形”,重启虚拟机。另外还有一个很实际的解法:修改GRUB启动参数,在系统启动时进入GRUB菜单按e,找到以linux开头的那一行,末尾加上nomodeset,然后按Ctrl+X启动。nomodeset的作用是让内核不加载显卡模式设置模块,保守地用通用帧缓冲显示画面,能解决很多虚拟机里的显示花屏、黑屏问题。确认有效后,把nomodeset写入/etc/default/grub里的GRUB_CMDLINE_LINUX_DEFAULT,执行sudo update-grub持久化。
宿主机蓝屏,通常是VMware和Windows的虚拟化功能冲突导致。最直接的办法是关闭Windows的Hyper-V。以管理员身份打开PowerShell执行:
bcdedit /set hypervisorlaunchtype off重启电脑后如果VMware运行正常,基本就是Hyper-V和VMware争抢CPU虚拟化指令导致的。注意这条命令关的是Windows的hypervisor,不是关CPU的VT-x,不要混为一谈。
5.3 忘记登录密码的急救流程
Ubuntu忘记密码不可怕,只要能重启到GRUB,就能通过recovery模式重置密码。流程:
- 重启虚拟机,开机时按住
Shift进入GRUB菜单。 - 选择“Advanced options for Ubuntu”,再选带“(recovery mode)”的内核版本。
- 进入recovery菜单后,选择“root Drop to root shell prompt”。
- 输入以下命令挂载根分区为可写:
mount -o remount,rw / passwd 你的用户名- 输入两次新密码,然后执行
reboot正常启动。
执行完就能用新密码登录了。注意recovery模式下的文件系统默认是只读挂载,不执行mount -o remount,rw /直接改passwd往往提示“Authentication token manipulation error”。很多教程漏了这一步,导致操作失败,这个细节值得记住。
5.4 环境变量配置错误后系统异常怎么救
环境变量改坏了,典型场景是:在/etc/profile或/etc/environment里手动配置了JAVA_HOME或PATH,结果export PATH=...忘带原来的$PATH,把所有命令路径覆盖了,重启后命令全not found,看起来比密码忘了更吓人。其实思路很简单:命令找不到不等于系统坏了,只是Shell找不到命令所在的目录,用绝对路径执行命令即可。
比如PATH被覆盖,sudo也用不了,用:
/bin/echo $PATH /usr/bin/sudo /usr/bin/nano /etc/profile先看当前PATH,再直接用绝对路径启动编辑器,把错误的配置行改回来或者注释掉,重新登录即可。如果你改的是/etc/environment且改得很乱,也可以用这个办法把文件恢复回来。
如果系统坏到连TTY都进不去,回到5.3里的recovery模式,在root shell下用绝对路径改文件就行。这里再次强调快照的重要性:如果你在改环境变量之前拍了快照,这一整节都可以跳过,直接回滚快照更省事。
5.5 高频问题速查表
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| VMware无法连接到虚拟机 | 授权服务停止/锁文件残留 | 启动VMware Authorization Service,删除.lck文件,管理员运行 |
| Ubuntu桌面黑屏但有鼠标 | 显示驱动或3D加速问题 | TTY重装open-vm-tools-desktop,关3D加速,加nomodeset |
| 宿主机蓝屏 | Hyper-V与VMware冲突 | bcdedit /set hypervisorlaunchtype off重启 |
| 忘记登录密码 | 密码遗忘 | recovery模式root下执行passwd 用户名 |
| 命令全部not found | PATH被覆盖 | 绝对路径运行命令修复profile文件 |
| apt update很慢 | 源指向官方 | 替换为阿里云/清华镜像源 |
| Ubuntu终端复制粘贴不了 | 未装VMware Tools | 安装open-vm-tools-desktop并重启 |
| MySQL密码登录失败 | root使用auth_socket | sudo mysql进系统后ALTER USER改登录方式 |
| Docker权限拒绝 | 未加入docker组 | sudo usermod -aG docker $USER注销重登 |
还有一个经常出现在搜索引擎里的问题:“宿主机的命令怎么复制到Ubuntu虚拟机的终端里”。答案很简单:装了open-vm-tools后直接Ctrl+C/V就行;如果不生效,用SSH连接到虚拟机,在SSH终端里粘贴。不要在“DOS窗口”这个表述上纠结,Ubuntu里叫终端,本质逻辑是一样的。
写到这里,整个Ubuntu虚拟机从装系统到配置开发环境、到处理常见问题的路径已经完整走了一遍。我个人实际用下来的体会是:虚拟机的核心优势以及在“可以随便折腾、随时回滚”的底气,只要系统还能启动就先用TTY进系统处理,进不了再用快照回滚,不到万不得已不要重装。最后再分享一个小技巧:装完系统拍第一个快照时,顺手把快照名称改成类似“纯净版-已换源”这种带状态描述的,方便以后快速判断从哪个点恢复。这套流程我也就重复了六七遍,越往后越顺手。Ubuntu虚拟机配置这件事,说到底就是先跑通安装,再建立快照思维,剩下的事都是遇到问题查原因、解决问题,跟着这篇文章把每一步走一遍,你会比网上很多“教程收藏者”领先一大截。