当前位置: 首页 > news >正文

VMware虚拟机安装Ubuntu Server完整指南:从零搭建Linux开发环境

在技术学习和开发环境搭建过程中,Linux虚拟机是绕不开的一环。无论是为了学习服务器运维、部署分布式应用,还是为了在Windows或macOS上运行一个纯净的Linux开发环境,虚拟机都提供了隔离、安全且可复现的沙箱。然而,从选择虚拟机软件、下载系统镜像、完成安装配置,到解决网络、共享、性能乃至许可证激活等一系列问题,每一步都可能遇到意料之外的阻碍。本文将以VMware Workstation Pro为例,结合最新的稳定版本,提供一个从零开始、可复现的Linux虚拟机安装与配置完整指南。我们将不仅完成安装,更会深入配置细节,解释每个关键步骤背后的原理,并附上生产环境级别的排错清单和最佳实践,确保你搭建的环境既可用于学习,也能作为可靠的开发基础。

1. 理解虚拟机与Linux发行版选型

在动手安装之前,明确核心概念和选择合适的组件是成功的第一步。盲目操作往往会导致后续配置混乱、性能低下或兼容性问题。

1.1 虚拟机软件:VMware Workstation Pro 的核心价值

虚拟机软件(Hypervisor)通过在物理主机操作系统之上创建一个虚拟化层,来模拟出多台完整的计算机硬件环境。VMware Workstation Pro 是桌面虚拟化领域的成熟商业软件,相较于开源免费的 VirtualBox,它在性能(特别是磁盘I/O和图形处理)、与宿主机的集成度(如无缝模式、更好的剪贴板共享)、快照管理以及对企业级功能的支持上通常更胜一筹。其“永久使用”通常指的是通过购买官方许可证获得一个永久版本的授权,而非通过非授权手段破解。对于学习和测试,VMware 提供功能完整的免费试用期。

选择 VMware 的一个重要原因是其广泛的兼容性和稳定的虚拟硬件驱动,这能减少在安装不同 Linux 发行版时遇到驱动问题的概率。本文基于 VMware Workstation 17 Pro 版本进行演示,其操作逻辑与 16、15 等版本大体相通。

1.2 Linux 发行版选择:Ubuntu Server 与 Desktop

Linux 发行版众多,对于新手和开发者,Ubuntu 因其庞大的社区、完善的软件包管理和友好的文档成为首选。你需要根据用途决定安装哪个变体:

  • Ubuntu Desktop:包含图形化桌面环境(如 GNOME),适合刚从 Windows/macOS 过渡的用户,或需要运行图形界面开发工具(如 IDE)的场景。它更消耗资源。
  • Ubuntu Server:无图形界面,纯命令行操作。资源占用极低,专注于服务器应用,是学习 Linux 运维、部署 Web 服务、容器化技术的更佳选择。通过 SSH 进行远程管理是其标准方式。

对于开发环境,如果你主要进行服务端编程,强烈建议从 Ubuntu Server 开始。这迫使你熟悉命令行,这是掌握 Linux 的核心。本文后续演示将主要以 Ubuntu Server 22.04 LTS(长期支持版)为例,其步骤也适用于其他主流发行版如 CentOS Stream、Debian 等,仅在软件包管理命令(aptvsyum/dnf)和少量配置上有所区别。

