1. 为什么我劝你按“项目”来装 Ubuntu
前阵子帮朋友升级一台吃灰多年的旧笔记本,准备装 Ubuntu 的时候才发现,现在网上很多教程还停留在“下一步下一步”的刻板流程里,根本没有考虑机器差异、引导方式、驱动适配这些实际问题。折腾到一半不仅进不去系统,连原来的 Windows 都被覆盖了,场面一度非常难看。
所以当我看到这个标题“安装 Ubuntu 操作系统”时,我第一反应不是去背安装步骤,而是想把它当成一个完整的小项目来对待。装系统本身不是目的,装完之后能稳定用、能跑开发、能当主力机,才叫项目完成。
这篇文章我想从一个实际执行者的角度,把从下载镜像、确认安装方式、分区规划、引导修复,到装完之后的输入法、字体、SSH 连接这些容易被忽略的细节,全部串起来讲一遍。无论你是刚接触 Linux 的新手,还是准备在虚拟机里做测试的老手,这篇文章都能给你一套可以直接照着做的方案,并且把每个选择背后的“为什么”讲清楚。
2. 安装前的准备工作:先把路铺好
2.1 先回答一个关键问题:虚拟机还是物理机
很多人的第一反应是直接拿 U 盘往物理机上装,但我建议你先冷静一下,想清楚自己到底要在 Ubuntu 上干什么。这个问题不解决,后面选镜像、分区分区、配置驱动都可能白干。
如果你的主要目的是“先体验一下 Linux 环境”“要跑一些简单的命令行实验”“后面大概率会把环境推倒重来”,那我强烈推荐先在虚拟机里装。VMware Workstation 或者 VirtualBox 都可以,我自己的经验是 VMware 对新硬件的兼容性更好,尤其是 USB 设备的转发和显卡 3D 加速,但 VirtualBox 胜在开源免费,基本功能也够用。虚拟机的好处是随时快照、随时回滚,虚拟机文件一删就彻底干净了,不会对现有 Windows 系统产生任何风险。
但如果你是要把 Ubuntu 作为主力开发环境,或者准备跑 Docker、Kubernetes 这类吃内存和 CPU 的资源密集型应用,那物理机是更合理的选择。Docker 在虚拟机里的嵌套虚拟化(简称“嵌套虚拟化”)虽然也能用,但网络配置和性能都会打折扣,踩坑成本高。
除了这两种情况,还有一种“中间态”是 WSL(Windows Subsystem for Linux)。这个方案特别适合写代码的人,尤其是需要用 Ubuntu 环境跑命令行工具、git 操作、Node.js 或者 Python 开发,但又不想放弃 Windows 桌面应用的场景。WSL 的启动速度比虚拟机快太多,资源占用也小,甚至可以直接在 Windows 上用 VS Code 连接 WSL 里的代码目录,体验非常接近原生的 Linux 开发机。不过需要注意的是,WSL 默认不带图形界面,虽然新版 WSLg 能跑 GUI 应用,但整体体验和真 Ubuntu 桌面还是有差距。针对标题里的“安装 Ubuntu 操作系统”,我建议你把本文的物理机安装当作主线来读,虚拟机方法我会在对应位置提示差异。
2.2 镜像下载与校验:这一步不能省
确定好安装方式后,下一步就是下载镜像文件。这里有个很多人忽略的重要细节:不要在搜索引擎里搜出来一个连接就点进去下载,而是认准 Ubuntu 的官方下载入口。如果你需要中文环境,可以从 Ubuntu 中文官网入口访问,但最终下载文件都会指向官方源。
我遇到过不少人在第三方网站下载了被篡改过的镜像,安装完之后不仅系统不稳定,还莫名其妙多了些不干净的东西。稳妥的做法是去 Ubuntu 官网(ubuntu.com/download)下载 LTS(Long Term Support,长期支持)版本。LTS 版本每两年发布一次,官方支持 5 年,对于普通用户和生产环境来说,这是最省心的选择。
如果你看到类似“Ubuntu 22.04 LTS”这样的字眼,说的就是 2022 年 4 月发布的长期支持版本,它直到 2027 年都能收到安全更新。对于电脑配置比较新的人来说,新一点的 LTS 版本会包含更新的内核和驱动支持,所以下载最新 LTS 版通常是最稳妥的选择。
下载完镜像之后,强烈建议做一次 SHA-256 校验。官网页面会提供对应镜像的校验值,你在下载目录里打开终端(Windows 可以用Get-FileHash,Linux/macOS 用sha256sum)比对一下。这一步能防止下载损坏或者被掉包,虽然多花一分钟,但能让后续所有操作都建立在可靠的起点上。
2.3 U盘烧录与启动方式确认
如果你准备物理机安装,需要把下载好的 ISO 镜像写入一个 U 盘。这里注意:不是把 ISO 文件直接复制到 U 盘里,而是要“烧录”成启动盘。跨平台工具推荐 Ventoy,它的做法是把 U 盘变成多启动盘,直接把各种 ISO 文件拷进去,开机时选菜单就能启动,以后想换系统只需要替换 ISO 文件,不需要重新烧盘。Rufus 在 Windows 下也很稳定,烧录速度快,遇到兼容性问题还可以切换 DD 模式写入。
接下来一个比较容易出问题的点是 UEFI 和 Legacy Boot 的区别。现在绝大多数电脑都是 UEFI 启动模式,磁盘分区表采用 GPT。如果你是在一台老机器上装系统,可能还是传统的 BIOS+MBR 模式。这两个模式对后续分区的选择影响很大,如果你不确定,可以进 BIOS 看一眼 Boot Mode 选项,或者在 Windows 的磁盘管理里确认磁盘类型是 GPT 还是 MBR。
我之前犯过的错误是在一台默认 UEFI 的电脑上用 Legacy 模式做启动盘,结果装好系统后死活引导不了。后来进 BIOS 关闭了 CSM(兼容性支持模块),强制走纯 UEFI 引导,问题才解决。所以这里给大家一个建议:优先用 UEFI 模式安装和引导,这是目前的主流方向。
3. 安装过程的细节拆解:每一步都别白点
3.1 磁盘分区策略:新手最纠结的一步
进入安装界面后,选择“最小安装”还是“正常安装”不是重点,真正的重点是分区。Ubuntu 安装器提供“清除整个磁盘并安装 Ubuntu”和“手动分区”两种方式。如果你使用的是整块空白硬盘,或者这台机器的数据都已经备份好,直接选择“清除整个磁盘”也没有问题,系统会自动创建必要的分区。
但如果你的目标折腾导向更强——比如后面想再安装其他 Linux 发行版,或者想保留 Windows 组成双系统,我建议花几分钟做手动分区。以 UEFI 模式为例,最少需要创建以下几个分区:
- EFI 系统分区(挂载点
/boot/efi):大小建议 512MB 到 1GB,文件系统选择 FAT32,主要用于存放引导文件。这个分区不能省,没有它电脑不知道从哪里启动系统。 - 根分区(挂载点
/):相当于 Windows 的 C 盘,装系统和软件都在这里。我建议至少给 50GB,如果硬盘空间宽裕,给到 100GB 以上更舒服,因为有些开发工具链(比如 Android SDK)动辄几个 GB。 - 交换分区(swap):如果你有 16GB 以上内存,swap 分区给 4~8GB 就够了;如果内存小于 8GB,建议给到和内存相当的大小。系统内存不足时会把不活跃的数据交换到 swap 里,防止直接卡死。
- 家目录分区(挂载点
/home):可选但强烈建议单独分。把你的个人文件、配置、下载内容放在独立分区里,以后就算系统崩溃重装,只要不格式化/home,你的数据和配置都还在。
记住一个很朴素的道理:分区是对容错成本的规划,而不是磁盘空间分配的竞赛。每一块分区你都应该知道它是干嘛的,没必要为了好看而建一堆没用的数据卷。
3.2 用户账户与密码策略
安装过程中会让你创建用户名和密码。这里我想多说一句:Linux 的用户名和密码跟 Windows 不一样,它直接关系到系统权限的边界。你创建的这个用户是 sudo 组的成员,也就是说它可以执行只有管理员才能做的操作。日常使用没问题,但密码不要设得太简单,也不用复杂到自己都记不住。
另外,安装时系统会默认设置登录时需要密码。如果你希望开机后直接进桌面(不爱输密码的人),可以在装完之后通过“用户设置”把“自动登录”打开。但说句实在话,如果这台机器可能被其他人碰到,我建议保留密码登录,安全边际高很多。
3.3 引导安装位置:多系统用户特别注意
在安装类型页面底部,有一个“安装启动引导器的设备”选项。单系统安装时默认选/dev/sda或对应的整块磁盘即可,但双系统安装时要特别小心:如果你把引导器装到 Windows 所在硬盘的 MBR 或 EFI 分区上,可能会导致 Windows 无法启动,或者 Ubuntu 的 GRUB 菜单不出现。
推荐的做法是让引导器安装到 Ubuntu 所在的那块磁盘上,然后在 BIOS 启动顺序里把该磁盘设为第一启动项。这样 Windows 和 Ubuntu 的引导互不干扰,切换系统只需要开机时选启动项。曾经我在双系统装完 Ubuntu 后,Windows 不见了,就是因为 GRUB 覆盖了 Windows 的引导入口。后来通过进 BIOS 手动切启动盘才把两个系统都找回来。如果你已经遇到这种问题,不要慌,一般用启动盘进 Live 环境,跑一下引导修复工具就行。我在后面的“问题排查”里会详细写。
3.4 安装完成后第一次进系统要做什么
第一次进入 Ubuntu 桌面后,安装并没有结束,还有几件小事建议马上做。
第一件事是更新软件源。Ubuntu 默认的下载源在国外,国内访问速度可能很慢。打开“软件和更新”把下载服务器换到国内镜像源,比如清华源、阿里源或中科大源,然后执行sudo apt update && sudo apt upgrade。这一步能保证你后续安装任何软件都快得多,而且能拿到最新的安全补丁。
第二件事是安装显卡驱动。如果你用的是 NVIDIA 显卡,并且需要做 CUDA 相关的开发,或者单纯觉得图形界面卡顿,建议在“软件和更新”的“附加驱动”选项卡里选择一个 NVIDIA 的专有驱动,等待安装完成后重启生效。闭源驱动对游戏和深度学习框架的兼容性比开源驱动好很多。Intel 核显通常不用额外处理,开箱即用。
第三件事是检查系统更新。“设置”里找到“软件更新”,把“自动检查更新”选项打开。系统安全更新不能拖,很多漏洞就是通过旧内核和旧浏览器插件出的问题。
4. 装完之后立刻要做的 5 件事:从“能开机”到“好用”
4.1 中文输入法配置:别再死磕搜狗了
很多从 Windows 转过来的人第一件事是装输入法。诚然,搜狗输入法出了 Linux 版,但实际体验众说纷纭,有的人反馈升级系统后输入法经常崩。我个人的建议是优先使用系统自带的 IBus 智能拼音,它的词库已经够用,而且和 Ubuntu 桌面环境贴合度最高,基本不会出现输入框不跟随的问题。
具体的配置方法非常简单:进入“设置”>“系统”>“区域与语言”,点击“输入源”旁边的加号,选择“中文(中国)”,再选择“中文(智能拼音)”。添加完后,切换输入法的快捷键默认是Super键(Windows 键)或Ctrl+Space,你可以根据自己的习惯改。如果你还是更倾向搜狗输入法,也可以去搜狗官网下载.deb安装包,但装完之后需要回到“区域与语言”里把输入源切到“搜狗输入法”,整个过程稍微绕一点,但也不复杂。
从实际使用频率来看,输入法的优先级比配置 VSCode 还高,如果你装完 Ubuntu 不先把中文输入法搞定,后面查资料、写文档都会很痛苦。
4.2 让终端更好用:WSL 里最推荐的字体实践
如果是在 WSL 里写代码,你可能经常会觉得代码里的英文和符号显示得不舒服。这里分享一个我实测过比较推荐的思路:把终端字体设置为 Meslo LG M Regular for Powerline(或者更简单的Cascadia Code,微软自家出的等宽字体,对 Powerline 符号支持也好)。
这背后的逻辑是:写代码时字体的可读性直接影响长时间编程的舒适度。Monospace 字体保证每个字符宽度一致,对齐好看;而带连字(ligature)的字体比如Fira Code,在显示!=、=>、==这些符号时会更清晰,适合阅读代码量大的项目。我自己的组合是:等宽字体用 “JetBrains Mono”,中文环境显示交给系统默认的字体渲染,整体接近 macOS 那种清爽干净的字形体验。
在 WSL 里,你不需要真的去装一套字体到 Linux 文件系统,只需要在 Windows Terminal(或 VS Code 的终端面板)的设置里,把字体改为上述提到的任一款即可。修改后重启终端,立刻就能感受到字体渲染的差异。
4.3 安装 VS Code 与开发环境准备
作为开发者,装完系统后的第一件事一般是把开发工具链补齐。VS Code 在 Ubuntu 上的安装方式很简单:去官网下载.deb包,双击即可通过软件中心安装,也可以执行sudo dpkg -i 包名.deb手动安装。
装完 VS Code 后,我建议顺手配置 SSH Remote 功能,这样你就可以直接连接远程服务器开发。微软官方提供了 Remote-SSH 插件,配上 WSL 的本地环境,你甚至可以用 Windows 端的 VS Code 直接操作 Linux 子系统里的项目文件,换行、编码、路径这些跨平台问题基本不用操心。
如果想在 Ubuntu 上装 Docker,命令也简单:
sudo apt update sudo apt install docker.io docker-compose安装完成后别忘了把当前用户加进 docker 组,否则每次执行 docker 命令都要sudo。执行sudo usermod -aG docker $USER,然后重新登录一下终端。这是新手最容易踩的坑,注意一下。
4.4 微信等常用办公软件的安装思路
热搜词里有“Ubuntu 微信”,说明这是很多人的刚需。Linux 版微信官方经历了多次迭代,目前官方已经推出了原生 Linux 版本,你可以直接在官网下载.deb安装包,也可以使用星火应用商店等第三方渠道安装。不过我得说实话,Linux 版微信的功能相比 Windows 版确实有差距,比如群聊管理和文件接收体验都还不够完善。
如果你对微信的要求比较高,我建议考虑用网页版应急,或者直接装一个 Windows 虚拟机来跑 Windows 版微信。这不是 Ubuntu 的问题,而是生态的问题,做系统选型之前应该心里有数。
4.5 SSH 网络服务:装完就开是最稳的
如果你的 Ubuntu 是装在服务器上,或者你希望从另一台电脑远程连接它,那 SSH 服务是必须启用的。Ubuntu 默认不带 openssh-server,需要手动安装:
sudo apt install openssh-server sudo systemctl enable ssh --now查看本机 IP 用ip addr或者hostname -I,然后在另一台机器上用ssh 用户名@IP测试连接。如果连不上,大概率是防火墙问题,因为 Ubuntu 的 UFW 默认可能没有放行 22 端口:
sudo ufw allow ssh另外“ubuntu ssh无法连接”这个热词我猜很多是来自刚装完系统的用户。建议连接前先确认一下服务是否启动,再确认 IP 是否变更,最后再查防火墙日志/var/log/auth.log,这个顺序能帮你快速定位问题。
5. 实操过程记录:一次从零到可用的完整安装复盘
5.1 硬件环境与方案选型
我这台用来演示的机器是一台 i5 8500 处理器、16GB 内存、一张 NVIDIA GTX 1050 显卡、一块 512GB NVMe SSD 的旧台式机。原本装了 Windows 10,这次我要把它改造成双系统:保留 Windows 200GB,剩下的空间全部给 Ubuntu。
选择双系统的原因是:我偶尔还要用 Windows 上的 Adobe 服务来处理一些设计文件。这一步顺带验证了热搜词里那条和 Adobe 相关的描述——目前在 Linux 上不能正常使用订阅类 Adobe 软件,其他解决方案都会涉及非官方途径,不推荐。所以如果你重度依赖 Adobe 全家桶,Linux 作为主力系统可能还不太现实,双系统是比较高效的过渡方案。
5.2 操作时间线
整个安装过程我记录了一下:
- 下载镜像:从官网下载 Ubuntu 22.04.3 LTS 的 ISO,大小约 4.7GB,用 sha256sum 校验和官网一致。
- 烧录 U 盘:用 Ventoy 把 ISO 拷贝进 U 盘。Ventoy 的优势是它本身就是一个引导管理器,不需要反复烧录其他发行版,我直接把 CentOS、Debian 的 ISO 也放进去备用。
- 压缩 Windows 分区:在 Windows 磁盘管理器里右键 C 盘,选择“压缩卷”,腾出了 280GB 未分配空间。
- 重启进 BIOS:按 F12 选择 U 盘启动,进入 GRUB 菜单,选择“Install Ubuntu”。
- 安装过程:选择“最小安装”,然后手动分区。EFI 分区 512MB,根分区 80GB,swap 8GB,家目录挂载到剩余约 190GB 空间。
- 重启进系统:安装完成后拔掉 U 盘,重启出现 GRUB 菜单,选择 Ubuntu 进入系统。
全程耗时大约 25 分钟。从实际体验来看,Ubuntu 的安装器步骤很精简,很多新手觉得最难的分区环节,因为有明确需求,所以做起来反而很快。如果你不知道自己需要多大空间,那就参考巫师三:给操作系统预留 80~100GB,剩下的给数据和个人文件。
5.3 首次启动后的配置脚本化
我习惯把装机后的配置写成一个 shell 脚本,下次安装可以直接复用。这里分享一个简洁的初始化脚本雏形:
#!/bin/bash sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget git vim build-essential sudo snap install code --classic sudo apt install -y openssh-server sudo systemctl enable ssh --now sudo ufw allow ssh执行完这个脚本后,你的系统就具备了基本开发能力。剩下的如中文输入法、分区自动挂载、Docker 配置等,按需手动添加即可。把重复的事脚本化是 Linux 用户效率提升最快的路径,我强烈推荐你养成这种习惯。
6. 常见问题与排查技巧实录
6.1 启动管理器问题:GRUB 菜单不见了
现象:装完 Ubuntu 后,开机直接进入 Windows,根本没有 GRUB 菜单。
原因:最常见的情况是电脑的 BIOS 启动顺序仍然优先 Windows Boot Manager,而 Ubuntu 的引导文件虽然装到了 EFI 分区,但排在后面。
排查步骤:开机进 BIOS,找到 Boot Order,把 Ubuntu 对应的启动项(通常叫 “Ubuntu” 或 “Linux Boot Manager”)移到第一位,保存退出。如果 BIOS 里没有 Ubuntu 启动项,那就用 U 盘进入 Live 系统,安装并运行 Boot Repair 工具:
sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair选择“Recommended repair”,它会自动检测并修复 GRUB 引导链。这个方法也能救活很多被 Windows 篡改引导的场景。
6.2 SSH 无法连接:排查要成体系
既然标题和热搜词里都有“ubuntu ssh无法连接”这个常见问题,我单独列一下完整的排查顺序:
| 排查项目 | 命令/位置 | 判断标准 |
|---|---|---|
| 服务是否启动 | systemctl status ssh | Active: active (running) |
| 端口是否监听 | ss -tlnp | grep 22 | 出现 0.0.0.0:22 |
| 防火墙是否放行 | sudo ufw status | 22/tcp ALLOW |
| IP 是否可达 | 在另一台机器ping IP | 有响应 |
| 远程目标是否正确 | sudo cat /var/log/auth.log | 查看 SSH 登录日志 |
大部分 SSH 连不上的问题都出在防火墙或者 sshd 没启动,少数情况是 IP 变了。整个过程按表走,一般五分钟内能定位。
6.3 安装软件时提示依赖错误或更新失败
遇到过apt-get install时提示 “Unable to locate package” 的,大概率是因为软件源还没刷新。先执行:
sudo apt update如果仍然找不到,可能是你没有添加对应的 PPA 或软件源。例如安装 htop 这种常见的工具找不到,就检查/etc/apt/sources.list里的源地址是否有效。有时候换源之后需要sudo apt update重新生成索引,否则就会一直找不到包。
还有一种情况是系统里同时存在多个包管理器(比如 snap 和 apt),同一个软件装了两遍导致冲突。处理方法是用apt remove或snap remove把多余的那个版本卸掉,保留自己常用的一套即可。
6.4 虚拟机里安装时出现 “客户机操作系统已禁用 CPU”
这是我在 VMware 里装系统时遇到的一个比较怪的问题。更新 VMware 或升级 CPU 型号配置后,虚拟机配置里出现了不兼容的虚拟化选项。解决办法是把虚拟机设置里的 CPU 虚拟化引擎“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”重新勾选,或在启动参数里去掉不必要的-cpu限制。如果你看到“客户机操作系统已禁用 cpu,请关闭或重置虚拟机”这个提示,直接冷关机再重启虚拟机通常也能解决大部分临时性故障。
7. 从装机到排障,最后说点实在的
很多人会觉得,装个 Ubuntu 有什么好写的,一路下一步不就行了。但真正把系统稳定地跑起来、当成日常主力机用,中间隔了一段很重要的综合经验积累:分区规划要考虑业务需求,驱动选择要考虑硬件差异,输入法、SSH、开发工具链这些基础环境要提前准备好,出了问题还要会看日志和抓关键信息。
我个人的习惯是每装完一次系统,就更新一遍初始化脚本和笔记。下次再装的时候,二十分钟就能还原出一个舒服的开发环境。这套方法不仅适用于 Ubuntu,也适用于 Debian 或者其他 Linux 发行版,底层的逻辑是共通的。
如果你手头正好有空闲的 U 盘和一块闲置硬盘,不妨花一个下午按本文的步骤走一遍。装坏了不用怕,Ubuntu 重装的成本很低,真正贵的是你在这个过程中积累起来的动手解决问题能力。这也是我建议每个开发者都至少手动安装一次 Linux 系统的原因——它像一次军训,能把你平时忽略的细节全部暴露出来。