
Ubuntu 系统下载及安装这件事看起来是入门第一步实际上它是整个 Linux 使用体验里最容易翻车的一环。我见过太多人卡在这一步镜像下到一半断了U 盘写完开机黑屏虚拟机里装完发现没网双系统装完 Windows 引导没了。这些问题单独拎出来都不算难但堆在一起就足够把一个新手劝退。这篇内容就把从拿到一台机器到系统能正常干活的全过程拆开讲覆盖版本选择、镜像获取、物理机安装、虚拟机安装、双系统共存以及装完之后那堆必须做的配置。不管你是完全没碰过 Ubuntu 的小白还是装过几次但总在细节上栽跟头的老手都能从里面找到对得上自己场景的部分。1. 镜像没选对后面全白费版本与获取环节的取舍很多人下载 Ubuntu 的第一反应是去搜索引擎点第一个结果然后随手下一个版本结果装完发现软件源慢得要死或者某个驱动死活装不上。问题往往不是出在安装过程而是出在下载之前的选择。这一节把版本、架构、下载渠道、校验这四件事按顺序讲清楚。1.1 LTS 和非 LTS 到底该选哪个Ubuntu 的发布节奏是固定的每年 4 月和 10 月各发一版版本号就是年份加月份比如 22.04 是 2022 年 4 月24.04 是 2024 年 4 月。每隔两年 4 月那一版会被标记为 LTS也就是长期支持版。桌面版 LTS 官方提供五年安全更新非 LTS 只有九个月。这个差别在实际使用中影响很大。非 LTS 版本的好处是内核和桌面环境更新能更早用上新硬件驱动但九个月之后就没更新了你得跟着升级到下一版。而 LTS 版本五年内稳定收补丁第三方软件、显卡驱动、Docker、各种开发工具链对它的适配也最充分。我的建议很直接除非你的硬件特别新新到 LTS 内核认不出网卡或者显卡否则一律选 LTS。目前主流选择是 22.04 LTS 和 24.04 LTS后者更新一些前者生态兼容性验证得更久。至于市面上热词里出现的更新版本往往还在早期阶段追求稳定就别急着上。1.2 镜像下载渠道与速度差异官方下载地址是 ubuntu.com 的 download 页面进去之后会看到 Desktop 和 Server 两个入口。桌面版带图形界面适合日常开发和个人使用服务器版没有图形界面装完只有一个命令行适合跑服务。从官方源直接下国内速度通常只有几百 KB 每秒一个 5GB 左右的 ISO 要下很久。更实用的做法是用国内镜像站。清华 TUNA、中科大 USTC、阿里云这几个镜像站都提供完整的 Ubuntu ISO 同步速度能跑满带宽。地址规律也简单基本是镜像站域名/ubuntu-releases/版本号/这个结构。另外要确认架构。绝大多数笔记本和台式机是amd64也就是 x86_64。苹果 M 系列芯片、部分开发板是arm64。下载页面上通常会根据你的浏览器 UA 自动推荐但如果你在别人机器上帮人下最好自己确认一下。装错架构的表现是启动盘做完根本进不去安装界面。1.3 校验和与写入前的最后一关ISO 下完直接写 U 盘是很多人的习惯动作但这个动作跳过了一步校验。网络传输过程中文件损坏的概率不高但一旦损坏你会在安装到一半时遇到莫名其妙的错误排查半天还以为是硬件问题。官方在 ISO 同目录下有一个SHA256SUMS文件里面记录了每个镜像的哈希值。Linux 或 macOS 下用sha256sum ubuntu-24.04-desktop-amd64.isoWindows 下可以用 PowerShell 的Get-FileHash命令。把输出和SHA256SUMS里对应那行对比完全一致就说明文件没问题。这一步花不了一分钟但能省掉后面几小时的排查。注意如果校验值不一致别抱侥幸心理直接重下。曾经有人为了省时间硬装结果装完系统文件损坏开机进不去桌面。2. 启动盘制作与物理机安装分区和固件设置是最大的坎镜像准备好之后如果是要装到实体机器上接下来就是做启动盘、进 BIOS、分区、安装。这一段的坑密度最高尤其是固件设置和分区方案这两块选错了轻则装不上重则把原来的数据弄丢。2.1 启动盘工具的对比与制作Windows 平台上常用的工具有三个Rufus、balenaEtcher 和 Ventoy。Rufus 体积小、写入快支持 GPT 和 MBR 两种分区表做单系统启动盘最省事。balenaEtcher 界面更友好跨平台验证写入结果适合不想折腾的人。Ventoy 的玩法不太一样它把 U 盘做成一个可以放多个 ISO 的启动盘之后往里拖 ISO 文件就行不用反复格式化适合经常装系统的人。用 Rufus 时有个细节要注意分区类型要选 GPT目标系统选 UEFI除非你的机器是十年前的老设备只支持 Legacy。选错了会导致开机进不去安装界面。写入模式一般选 ISO 镜像模式即可DD 模式虽然更底层但会隐藏 U 盘分区。Linux 或 macOS 下可以用dd命令直接写sudo dd ifubuntu-24.04-desktop-amd64.iso of/dev/sdX bs4M statusprogress oflagsync这里的/dev/sdX一定要换成你的 U 盘设备名写错了会覆盖掉硬盘数据。用lsblk先确认再动手这一步不能省。2.2 UEFI 与 Legacy 模式下 BIOS 的关键设置插上启动盘重启按 F2、F12、Del 之类的按键进 BIOS。不同品牌按键不一样联想常见 F12戴尔 F12惠普 F9 或 Esc华硕 F8。进去之后有几个设置必须检查。第一是启动模式UEFI 优先如果你的机器支持就别用 Legacy。第二是 Secure BootUbuntu 官方镜像对 Secure Boot 是兼容的但如果你后面要装某些第三方内核模块比如部分显卡驱动关掉它会省事一些。第三是 Fast Boot这个功能会跳过部分硬件初始化可能导致 U 盘识别不到装系统时先关掉。还有一个 Intel 平台特有的坑硬盘控制器模式。不少笔记本出厂默认是 RST 模式这种模式下 Linux 安装程序看不到硬盘。需要在 BIOS 里把它改成 AHCI。但直接改可能导致 Windows 无法启动正确做法是先在 Windows 里用安全模式切换驱动再改 BIOS 设置。这个顺序搞反了会两头都进不去。2.3 手动分区方案的设计思路安装程序走到分区这一步会给你两个选择自动擦除整盘安装或者手动分区。如果这块盘只装 Ubuntu自动分区省事。但要装双系统或者有多个硬盘就得手动分。手动分区的核心是搞清楚每个分区干什么用。下面是我常用的方案挂载点建议大小文件系统用途说明/boot/efi512MB - 1GBfat32UEFI 启动分区必须存在/40GB - 60GBext4系统本体装软件都在这/home剩余空间ext4用户数据重装系统可保留swap内存的 1-2 倍或省略swap休眠和内存不足时用EFI 分区如果机器上已经有 Windows通常已经有一个 100MB 到 300MB 的直接复用即可不用新建。根分区给 40GB 以上因为 Docker 镜像、编译产物都很占地方。/home单独分出来的好处是系统重装时数据不动这个习惯一旦养成会省很多事。swap 现在的看法比较灵活内存 16GB 以上基本可以不单独分用 swapfile 代替就行。2.4 安装黑屏、卡死的完整排查链路安装过程中最常见的两个表现一是选完启动项直接黑屏二是安装界面出来了但卡在某个步骤不动。这两个问题的排查路径不一样。黑屏多半是显卡驱动的问题尤其是 NVIDIA 独显的机器。安装程序加载了开源显卡驱动但和你的卡不兼容。解决办法是在 GRUB 启动菜单出现时按e编辑启动参数找到quiet splash这一段把它改成nomodeset然后按 F10 启动。nomodeset的作用是让内核不要过早加载显卡驱动先用基本的显示模式把安装界面跑起来装完系统再装正式驱动。另一个典型场景是热词里提到的服务器黑屏但是下面有两个小图标。这个画面通常出现在安装程序试图进入图形界面但显示输出到了错误的接口。同样用nomodeset能解决大部分情况。如果还不行检查显示器线是不是插在独显上而系统输出走了集显换个接口试试。卡在某个步骤不动先别急着断电。安装过程会在后台做磁盘操作慢是正常的。如果超过十几分钟完全没反应才考虑重启。重启前记下卡在哪一步重新来过时换一个分区方案或换一个镜像源试试。3. 虚拟机路线把折腾成本压到最低的选择不是每个人都有一台可以随便格盘重装的机器。对于大多数人来说先在虚拟机里把 Ubuntu 跑起来熟悉了再考虑装实体机是成本最低的路径。这一节讲虚拟化软件怎么选、虚拟机里装 Ubuntu 的完整流程以及快照这个被严重低估的功能。3.1 VMware 与 VirtualBox 的选型逻辑VMware Workstation 和 VirtualBox 是虚拟机路线上最常见的两个选择。VMware 的图形性能、拖拽文件、宿主机和虚拟机之间的剪贴板共享做得更顺安装 Ubuntu 之后装open-vm-tools就能用这些功能。VirtualBox 是开源免费的功能上不差太多但 3D 加速和显示性能在某些场景下不如 VMware。我的判断标准很简单如果你只是跑命令行、写代码、做实验VirtualBox 完全够用。如果你要在虚拟机里开图形界面、跑 IDE、看视频VMware 的体验明显更好。预算允许的话直接上 VMware省的那些折腾时间值这个钱。虚拟机创建时有个关键配置容易忽略内存和磁盘的分配。内存给 4GB 是底线8GB 以上用着才舒服。磁盘建议选单个文件或者拆分成多个文件都可以但容量别按默认的 20GB 给至少 40GB因为 Ubuntu 加开发工具很快就能吃掉几十个 G。磁盘类型选动态扩展不会一上来就占用你全部物理空间。3.2 虚拟机里跑 Ubuntu 的完整流程创建虚拟机时操作系统类型选 Linux版本选 Ubuntu 64-bit。网络模式这一步很有讲究。NAT 模式下虚拟机能上网但宿主机和其他机器访问不到它适合只做本地实验。桥接模式下虚拟机相当于局域网里独立一台机器有自己的 IP适合需要从外部 SSH 连接的场景。ISO 挂载之后开机安装流程和物理机基本一样唯一区别是分区这一步可以放心用自动分区因为整块虚拟磁盘都是给它的。安装过程中会提示是否安装第三方软件和更新建议勾选能省掉后面装显卡驱动和媒体编解码器的时间。装完之后第一件事是装增强工具。VMware 下执行sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop装完重启剪贴板共享、分辨率自适应、宿主机拖拽文件这些功能就都能用了。VirtualBox 下对应的是virtualbox-guest-utils和virtualbox-guest-dkms。3.3 快照和克隆把试错成本降到接近零虚拟机最大的价值不是省硬件而是可以随便折腾。这个价值要靠快照来实现。装完系统、装好常用工具之后先打一个快照命名成干净环境。之后你想试什么危险操作比如改系统配置、编译内核、装一堆可能冲突的软件提前再打一个快照。出了问题的处理方式就一句回滚快照几十秒回到之前的状态。这个方法我用了很多年它把把系统搞坏了这件事从灾难降级成了日常操作。克隆则是快速搞出一台一模一样的新虚拟机适合做集群实验比如测试 Harbor 或者搭建多个节点的开发环境。提示快照不是越多越好。快照存的是磁盘增量积累太多会拖慢虚拟机并且占用大量空间。养成习惯重要的干净状态留一个长期快照临时快照用完及时删除。4. 双系统共存和 Windows 分同一块盘要注意什么如果你希望 Ubuntu 直接用上全部硬件性能同时保留 Windows双系统是常见方案。它的核心难点不在安装而在顺序、分区和引导这三件事的先后关系。4.1 安装顺序与磁盘空间腾挪顺序上永远是先装 Windows再装 Ubuntu。因为 Windows 的安装程序会覆盖引导记录而 Ubuntu 的 GRUB 能识别 Windows 并把它加进菜单。反过来做你会得到一个直接进 Windows 的机器还得手动修复 GRUB。磁盘空间要在 Windows 里提前腾好。打开磁盘管理压缩卷从 C 盘或者数据盘里分出一块未分配空间给 Ubuntu。注意这里的关键词是未分配空间不要提前格式化成 NTFSUbuntu 安装程序需要自己在这块空间上建 ext4 分区。分多少合适我的经验是根分区 40GB 起/home按你打算存多少数据来定。如果只是学习用途总共 100GB 一般够用。如果你要跑 Docker、编译大型项目、存模型文件那要往 200GB 以上走。4.2 引导菜单与系统时间同步装完之后重启会看到 GRUB 菜单列出 Ubuntu 和 Windows 两个选项。如果没看到 Windows通常是因为 Secure Boot 或者磁盘模式的问题可以在 Ubuntu 里更新一下 GRUB 配置sudo update-grub它会重新扫描硬盘上的操作系统并更新菜单。双系统还有一个几乎人人都会遇到的小问题时间错乱。进 Ubuntu 之后发现时间比实际差了 8 小时回 Windows 又正常来回切换就来回错。原因是 Windows 默认把硬件时钟当本地时间Ubuntu 默认当 UTC。统一成一种即可我一般让 Ubuntu 用本地时间timedatectl set-local-rtc 1 --adjust-system-clock改完重启两边时间就一致了。这个坑不解决不致命但每次切系统都要被恶心一下。5. 系统装完之后那些不做就不顺的必配项系统能进桌面只是开始。真正决定你这台 Ubuntu 好不好用的是接下来这一小时的配置工作。这一节把网络、输入法、驱动、权限、环境变量、密码恢复这几个高频问题一次讲透。5.1 网络配置和 SSH 连不上的排查思路虚拟机和实体机都可能遇到网络问题。先用ip a看网卡有没有拿到 IP。如果没有检查虚拟机网络模式是不是 NAT或者实体机的网线、Wi-Fi 驱动是否正常。实体机常见的情况是无线网卡太新内核不认这就需要装驱动或者升级内核。要从别的机器 SSH 连进来先在 Ubuntu 上装服务端sudo apt update sudo apt install openssh-server sudo systemctl enable --now ssh然后用ip a记下 IP。如果对面用 Xshell 连接时提示超时按这个顺序排查先ping看能不能通能通说明网络没问题再看 SSH 服务是不是在跑systemctl status ssh再看防火墙有没有拦sudo ufw status必要的话放行 22 端口最后确认用户名和密码没输错。NAT 模式下的虚拟机还需要在虚拟机设置里做端口转发否则宿主机以外的机器根本访问不到它。5.2 中文输入法的安装与切换刚装好的 Ubuntu 默认只有英文输入打中文需要额外配置。最省事的是用系统自带的ibus加拼音sudo apt install ibus-pinyin然后在设置里的区域与语言中添加中文输入源。想要更好的中文体验可以考虑搜狗输入法 Linux 版或者fcitx5。搜狗输入法的安装方法是先下载 deb 包再用sudo dpkg -i安装如果提示依赖缺失就补一句sudo apt install -f。装完搜狗之后可能要设置环境变量让输入法框架生效在~/.profile或者~/.bashrc里加export GTK_IM_MODULEfcitx export QT_IM_MODULEfcitx export XMODIFIERSimfcitx重启或重新登录之后用 CtrlSpace 切换中英文。如果切换不生效先去系统设置的语言支持里把输入法框架选成 fcitx再重新登录一次。5.3 显卡驱动、系统架构与硬件信息查看NVIDIA 显卡的驱动是 Ubuntu 新手最常见的障碍。装之前先用命令看看系统建议你装哪个版本ubuntu-drivers devices输出里会列出可用驱动和推荐版本。图省事可以直接sudo ubuntu-drivers autoinstall装完重启用nvidia-smi验证。如果这条命令能输出显卡型号、驱动版本、显存占用就说明驱动正常工作了。如果报错多半是 Secure Boot 在拦进 BIOS 关掉再装。查系统架构用uname -m输出x86_64就是 64 位 x86输出aarch64就是 ARM。查硬件信息用lspci看 PCI 设备lsusb看 USB 设备lsblk看磁盘和分区。这几个命令组合起来基本能覆盖日常排查需求。5.4 权限模型和 sudo 的那些坑Linux 的权限模型是新手最容易懵的地方。核心概念就三个用户、组、其他每种身份对应的读写执行权限。chmod改权限chown改归属。看到Permission denied的时候先想清楚是文件权限不够还是需要sudo。一个高频的坑是把不该给777的东西给了777。chmod -R 777看起来能解决一切权限问题实际上会破坏 SSH 密钥、可执行文件、系统目录的安全要求。正确做法是搞清楚文件该有的权限再改。另一个坑是 Docker。装完 Docker 之后每次运行都要加sudo很烦。解决办法是把当前用户加进 docker 组sudo usermod -aG docker $USER执行完必须重新登录才生效直接在当前终端里敲命令是没用的因为组关系在登录时就已经确定了。5.5 环境变量配置错误的定位与修复环境变量改错导致命令找不到是非常典型的问题。常见表现是command not found或者明明装了某个工具但终端里跑不了。环境变量的加载顺序按这个优先级/etc/environment是系统级的/etc/profile和/etc/profile.d/*.sh是全局登录时加载~/.profile和~/.bashrc是当前用户的。图形界面下的终端通常读~/.bashrc。最常见的错误是在追加 PATH 时忘了带上原来的值export PATH/opt/mytool/bin # 错误原来的 PATH 全丢了 export PATH/opt/mytool/bin:$PATH # 正确第一种写法会让系统找不到ls、cd之外的几乎所有命令。真出这个问题了也别慌用绝对路径/usr/bin/vi ~/.bashrc打开文件改回来就行/usr/bin下的命令不受 PATH 影响。注意改环境变量之前先备份一下文件改完source ~/.bashrc生效。如果新开的终端都坏掉了就说明问题在~/.bashrc里别重启直接用绝对路径修。5.6 忘记登录密码的处理办法密码忘了不用重装系统。重启在 GRUB 菜单停在 Ubuntu 那一项按e编辑找到以linux开头的那行把末尾的ro quiet splash改成rw init/bin/bash按 F10 启动会进入一个 root 权限的 shell。接着执行passwd 你的用户名按提示输入新密码两次。如果提示文件系统只读先执行mount -o remount,rw /。改完密码用exec /sbin/init或者直接长按电源重启正常登录即可。这个方法对物理机和虚拟机都适用前提是你能进 GRUB 菜单。6. 开发环境落地从空系统到能干活系统配好了接下来就是让它变成一台能干活的开发机。这一节按工具链、容器、Python 环境、编辑器、嵌入式开发几个方向讲每个方向只讲最实用的部分。6.1 gcc、cmake、lua 这些基础工具链编译环境的基础是build-essential一个包把 gcc、g、make、libc 开发头文件全带上了sudo apt install build-essential装完用gcc --version验证。有些热词里提到安装 gcc 失败大多数情况是软件源没更新或者网络问题先sudo apt update再装。如果报依赖冲突看提示里具体缺哪个包单独装上再重试。cmake 单独装sudo apt install cmake cmake --version如果项目要求更高版本的 cmakeapt 里的版本不够可以去官网下预编译包或者用 pip 装但要注意别把系统自带的 cmake 覆盖掉容易影响其他依赖它的软件。lua 的安装很直接sudo apt install lua5.4加luajit基本够用。至于 Redis如果想要最新版源码编译是常见做法下源码包make然后make install编译前先确保 build-essential 装好了。有个细节是源码编译出来的 Redis 默认不带系统服务需要自己写 systemd 配置文件才能开机自启。6.2 Docker、镜像仓库与容器化环境Docker 现在几乎是开发机的标配。apt 源里的 docker.io 版本偏旧想要新版得用官方源。装完记得把用户加进 docker 组前面讲过了。镜像拉取慢的话在/etc/docker/daemon.json里配置镜像加速地址。这个文件没有就新建{ registry-mirrors: [你的加速地址] }改完sudo systemctl restart docker重启服务。Harbor 是私有镜像仓库适合团队内部用。它依赖 Docker 和 docker-compose安装方式是下载离线安装包解压后编辑harbor.yml配置主机名和端口然后跑./install.sh。装完默认通过 80 端口访问admin 用户的初始密码在配置文件里能改。第一次部署最容易踩的坑是主机名配置和实际访问地址不一致导致 push 镜像时报证书或连接错误。6.3 Miniconda3 与 PyTorch 环境Python 环境管理推荐 Miniconda3比完整版 Anaconda 轻很多。下载安装脚本wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh装完它会提示你初始化 shell选 yes然后重开终端。用conda create -n myenv python3.11建环境conda activate myenv激活。装 PyTorch 直接去官网复制命令注意选对 CUDA 版本。如果机器没有 NVIDIA 显卡或者不打算用 GPU选 CPU 版本就行。装完用一段简单代码验证import torch print(torch.__version__) print(torch.cuda.is_available())第二行输出True才说明 GPU 能用。如果显示 False先确认nvidia-smi正常再检查装的 PyTorch 是不是 CUDA 版本。conda 环境和系统 Python 别混用容易出现包版本冲突。6.4 VSCode 和代码辅助工具VSCode 在 Ubuntu 上的安装方式有两种下 deb 包手动装或者加微软的软件源用 apt 装。后者能自动更新更省心。装完之后建议装上几个基础插件中文语言包、Python、C/C、Remote-SSH。Remote-SSH 这个插件配合前面配好的 SSH 服务可以让你在 Windows 上用图形化的 VSCode 直接编辑远程 Ubuntu 上的代码不用来回传文件。如果你用命令行里的代码辅助工具安装方式一般是先用 npm 或者官方脚本装好再配置 API 密钥。这类工具的环境变量通常放在~/.bashrc或者工具自己的配置文件里。需要注意的是这类工具对 Node.js 版本有要求装之前先node -v看看版本太低就升级。至于写 HTML 的需求VSCode 本身就是很好的 HTML 编辑器装个 Live Server 插件就能实时预览。想要更轻量的可以用 Bluefish 或者 gedit 加插件但综合体验还是 VSCode 最均衡。6.5 Zephyr 等嵌入式开发环境Zephyr 是嵌入式开发里比较活跃的一个 RTOS。在 Ubuntu 上搭它的环境核心是 Python 和 west 工具。先保证 Python3 和 pip 正常然后pip install west接着克隆 Zephyr 源码用 west 初始化并拉取依赖west init ~/zephyrproject cd ~/zephyrproject west update依赖拉完之后装 Python 依赖和工具链pip install -r zephyr/scripts/requirements.txt工具链Zephyr SDK需要单独下载安装包解压到指定目录再设置环境变量ZEPHYR_SDK_INSTALL_DIR。这一步是嵌入式环境里最容易出问题的因为环境变量路径不对编译时会报找不到编译器。用west build -b 开发板型号编译一个示例工程能通过就说明环境搭好了。开发板连接到 Ubuntu 之后用ls /dev/ttyUSB*或者ls /dev/ttyACM*看设备有没有识别。如果没识别多半是串口芯片驱动的问题常见的是 CH340 和 CP2102 这两种需要装对应驱动。另外当前用户要加进dialout组才能访问串口加完同样要重新登录。最后分享一个我自己用了很久的习惯装完一台 Ubuntu 之后我会把所有配置命令整理成一个 shell 脚本存起来从软件源、输入法、开发工具到环境变量一条条写好。下次重装系统跑一遍脚本半小时就能把环境恢复。配合前面说的/home单独分区和虚拟机快照Ubuntu 这块的折腾成本会降得非常低。系统用久了总会想重装一次但如果有这套东西在重装就不再是负担了。