1.3 关键概念:虚拟网络、磁盘格式与快照

  • 虚拟网络模式:这是虚拟机能否上网以及如何与宿主机、外部网络通信的关键。VMware 主要提供三种模式:

    • 桥接模式 (Bridged):虚拟机像一台真实设备一样接入物理网络,与宿主机平级,拥有独立IP。适合需要被局域网内其他设备访问的场景。
    • NAT 模式:虚拟机通过宿主机的IP地址共享上网。宿主机充当路由器,虚拟机可以访问外网,但外部网络无法直接访问虚拟机。这是最常用、最安全的默认模式。
    • 仅主机模式 (Host-Only):虚拟机与宿主机形成一个封闭的私有网络,虚拟机之间、虚拟机与宿主机之间可互访,但无法连接外网。用于纯内部测试。
  • 虚拟磁盘:VMware 使用.vmdk文件模拟硬盘。创建时可选择“立即分配所有磁盘空间”以获得更好性能,或“动态分配”以节省宿主机初始存储空间。

  • 快照:虚拟机状态的“存档点”。在安装系统、配置复杂服务或进行有风险的操作前创建一个快照,一旦操作失败,可以瞬间回滚到快照时的完好状态。这是虚拟机带来的最大便利之一,务必善用。

2. 环境准备与软件安装

一个稳定的起点能避免后续大量奇怪的问题。请严格按照以下清单准备你的宿主机环境。

2.1 宿主机系统要求与检查

VMware Workstation 17 Pro 对 Windows 宿主机的硬件要求并不低,特别是为了流畅运行64位虚拟机。

  • 操作系统:Windows 10 或 Windows 11 64位。确保系统已更新到最新稳定版。
  • 处理器:支持硬件虚拟化技术的 64 位双核或多核处理器。必须在 BIOS/UEFI 中开启 Intel VT-x 或 AMD-V 功能,这是最关键的一步。开机按特定键(如 F2, Del, F10)进入 BIOS 设置,在 Advanced 或 Security 选项中查找并开启 Virtualization Technology。
  • 内存:至少 8 GB RAM。建议 16 GB 或以上。为虚拟机分配的内存是从宿主机物理内存中划出的,例如为 Ubuntu Server 分配 4 GB,你的宿主机至少应有 12 GB 总内存以保证两者都流畅运行。
  • 存储空间:至少 40 GB 可用空间。虚拟机磁盘文件、快照和ISO镜像都会占用空间。

2.2 下载与安装 VMware Workstation Pro

  1. 获取安装包:访问 VMware 官方网站,找到 Workstation Pro 的下载页面。选择适用于 Windows 的版本进行下载。务必从官网下载,避免第三方修改版带来的安全风险或捆绑软件。
  2. 安装过程:运行下载的安装程序(如VMware-workstation-full-17.x.x-xxxxxx.exe)。
    • 安装路径建议保持默认或选择非系统盘(如D:\VMware)。
    • 在安装选项界面,强烈建议勾选“增强型键盘驱动程序”,这能改善在虚拟机中输入时的体验。
    • 其余选项可按默认设置,点击下一步直至安装完成。
  3. 首次运行与许可证:安装完成后启动 VMware Workstation。首次运行会提示你输入许可证密钥。如果你有合法的永久许可证,在此处输入。如果没有,可以选择“试用”,通常有30天的完整功能试用期。请支持正版软件,对于长期使用,购买许可证是保障稳定性和获得技术支持的正确途径。

2.3 获取 Linux 系统镜像 (ISO)

你需要一个 Linux 发行版的安装镜像文件,通常以.iso为后缀。

  1. 前往官方镜像站:对于 Ubuntu,访问其官方网站或国内镜像站(如阿里云镜像、清华镜像站)。选择Ubuntu Server 22.04 LTS版本。
  2. 下载 ISO 文件:下载对应的 ISO 文件。Server 版本镜像大小约为 1 GB 左右。请确保下载完成且文件完整。

3. 创建并配置 Linux 虚拟机

现在进入核心操作阶段。我们将一步步创建一个新的虚拟机并为其安装 Ubuntu Server 系统。

3.1 新建虚拟机向导

  1. 在 VMware Workstation 主界面,点击“创建新的虚拟机”或通过“文件”->“新建虚拟机”。
  2. 选择“典型(推荐)”配置,点击下一步。
  3. 安装来源:选择“安装程序光盘映像文件(iso)”,然后点击“浏览”,找到并选中你下载的ubuntu-22.04-live-server-amd64.iso文件。VMware 会自动检测到这是 Ubuntu。
  4. 点击下一步。

