
1. 项目概述为什么选择VMware虚拟机硬盘安装Linux对于很多电子工程师、嵌入式开发者或者刚接触Linux系统的朋友来说直接在自己的物理机上安装Linux总有些顾虑担心搞坏现有的Windows系统、分区操作风险大、或者手头没有多余的U盘或光盘。我当年也是这么过来的尤其是在调试FPGA、MCU嵌入式程序或者搭建交叉编译环境时需要一个干净的Linux系统做测试但又不想影响主力机的稳定性。这时候虚拟机就成了一个绝佳的“沙盒”。而通过虚拟机直接使用下载好的Linux ISO镜像文件进行“硬盘安装”更是省去了制作启动盘的麻烦。这听起来可能有点绕——在虚拟机里怎么还用“硬盘安装”呢这里的“硬盘安装”指的是安装程序从存放在虚拟机虚拟硬盘或映射的物理硬盘分区上的ISO文件启动并安装系统而不是从虚拟光驱直接引导ISO。这种方法特别适合以下场景你手头只有一个大的ISO文件比如某些发行版的DVD镜像或者网络安装不方便又或者你想完全掌控安装过程的分区细节。我这次要分享的就是基于VMware Workstation Player免费版就够用一步步实现在虚拟机中通过硬盘安装方式部署Linux系统的完整过程。过程中会穿插很多我作为嵌入式开发者在配置Linux环境时踩过的坑和总结的技巧比如分区规划对后续开发的影响、如何为嵌入式编译预留空间、虚拟机性能调优等。无论你是做嵌入式、物联网开发还是单纯想学习Linux这套方法都能让你安全、高效地搭建起实验环境。2. 核心原理与准备工作拆解2.1 理解两种“硬盘安装”的本质区别在开始操作前必须先厘清一个关键概念否则很容易混淆。我们常说的“硬盘安装Linux”通常有两种语境在物理机上的硬盘安装指计算机从硬盘上的某个分区该分区存放了ISO镜像或解压后的安装文件启动安装程序。这通常需要借助GRUB4DOS、Windows Boot Manager等引导器或者制作一个包含引导功能的特殊分区。过程较为复杂且有一定风险。在虚拟机内的“硬盘安装”这正是本文的核心。其本质是VMware虚拟机被配置为从它的“虚拟光驱”启动而这个“虚拟光驱”指向的是一个存放在你物理硬盘上的Linux ISO镜像文件。对于虚拟机内部的“视角”来看它就是从一张“光盘”启动了。但是这个“光盘”的内容ISO文件是存放在你物理硬盘上的所以广义上也可以称为一种“从硬盘文件启动安装”的方式。这种方法安全、简单且完全不影响物理机的真实分区。我们采用的就是第二种。它的巨大优势在于整个安装过程被完全隔离在虚拟机内你对虚拟硬盘的任何分区、格式化操作都不会对你物理机上的真实数据产生丝毫影响。这对于需要反复测试不同Linux发行版、不同分区方案或者进行危险系统操作的开发者来说是至关重要的。2.2 工具与材料准备清单工欲善其事必先利其器。以下是需要提前准备好的所有东西我会解释每一项的选择理由和注意事项。1. VMware Workstation Player选择理由个人使用免费功能对于Linux安装和日常开发足够强大兼容性好网络和硬件模拟稳定。相比VirtualBox它在与宿主机你的Windows的文件共享、剪贴板集成、3D图形支持上通常更省心。版本建议直接从VMware官网下载最新版Player即可。安装过程一路“下一步”没有特殊坑点。注意安装VMware后它会虚拟出一系列网络适配器Windows防火墙可能会弹出提示一律允许即可。2. Linux发行版ISO镜像文件选择建议对于嵌入式、电子工程师我首推Ubuntu LTS或Debian。原因在于其软件源丰富社区支持强大安装交叉编译工具链、EDA工具如KiCad, Verilator、嵌入式调试工具OpenOCD, GDB非常方便。如果你想追求更极致的轻量化和控制力Arch Linux或Fedora也是很好的选择但初期配置工作量稍大。下载注意一定要去官方或可靠的镜像站下载。对于安装通常下载“Desktop”或“Live”版本的ISO就够了它包含了图形化安装界面。文件大小一般在2-4GB。存放路径将下载好的.iso文件放在一个英文路径、无空格的目录下例如D:\VM_Images\。这是为了避免虚拟机软件在解析路径时可能出现的奇怪错误。3. 规划你的虚拟硬盘容量规划这是关键一步规划不好后期会很麻烦。基础系统一个干净的桌面版Linux分配20-30GB是充裕的。嵌入式开发考虑如果你需要编译大型代码如Linux内核、Android系统或者安装庞大的EDA套件如Vivado、Quartus那么必须预留足够的空间。我建议为开发环境单独分配一个虚拟硬盘。我的推荐方案创建两块虚拟硬盘。硬盘130GB用于安装系统和基础软件。硬盘250-100GB或更大格式化为ext4或btrfs专门挂载到/home或/workspace目录存放所有项目代码、编译输出、工具链和大型软件。这样即使系统盘玩坏了你的工作成果也在另一个盘里安全性高。磁盘类型对于新手选择VMware推荐的“将虚拟磁盘拆分成多个文件”即可它在迁移和备份时更灵活。性能上差异不大。3. 虚拟机创建与关键配置详解3.1 新建虚拟机避开典型误区打开VMware Player点击“创建新虚拟机”。这里有几个容易选错的地方安装来源选择“安装程序光盘映像文件(iso)”然后浏览到你存放Linux ISO文件的位置。VMware会自动检测该ISO对应的操作系统类型。这是最关键的一步它保证了虚拟机会从我们的ISO文件启动。客户机操作系统当VMware识别出ISO后例如Ubuntu它会自动选择“Linux”和对应的版本如Ubuntu 64位。如果识别错误或未识别请手动选择“Linux”和你知道的具体发行版或“其他Linux 5.x/6.x内核 64位”。命名与位置给你的虚拟机起个有意义的名字比如Ubuntu_22.04_Embedded_Dev。位置不要放在C盘默认路径请指定到一个空间充足的磁盘分区例如D:\VMachines\。虚拟机文件会越来越大放在系统盘容易导致空间不足。磁盘容量如前所述这里设置的是系统盘的大小。按照你的规划输入例如30GB。不要勾选“立即分配所有磁盘空间”除非你确信需要极限磁盘性能且硬盘空间绝对充足。自定义硬件关键步骤在向导最后一步不要直接点完成一定要点击“自定义硬件”。3.2 硬件配置调优为开发环境赋能在“自定义硬件”窗口里我们可以对虚拟机的性能进行精细调整这对于流畅的开发体验至关重要。内存至少分配2GB (2048 MB)。如果要运行图形化IDE如VSCode、Eclipse或进行嵌入式仿真建议分配4GB 或更多。原则是不超过你物理机总内存的50%并给宿主机留出足够运行空间。处理器核心数至少分配2个。如果你的物理机是4核8线程可以给虚拟机分配2个核心和4个线程如果VMware版本支持。更多的CPU核心能显著加速代码编译和仿真运行。网络适配器默认的NAT 模式对大多数情况是最省心的。虚拟机可以借助宿主的网络上网宿主机和虚拟机之间可以互相访问虚拟机对外部网络是透明的。如果你需要虚拟机拥有独立的、可被局域网内其他设备发现的IP地址例如搭建一个测试服务器则选择桥接模式。显示器对于Linux桌面开启“3D图形加速”通常能获得更好的图形界面体验。显存可以调到1GB或以上。实操心得我经常需要同时运行多个虚拟机一个跑Linux开发环境一个跑Windows用于某些专用软件。这时我会在创建第一个虚拟机时就做好资源规划。比如我的电脑是32GB内存8核我会给主开发Linux分配6GB内存、4个核心给辅助Windows分配4GB内存、2个核心。这样即使同时运行宿主机也依然流畅。配置完成后关闭硬件设置窗口点击完成。此时虚拟机就创建好了但先不要启动。4. 安装Linux分区与配置实战4.1 启动安装与语言时区设置点击VMware Player主界面上的“开启此虚拟机”。虚拟机会从我们指定的ISO文件启动进入Linux安装程序的Live CD环境或直接进入安装界面。选择语言建议选择English (United States)。原因有两点一是很多开发工具、命令行报错信息都是英文使用英文系统环境可以减少编码和显示上的乱码问题二是在搜索错误解决方案时英文关键词的匹配度更高。当然你也可以选择中文但在后续配置终端和软件源时可能需要注意语言设置。键盘布局保持默认或选择与你物理键盘匹配的布局。网络连接在安装过程中连接网络可以让安装程序自动下载语言包和更新但这不是必须的。如果网络慢可以跳过系统安装完再更新。更新与其他软件这里有一个重要选择。“正常安装”vs“最小安装”对于开发者我强烈建议选择“最小安装”。它只安装一个基本的桌面和必要工具系统更干净、启动更快。我们需要的所有开发工具gcc, make, git, python等都可以在系统安装完毕后通过包管理器精准安装。避免安装一堆用不到的软件。“为图形或无线硬件安装第三方软件”这个建议勾选。它会安装一些专有的显卡驱动、Wi-Fi固件等对硬件兼容性更好尤其是对于VMware的虚拟显卡。4.2 分区方案手动分区详解与嵌入式开发建议这是整个安装过程的核心与难点也是原文中花费大量篇幅描述的部分。我们将使用安装程序自带的分区工具Ubuntu是gparted的简化版其他发行版可能是Disk Druid或fdisk界面进行手动分区。为什么手动分区因为默认的“清除整个磁盘并安装”太粗暴而“与其它系统共存”又不够灵活。手动分区能让我们完全掌控为后续开发优化布局。点击“安装类型”选择“其他选项”或“Something else”进入手动分区界面。你会看到一个列表显示你的虚拟硬盘例如/dev/sda。分区规划实例针对30GB系统盘我们创建一个符合Linux标准且利于开发的分区结构EFI系统分区ESP大小512MB - 1GB。如果虚拟机采用UEFI启动新建虚拟机时默认通常是则需要此分区。类型EFI System Partition。格式FAT32。挂载点/boot/efi。作用存放引导程序。对于嵌入式开发有时需要编译和更新U-Boot等引导程序理解这个分区有好处。交换分区Swap大小一个经验法则是物理内存的1-2倍。对于分配了4GB内存的虚拟机交换分区设4GB-8GB是合理的。如果物理内存很大比如16GB以上交换分区可以设置得小一些2GB甚至对于SSD有些现代方案建议使用交换文件swapfile代替交换分区更灵活。类型swap area。格式swap。挂载点无。作用当物理内存不足时将部分内存数据暂存到磁盘。对于编译大型工程如Linux内核充足的交换空间可以防止系统因内存不足而崩溃。根分区/大小剩余空间的70%-80%例如约20GB。类型Primary或Logical。格式ext4。ext4是久经考验、稳定可靠的选择。btrfs或xfs有其优势但作为系统盘ext4的兼容性和工具支持最好。挂载点/。作用存放系统文件、安装的软件等。家目录分区/home大小剩余的所有空间例如约5GB。类型Primary或Logical。格式ext4。挂载点/home。作用存放用户个人数据、配置文件。将/home独立分区的巨大好处是将来你想重装或更换Linux发行版时可以格式化根分区/但保留/home分区这样你的个人设置、文档、下载的代码都不会丢失。操作步骤选中空闲空间点击“”或“添加”。依次创建上述分区。对于根分区和家目录分区务必在“用于”一栏选择Ext4 日志文件系统并勾选“格式化此分区”。设备用于引导程序安装在分区列表底部有一个“安装启动引导器的设备”下拉菜单。务必选择你虚拟硬盘的根设备例如/dev/sda而不是某个分区如sda1。这将引导程序通常是GRUB安装到虚拟硬盘的主引导记录MBR或EFI分区确保虚拟机能够正常启动。注意事项这是最容易出错的地方。如果选错了引导设备安装完成后虚拟机会无法启动提示“No bootable device”。如果遇到此问题不必慌张可以重新启动安装过程到分区这一步时检查并修正引导设备的选择。4.3 用户设置与安装收尾选择时区在地图上点击上海或手动选择Asia/Shanghai。创建用户你的姓名可以填你的英文名或拼音这会作为全名显示。计算机名取一个你喜欢的名字比如ubuntu-dev。这在网络中是这台虚拟机的标识。用户名这是你登录和命令行提示符显示的名字建议简短小写如frank。密码设置一个安全的密码。对于本地开发虚拟机也可以设置简单些方便登录。你可以选择“自动登录”或“需要密码登录”出于安全习惯我建议选择后者。开始安装确认所有信息无误后点击“现在安装”。安装程序会提示你将修改写入磁盘点击“继续”。安装过程接下来就是自动化的文件复制和系统配置过程通常需要10-30分钟取决于你的磁盘速度和选择的软件包数量。期间可以浏览展示的幻灯片了解该系统特性。安装完成后会提示“安装完成需要重启”。点击“现在重启”。虚拟机可能会提示你“请移除安装介质然后按回车”在VMware中你需要在虚拟机重启的瞬间看到VMware BIOS界面时快速按F2或根据提示进入虚拟机的BIOS设置将启动顺序改回从硬盘启动优先或者更简单的方法是在VMware的菜单栏选择“虚拟机” - “可移动设备” - “CD/DVD (SATA)” - “断开连接”然后让虚拟机继续重启。之后它就会从刚刚安装好系统的虚拟硬盘启动了。5. 安装后优化与开发环境搭建5.1 首次启动与VMware Tools安装首次进入新系统完成一些初始设置后第一件重要的事就是安装VMware Tools或开源替代品open-vm-tools。为什么必须装它提供了剪贴板共享在虚拟机和宿主机之间复制粘贴文本。文件拖放直接拖拽文件到虚拟机窗口。更好的显示驱动支持自适应分辨率全屏显示更流畅。时间同步保持虚拟机与宿主机时间一致。安装方法以Ubuntu为例在VMware Player菜单栏点击“虚拟机” - “安装 VMware Tools”。虚拟机会自动挂载一个名为VMware Tools的虚拟光盘。在Ubuntu桌面通常会弹出这个光盘的内容。里面有一个.tar.gz压缩包。打开终端执行以下命令# 创建临时目录并进入 mkdir -p ~/vmware-tools cd ~/vmware-tools # 将光盘中的工具包复制过来路径可能略有不同可用Tab键补全 cp /media/你的用户名/VMware\ Tools/VMwareTools-*.tar.gz . # 解压 tar -xzf VMwareTools-*.tar.gz # 进入解压目录执行安装脚本需要root权限 cd vmware-tools-distrib/ sudo ./vmware-install.pl安装脚本会问一系列问题一路按回车选择默认值即可。安装完成后重启虚拟机sudo reboot。现在你应该能享受无缝的剪贴板共享和自适应分辨率了。5.2 基础开发环境配置系统装好了接下来就是武装它使之成为一个合格的开发工作站。更新系统与安装基础工具sudo apt update sudo apt upgrade -y # Ubuntu/Debian # 或者 sudo dnf update -y # Fedora # 安装编译、调试、版本管理等基础工具 sudo apt install -y build-essential gdb git curl wget vim net-toolsbuild-essential包含了gcc, g, make等编译套件是C/C开发的基石。git版本控制必不可少。curl,wget网络工具。vim强大的文本编辑器即使你用图形化编辑器在服务器环境下vim也是必备技能。net-tools包含ifconfig等传统网络工具。配置国内软件源大幅提升下载速度备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源列表sudo vim /etc/apt/sources.list将内容替换为国内镜像源如阿里云、清华源。以Ubuntu 22.04为例清华源地址可以在其镜像站找到。替换后执行sudo apt update测试。安装常用开发软件代码编辑器/IDEVSCode是跨平台首选。去官网下载.deb包用sudo dpkg -i安装。终端增强安装zsh和oh-my-zsh让你的终端更强大、美观。嵌入式开发工具链根据你的目标平台ARM Cortex-M, RISC-V等下载对应的gcc-arm-none-eabi或riscv64-unknown-elf-gcc工具链解压并添加到PATH环境变量。调试工具openocd用于连接JTAG/SWD调试器、screen/minicom串口终端。5.3 虚拟机性能与资源管理技巧虚拟机用久了可能会感觉有点卡或者磁盘空间不足。这里有几个维护技巧清理磁盘空间# 清理APT缓存 sudo apt clean sudo apt autoremove -y # 查找大文件 sudo du -sh /var/* 2/dev/null | sort -rh | head -10 # 清理日志文件 (谨慎操作) sudo journalctl --vacuum-time7d # 只保留7天内的日志虚拟机快照Snapshot 这是VMware的神器在系统配置到一个稳定、干净的状态时例如刚装好所有基础工具创建一个快照命名为“Base Clean State”。以后无论你怎么折腾系统玩坏了只需要几分钟就能回滚到这个干净状态无需重装。重要操作前如升级内核、安装不熟悉的驱动务必先打快照。调整虚拟机配置 如果感觉虚拟机性能不足可以在虚拟机关机状态下通过“编辑虚拟机设置”增加内存、CPU核心数。对于磁盘VMware也支持“扩展磁盘容量”但扩展后需要在Linux内部使用gparted工具调整分区大小操作需谨慎务必先备份重要数据或打快照。6. 常见问题与故障排查实录即使按照步骤操作也可能会遇到一些问题。这里记录几个我遇到过的高频问题及解决方法。问题1安装过程中提示“无法安装引导程序到/dev/sda”或重启后黑屏提示“No bootable device”。原因引导程序GRUB安装位置错误或失败。排查回顾分区步骤确认“安装启动引导器的设备”选择的是整个硬盘如/dev/sda而不是某个分区如/dev/sda1。检查是否创建了正确的EFI分区如果使用UEFI模式。大小至少100MB格式为FAT32挂载点为/boot/efi。解决重新启动安装过程。在分区阶段仔细检查并修正上述设置。对于已安装但无法启动的系统可以使用Linux Live CD就是安装ISO启动然后chroot到已安装的系统重新安装和配置GRUB。这是一个进阶操作网上有详细教程。问题2VMware Tools安装失败提示“The path is not a valid path to the gcc binary”。原因系统缺少编译内核模块所需的头文件和编译工具。解决在安装VMware Tools前先安装必要的包。sudo apt update sudo apt install -y linux-headers-$(uname -r) build-essential然后再执行VMware Tools的安装脚本。问题3虚拟机内网络无法连接NAT模式。排查在虚拟机内运行ip addr或ifconfig查看网卡是否获得了IP地址通常是192.168.xxx.xxx或172.16.xxx.xxx。尝试ping宿主机网关和外部地址如8.8.8.8。解决检查VMware的虚拟网络编辑器在VMware Player的“编辑”菜单里。确保NAT模式已启用。在虚拟机设置中尝试将网络适配器先切换到“桥接模式”应用再切回“NAT模式”。重启虚拟机内的网络服务sudo systemctl restart networking或sudo netplan apply取决于发行版。问题4宿主机与虚拟机之间无法复制粘贴或拖放文件。原因VMware Tools未正确安装或服务未运行。解决确认VMware Tools已安装。在终端运行vmware-toolbox-cmd -v查看版本。检查服务状态systemctl status vmware-tools或systemctl status open-vm-tools。在VMware菜单中确认“虚拟机” - “设置” - “选项” - “客户机隔离”中“启用拖放”和“启用复制粘贴”是勾选状态。问题5虚拟机运行卡顿。排查方向资源不足检查宿主机任务管理器看CPU、内存、磁盘是否占用率过高。为虚拟机分配的资源不要超过宿主机的物理能力。显卡加速在虚拟机设置中确保为显卡分配了足够显存如1GB并启用了3D加速。软件渲染某些Linux桌面环境如GNOME在VMware中默认可能使用软件渲染。可以尝试安装vmware-toolbox-cmd并运行vmware-toolbox-cmd graphics set相关命令或者安装open-vm-tools-desktop包以获得更好的图形集成。磁盘类型如果创建虚拟机时选择了“单个文件存储虚拟磁盘”且该文件存放在机械硬盘上IO性能可能成为瓶颈。可以考虑将其迁移到SSD上。通过这套从原理到实操再到问题排查的完整流程你应该可以顺利地在VMware虚拟机中通过硬盘上的ISO文件安装好一个Linux系统并将其配置成一个得心应手的开发环境。记住虚拟机最大的优势就是可反复试验大胆操作充分利用快照功能你的Linux学习和开发之路会顺畅很多。