3.2 设置虚拟机规格

  1. 命名与位置:为你的虚拟机取一个易识别的名字,如Ubuntu-Server-22.04-Dev。选择虚拟机文件的存储位置,务必确保目标磁盘有充足空间(建议至少预留 50 GB)。
  2. 磁盘容量:指定虚拟磁盘大小。对于 Ubuntu Server 开发环境,建议40 GB。选择“将虚拟磁盘拆分成多个文件”,这样便于迁移和备份。
  3. 自定义硬件(关键步骤):在向导最后一步,不要直接点击完成,而是点击“自定义硬件...”按钮。这里进行精细调整:
    • 内存:为虚拟机分配内存。对于纯命令行 Server,2 GB (2048 MB)是起步,4 GB (4096 MB)能获得更流畅的体验。根据宿主机内存酌情分配。
    • 处理器:分配处理器核心数量。通常分配 2 个核心即可满足学习开发需求。如果你的宿主机核心数多,可以分配更多。
    • 网络适配器:选择“NAT 模式”。这是最通用、最简单的选择,虚拟机可以上网,宿主机也能通过内部网络访问它。
    • 显示器:对于 Server 版,可以将图形内存调低(如 4 MB),因为用不到图形界面。
    • 检查其他设备(如声卡、打印机)如果不需要可以移除以减少资源占用。
  4. 点击“关闭”回到向导,然后点击“完成”。VMware 会开始创建虚拟磁盘文件。

3.3 安装 Ubuntu Server 操作系统

虚拟机创建完成后,会自动启动并加载你指定的 ISO 镜像,进入 Ubuntu Server 安装程序。

  1. 选择语言:使用方向键选择“English”或“中文(简体)”,回车确认。
  2. 键盘布局:选择匹配的键盘布局,如“Chinese”或“English (US)”。
  3. 网络连接:安装程序会自动尝试通过 DHCP 获取 IP。在 NAT 模式下,这通常能成功。你可以看到获取到的 IP 地址,记下它(如192.168.xxx.xxx),后续 SSH 连接会用到。
  4. 配置代理:如果不需要 HTTP 代理,直接留空回车。
  5. 镜像地址:为了加速软件包下载,可以替换为国内镜像源。例如,输入https://mirrors.aliyun.com/ubuntu
  6. 磁盘分区:对于新手,选择“Use an entire disk”并选择虚拟磁盘(如VirtIO Block Device)是最简单的。它会自动创建必要的分区(/swap等)。确认操作,选择“Continue”并确认格式化。
  7. 用户设置
    • 输入你的姓名(如devuser)。
    • 输入服务器名(如ubuntu-server)。
    • 输入用户名(如devuser)。
    • 设置一个强密码。
    • 是否安装 OpenSSH server务必选择“Install OpenSSH server”并按下空格键选中。这允许你后续通过 SSH 客户端远程连接,比在虚拟机窗口里操作方便得多。
  8. 选择软件包:在“Featured Server Snaps”界面,通常不需要额外选择,直接回车跳过。基础系统已经包含了必要的工具。
  9. 等待安装:系统开始复制文件、安装基础系统和配置。此过程需要几分钟,取决于你的磁盘速度。
  10. 安装完成:当提示“Installation Complete!”时,选择“Reboot Now”。系统会重启。重启时,VMware 可能会提示“Please remove the installation media and press ENTER”,此时需要在 VMware 设备设置里“断开”ISO 镜像的连接,或者直接按回车,系统会从虚拟硬盘启动。

4. 初始配置与基础优化

系统安装完成只是第一步。一个高效、好用的开发环境还需要进行一系列初始配置。

4.1 首次登录与系统更新

  1. 重启后,使用你创建的用户名和密码登录。
  2. 登录后第一件事是更新系统软件包列表并升级现有软件:
    sudo apt update sudo apt upgrade -y
    sudo命令让你以管理员权限执行操作。apt update刷新软件源信息,apt upgrade升级所有可升级的软件包。-y参数自动确认。

4.2 配置静态 IP(可选但推荐)

在 NAT 模式下,虚拟机IP通常由VMware内部的DHCP服务器分配,可能会变。为方便SSH连接,可以配置静态IP。

  1. 查看当前网络接口名和网关:

    ip addr show

    通常接口名为ens33eth0。记下其名称。

    ip route show default

    记下默认网关地址(如192.168.xxx.1)。

  2. 编辑网络配置文件。Ubuntu 22.04 使用 Netplan:

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

    使用nano编辑器,内容参考如下(根据你的实际情况修改addresses,gateway4,nameservers):

    network: ethernets: ens33: # 你的网络接口名 dhcp4: no addresses: [192.168.xxx.100/24] # 静态IP和子网掩码 gateway4: 192.168.xxx.1 # 你的网关 nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS服务器 version: 2
  3. 应用配置:

    sudo netplan apply
  4. 验证网络:

    ping -c 4 google.com

    如果能通,说明网络配置成功且可以访问外网。

4.3 安装常用开发工具

根据你的开发栈,安装必要的工具。以下是一些通用基础工具:

# 安装编译工具链、Git、Vim、网络工具等 sudo apt install -y build-essential git vim net-tools curl wget htop # 安装 Python3 及 pip sudo apt install -y python3 python3-pip # 安装 Docker (可选,用于容器化开发) curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # 将当前用户加入docker组,避免每次用sudo # 注意:执行 usermod 后需要注销重新登录生效

4.4 配置 SSH 密钥登录(增强安全与便利)

使用密码登录SSH不够安全且麻烦。配置密钥对登录是生产环境的标配。

  1. 在宿主机生成密钥对(如果你使用 Windows,可以在 Git Bash 或 WSL 中操作):

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    一路回车,使用默认路径。完成后会在~/.ssh/目录下生成id_rsa(私钥)和id_rsa.pub(公钥)。

  2. 将公钥上传到虚拟机

    # 在宿主机执行,将 <虚拟机IP> 替换为你的虚拟机IP ssh-copy-id devuser@<虚拟机IP>

    输入一次虚拟机密码。成功后,公钥就被添加到了虚拟机的~/.ssh/authorized_keys文件中。

  3. 禁用密码登录(可选,但更安全): 登录虚拟机,编辑 SSH 配置:

    sudo nano /etc/ssh/sshd_config

    找到并修改:

    PasswordAuthentication no PubkeyAuthentication yes

    重启 SSH 服务:

    sudo systemctl restart sshd

    现在,你可以无需密码直接通过ssh devuser@<虚拟机IP>连接,且密码登录被禁止。

5. 虚拟机高级管理与排错指南

虚拟机环境运行后,日常管理和故障排查是必备技能。

5.1 VMware 虚拟机常用操作

  • 开机/关机/重启:在 VMware 界面控制,或在虚拟机内执行sudo shutdown -h now(关机)、sudo reboot(重启)。避免直接关闭宿主机或强制结束VMware进程,这可能导致虚拟磁盘损坏。
  • 创建与管理快照
    • 创建:在虚拟机电源状态为“已关机”或“已挂起”时(运行时创建可能不完整),点击“虚拟机”->“快照”->“拍摄快照”,输入名称和描述。
    • 恢复:在需要时,选择对应快照,点击“恢复到快照”。
    • 删除:在快照管理器里删除不再需要的快照以释放磁盘空间。
  • 宿主机与虚拟机文件共享
    1. 在虚拟机设置 -> 选项 -> 共享文件夹中,添加宿主机上的目录。
    2. 在虚拟机内,共享的文件夹通常位于/mnt/hgfs/下。如果看不到,可能需要安装 VMware Tools(对于 Ubuntu,通常已集成open-vm-tools,确保已安装sudo apt install open-vm-tools-desktop(Desktop版)或open-vm-tools(Server版))。

5.2 常见问题与排查路径

即使按照教程操作,也可能遇到问题。以下是系统化的排查思路。

问题现象可能原因检查与解决步骤
虚拟机无法启动,报错“Kernel driver not installed (rc=-1908)”宿主机 Hyper-V、Windows Sandbox 等与 VMware 冲突;VMware 服务未启动;BIOS 虚拟化未开启。1. 确保 BIOS 中 VT-x/AMD-V 已开启。
2. 以管理员身份运行命令提示符,执行bcdedit /set hypervisorlaunchtype off并重启宿主机。
3. 检查 Windows 功能中是否开启了 Hyper-V、Windows Sandbox、虚拟机平台,暂时关闭它们。
4. 重启 VMware 相关服务(在服务管理器中)。
虚拟机启动后黑屏,无任何输出图形驱动或显示设置问题;ISO 镜像损坏;虚拟机配置错误。1. 检查虚拟机设置 -> 显示器,尝试将“加速3D图形”取消勾选。
2. 验证下载的 ISO 镜像的 SHA256 校验和是否与官网一致。
3. 尝试创建一个全新的、配置更简单的虚拟机(如减少内存、单核CPU)进行测试。
网络不通,无法 ping 通外网或宿主机虚拟机网络适配器未连接;NAT/DHCP 服务异常;防火墙规则阻止。1. 检查 VMware 右下角网络适配器图标是否显示“已连接”。
2. 在虚拟机内执行ip addr,查看网卡是否有 IP 地址。如果没有,尝试sudo dhclient ens33(ens33为你的网卡名)。
3. 在宿主机,检查 VMware 的 NAT 和 DHCP 服务是否运行(服务管理器中的VMware NAT ServiceVMware DHCP Service)。
4. 检查虚拟机内防火墙sudo ufw status,如果是inactive则未启用;如果启用,可能需要放行相应端口或暂时禁用sudo ufw disable(测试后记得重新配置)。
SSH 连接被拒绝 (Connection refused)SSH 服务未安装或未运行;防火墙阻止了22端口;虚拟机IP地址错误。1. 确认虚拟机内已安装 openssh-server:sudo systemctl status ssh
2. 如果未运行,启动它:sudo systemctl start ssh并设置开机自启sudo systemctl enable ssh
3. 检查防火墙:sudo ufw status,确保 22 端口是允许的:sudo ufw allow 22/tcp
4. 确认你使用的 IP 地址是正确的:在虚拟机内执行ip addr查看。
共享文件夹在/mnt/hgfs中不可见VMware Tools 未正确安装或加载;共享文件夹未启用。1. 确保虚拟机设置中共享文件夹已启用并指向正确主机路径。
2. 安装或重新安装 open-vm-tools:sudo apt install --reinstall open-vm-tools open-vm-tools-desktop(Desktop版)。
3. 执行sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other手动挂载(临时)。
4. 重启虚拟机。
虚拟机运行极其缓慢分配给虚拟机的资源(CPU、内存)不足;宿主机本身资源紧张;虚拟磁盘碎片化或类型问题。1. 检查宿主机任务管理器,确认内存和CPU是否吃紧。
2. 适当增加虚拟机的内存和CPU核心分配(在电源关闭状态下修改)。
3. 在虚拟机设置 -> 硬盘 -> 碎片整理/压缩。
4. 如果使用动态磁盘,考虑在虚拟机内进行磁盘清理。

5.3 生产环境考量与最佳实践

如果你计划将此虚拟机用于接近生产环境的开发或测试,还需要注意以下几点:

  1. 定期快照与备份:在进行重大变更前创建快照。同时,将重要的虚拟机配置文件(.vmx)和磁盘文件(.vmdk)备份到其他存储介质。
  2. 资源监控:在虚拟机内安装监控工具如htopnmon,或配置 Prometheus Node Exporter,以便了解系统资源使用情况(CPU、内存、磁盘IO、网络)。
  3. 安全加固
    • 定期更新系统:sudo apt update && sudo apt upgrade
    • 更改默认SSH端口(22),使用密钥登录,禁用root远程登录。
    • 配置防火墙 (ufw) 只开放必要的端口。
    • 使用强密码,并考虑安装 fail2ban 防止暴力破解。
  4. 性能优化
    • 为虚拟机磁盘选择“立即分配所有磁盘空间”并在创建后执行一次碎片整理(如果宿主是HDD)。
    • 在虚拟机设置中,为处理器开启“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”选项,这能提升嵌套虚拟化(如在虚拟机内再运行 Docker/KVM)的性能。
    • 考虑将虚拟机文件存放在 SSD 硬盘上。
  5. 文档化配置:将你的虚拟机网络配置、安装的软件包列表 (apt list --installed)、关键服务配置等记录下来。这有助于快速重建环境。

通过以上步骤,你不仅获得了一个可用的 Linux 虚拟机,更建立了一个可维护、可排查、可扩展的标准化开发环境基础。这个环境可以作为你学习服务器管理、后端开发、DevOps 实践的可靠起点。后续,你可以在此基础上安装 Docker、Kubernetes、数据库、Web 服务器等,构建更复杂的应用栈。记住,在虚拟环境中大胆实验,结合快照功能,你能无风险地探索 Linux 世界的各种可能性。

http://www.jsqmd.com/news/1098030/

相关文章:

  • 从零搭建AI项目自动化测试体系:基于Pytest与Appium的实战指南
  • AI隐语:大模型自发涌现的高效通信协议
  • 无犯罪证明翻译怎么办?无犯罪证明材料有哪些?需注意什么?
  • Playwright自动化测试框架:从原理到实战的完整指南
  • 什么是LLM束搜索: 与LLM内部32层完全无关
  • 为什么需要glogg?让海量日志分析不再痛苦
  • MoE混合专家模型原理与实战:参数量、路由策略与训练稳定性
  • 基于pytest的接口自动化测试框架搭建与实战指南
  • AI生成内容的版权归属:法律边界与技术实践
  • 九大网盘直链下载助手:LinkSwift 终极指南
  • AI Agent 运行时架构:从 Context 陷阱到事件日志驱动的稳定执行
  • Pytest命令行传参与参数化测试实战:提升自动化测试灵活性与效率
  • SSRS高危RCE漏洞CVE-2024-38077修复实战与深度防御指南
  • Vue 3项目测试体系搭建:整合Vitest、Cypress与Playwright实战指南
  • FAE放射组学分析工具:医学影像特征探索与预测模型构建的完整解决方案
  • Playwright自动化测试多环境配置实战:从原理到CI/CD集成
  • 大模型技术解析应基于可验证事实与开源实践
  • Anthropic新API如何让AI抽象层归零
  • JMeter实战:模拟1000并发用户压测电商系统全流程指南
  • Selenium自动化测试从入门到精通:Python实战与POM框架搭建
  • 卷积核与滤波器:CNN中kernel和filter的统一认知与工程实践
  • AI如何将网络攻击成本压低至$18/小时
  • 分类模型评估指标全解析:从混淆矩阵到业务落地
  • 抖音下载完全攻略:如何用douyin-downloader轻松保存无水印视频
  • 技术深度解析:5步构建开源项目整合补丁的模块化插件框架
  • JavaScript安全编程实战:从XSS/CSRF防御到Node.js安全实践
  • 三步掌握PulseView:开源逻辑分析仪图形化工具完整指南
  • AI简报如何成为可执行的技术接口
  • 混元图像3.0深度解析:浏览器内本地化AI绘画新范式
  • AI赋能自动化测试:基于Playwright的智能脚本生成与自愈实践