简介:这份指南专为Linux初学者与希望拓展系统技能的技术爱好者编写,围绕Ubuntu 20.04 LTS的安装与初始化展开,帮助读者摆脱对Windows或macOS的依赖,通过清晰的图文步骤掌握从镜像获取到系统部署的完整流程。资源为单个docx文档,大小约13KB,内容紧凑实用,涵盖从官网下载镜像、使用Rufus制作启动U盘、进入BIOS/UEFI调整启动顺序,到选择Try Ubuntu或Install Ubuntu安装模式、设置磁盘分区、创建用户账户,以及配置语言、键盘和时区等全部关键环节。文档特别说明了双系统安装时与Windows Boot Manager共存的注意事项,并给出了系统更新、常用软件安装和界面个性化等初始化配置方法,例如使用apt命令安装浏览器、办公软件,以及调整桌面背景和主题等,适合用作构建服务器或多任务环境时的入门操作手册。目前已有二百人学习下载,对于首次接触Linux的用户而言,这是一份可以直接对照执行并能快速上手的入门参考资料。
1. Ubuntu 20.04 LTS:为什么现在还在用它,以及这篇指南到底帮你解决什么
Ubuntu 20.04 LTS 发布于 2020 年 4 月,标准支持到 2025 年,但 Ubuntu Pro 可以把它延续到 2030 年——很多云厂商的默认镜像、培训机构的实验环境、以及大量生产服务器至今仍跑在这套系统上。这些年我帮团队和客户装过不下百次 Ubuntu 20.04 LTS,发现大多数人的痛点不在安装本身,而在装完之后的初始化配置:软件源没换导致 apt 慢到怀疑人生,NVIDIA 驱动装上就黑屏,中文输入法怎么都调不出来,SSH 连不上还找不到原因。这篇指南从制作启动盘开始,一路走到分区、系统配置、开发环境初始化,把安装和初始化配置里最常见的坑和对应的解决路径一次讲清楚。适合三类人:刚接触 Linux 想装双系统的新手、要在虚拟机上搭开发环境的人、以及需要批量初始化服务器的运维。
2. 安装前要定的三件事:镜像、启动盘与分区方案
2.1 镜像选择:20.04.x 小版本怎么挑
进入 Ubuntu 官网镜像下载页面,会看到 20.04.6 这样的小版本号。20.04 LTS 的小版本更新到 20.04.6 就是最后一个维护版,后续的更新全部通过 apt 推送。选择建议很简单:直接下载 20.04.6 Desktop 版。但要注意区分几个变体:
- Desktop ISO:带 GNOME 桌面,适合个人电脑和虚拟机。约 2.5GB 到 3GB。
- Server ISO:不带桌面环境,纯命令行,适合服务器。约 1GB。
- LiveServer ISO:新版安装器,支持自动安装配置文件,适合批量部署。
如果是虚拟机实验环境,用 Desktop 版最省事,因为后面初始化配置的很多操作(比如设置中文输入法、调整显示分辨率)在桌面环境下更方便验证。服务器场景选 Server 版,省掉桌面占用的内存和磁盘空间。
下载完成后强烈建议校验 SHA256。官方页面每个镜像都贴了 checksum,用下面的命令核对:
echo "a1b2c3...(官方给出的哈希值) ubuntu-20.04.6-desktop-amd64.iso" | sha256sum --check校验逻辑:sha256sum --check会读入「哈希值 文件名」这种格式,如果匹配就输出 OK,不匹配会提示 FAILED。这一步看着啰嗦,但镜像站下载出错、文件损坏的情况我遇到过好几次,烧进 U 盘后安装到一半报错,排查半天才发现是镜像本身的问题。另外注意:AMD64 架构的镜像在 Intel 和 AMD 的 64 位 CPU 上都能用,ARM 机器(比如树莓派、部分云主机)要选 arm64 版本。
2.2 启动盘制作:dd 命令与图形化工具
制作启动盘有两种常见做法,我按场景分开说。
Linux 下用 dd 命令直写 U 盘:
sudo fdisk -l # 确认 U 盘设备名,一般是 /dev/sdb 或 /dev/sdc sudo umount /dev/sdb* # 卸载 U 盘所有分区 sudo dd if=ubuntu-20.04.6-desktop-amd64.iso of=/dev/sdb bs=4M status=progress oflag=sync说明:fdisk -l用于确认设备名,千万不能写错,否则会把整块硬盘抹掉。bs=4M是每次读写 4MB,提高写入速度;oflag=sync让写入完成后同步落盘,防止拔 U 盘时数据还在缓存里。dd 命令没有进度条,status=progress会显示当前写入量和速度。
Windows / macOS 下用 balenaEtcher 或 Rufus:Rufus 在 Windows 下选「DD 镜像模式」写入,Etcher 直接选 ISO 即可。这里有个细节:用 Rufus 默认的 ISO 模式写完后,U 盘只有一个分区,某些老主板的 UEFI 引导会不识别,改成 DD 模式通常能解决。U 盘容量建议 8GB 以上,质量别太差——写入过程中掉速或者虚标容量的 U 盘,会在安装时不定时崩溃。
2.3 分区方案:单系统、双系统与虚拟机的不同分法
分区是安装前最值得花时间想清楚的一步。我按三种场景给参数:
场景一:虚拟机(VMware / VirtualBox)
虚拟机的磁盘就当一个分区用。安装时选「清除整个磁盘并安装 Ubuntu」,让安装器自动分区即可。swap 给 2GB 到 4GB,剩下的全给根分区。VMware 下建议把磁盘类型选成 NVMe,磁盘控制器选 LSI Logic,性能比默认的 SATA 稍好。
场景二:Ubuntu 单系统(物理机)
推荐分四个区:
| 挂载点 | 大小 | 文件系统 | 说明 |
|---|---|---|---|
| /boot/efi | 512MB | FAT32 | EFI 引导分区,必须 |
| / | 剩余空间减去 home 和 swap | ext4 | 系统与应用程序 |
| /home | 按需,建议不少于 100GB | ext4 | 用户数据独立 |
| swap | 与内存大小相同或 4GB | swap | 休眠用则要 ≥ 内存 |
如果你计划做数据分析或跑模型,/home 单独分区的价值在于:系统坏了重装时,用户文件和数据还在独立分区里,重装后挂回去就能继续用。
场景三:Windows + Ubuntu 双系统
最稳妥的顺序是先装 Windows,再装 Ubuntu,让 Ubuntu 的 GRUB 引导接管启动菜单。Windows 里在磁盘管理先压缩卷空出 100GB 以上未分配空间,安装 Ubuntu 时选择「Install Ubuntu alongside Windows Boot Manager」(与其他操作系统共存),安装器会自动复用现有 EFI 分区。这里注意:不要手动格式化 EFI 分区,否则 Windows 引导会被破坏。装完后 GRUB 里能看到 Ubuntu 和 Windows 两个启动项,不出意外的话开机 10 秒内能正常切换。
另外提一个参数:/boot分区我一般不单独分,除非你要用 LVM 或者 LUKS 全盘加密。单独分 /boot 反而容易因为空间不足导致内核更新失败——20.04 内核加 initrd 镜像动辄 100MB 以上,200MB 的 /boot 分区更新几个版本就满了。
3. 从 U 盘到桌面:安装过程逐步操作与参数选择
3.1 引导安装:UEFI 优先,BIOS 兼容模式是备选
插入 U 盘后开机,按 F12 / F2 / ESC 进入启动菜单(不同主板按键不同)。选择带 UEFI 前缀的 U 盘启动项。这里有一个容易翻车的点:部分主板的 UEFI 和 Legacy 共存时,如果选了 Legacy(传统 BIOS)模式,安装器会用 MBR 分区表,和 Windows 的 GPT 分区表冲突,双系统的引导就会乱。统一用 UEFI 模式不会有这个问题。
启动后看到 GRUB 菜单,选「Try or Install Ubuntu」进入体验环境。可以先点「Try Ubuntu」进桌面验证一下:Wi-Fi 能不能连、触摸板是否可用、磁盘能不能识别。这些都正常再正式安装。体验环境里打开终端执行sudo ubiquity也可以直接从图形向导开始安装,不过正常双击桌面上的 Install Ubuntu 图标就行。
3.2 安装选项:普通安装还是最小安装
进入安装向导后会看到「Normal installation」和「Minimal installation」两个选项:
- Normal:带 LibreOffice、Rhythmbox、Thunderbird、游戏等。约 8GB 磁盘占用,安装时间 20~30 分钟。
- Minimal:只有浏览器、系统工具和基本驱动。约 4GB 磁盘占用,安装时间 10~15 分钟。
我的建议是选 Minimal。大多数人的实际用途是开发或部署服务,LibreOffice 用不到,需要时apt install libreoffice一条命令的事情。Minimal 装完再按需装软件,系统更干净,apt 依赖冲突也少。另外「Download updates while installing」和「Install third-party software for graphics and Wi-Fi hardware」这两个复选框:
- 前者建议不要勾选。安装过程中更新会额外耗时,而且国内网络下 apt 连接官方源经常超时,安装失败重来的代价很高。装完系统再换源更新,可控性更好。
- 后者(第三方驱动)建议勾选。尤其 NVIDIA 显卡和部分 Wi-Fi 网卡(Realtek 8812AU 这类)需要非自由固件,不勾选的话装完上不了网、显卡驱动是开源的 nouveau,体验很差。
3.3 用户与分区落地:密码策略、时区和磁盘确认
用户配置页面填用户名、主机名、密码。密码策略我一般建议至少 12 位混大小写和数字,因为装完系统后很多人会开启 SSH 服务,弱密码在公网环境里撑不过 24 小时就会被扫描爆破。「Require my password to log in」保持默认勾选,「Use Active Directory」跳过。
分区这一步在前面已经规划好了,界面里选择「Something else」手动分区,逐个选中规划好的挂载点,设置文件系统为 ext4,Swap 区域选 swap 文件系统。注意 EFI 分区类型必须是 FAT32 且挂载点为 /boot/efi,安装器对部分主板的 EFI 分区大小要求比较严格,小于 100MB 有时会直接报错。
最后一步确认时,安装器会提示「Write changes to disk?」并列出将要格式化的分区。我的习惯是拿一张纸记下这一步显示的设备名和分区表,比如/dev/sda1 → /boot/efi、/dev/sda5 → /home。万一后面对照排查时,这张纸能帮你快速确认系统装在了哪块盘上。安装完成后拔掉 U 盘,回车重启。
重启后进系统,第一时间打开终端执行两个命令确认基本状态:
uname -a # 查看内核版本 lsblk # 查看磁盘与分区挂载情况uname -a如果看到5.4.0-xx-generic字样说明安装正常。lsblk检查挂载点是否和规划一致——特别是 /home 如果是单独分区,里应能看到home作为挂载点。到这里安装环节算是走完了。
4. 初始化配置:软件源、SSH、中文输入法与开发环境
4.1 软件源:换源是安装后第一件事
国内网络环境下,官方源(archive.ubuntu.com)的 apt 更新速度经常只有几十 KB/s,换源能直接提升到满速。改源最安全的方式是用 sed 批量替换,而不是手动编辑:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list sudo apt update说明:第一条命令做备份,这是改源的后悔药,手滑改坏可以一键恢复。第二条和第三条命令把所有archive.ubuntu.com和security.ubuntu.com替换成阿里云镜像地址。mirrors.aliyun.com也可以换成清华的mirrors.tuna.tsinghua.edu.cn或中科大的mirrors.ustc.edu.cn,以你实测速度为准。apt update会重新拉取软件包索引,如果输出里 404 或 Hash Sum mismatch,绝大多数情况是镜像同步延迟,等几小时或换个镜像即可。
20.04 的 sources.list 还包含ppa源(Launchpad 上的个人软件包归档)。换源后 PPAR 源仍然走ppa.launchpad.net,如果某些 PPA 下载很慢,可以只对这一条路由做 HTTP 代理,不展开说了。
4.2 SSH 服务:远程管理的基础设施
装完桌面版默认不带 SSH 服务端,只有客户端。开启服务端:
sudo apt install openssh-server sudo systemctl enable --now ssh sudo systemctl status ssh说明:enable --now等价于enable加start,设置开机自启并立即启动。systemctl status会显示 active (running) 字样。接着用ip addr查一下 IP,在另一台机器上ssh 用户名@IP测试连接。如果连不上,先在本机sudo ufw allow OpenSSH放行防火墙,再排查端口:
sudo ss -tlnp | grep :22ss输出里有0.0.0.0:22说明 sshd 在监听。这一步新手最容易踩的坑是sshd_config里设了PermitRootLogin相关的限制——20.04 默认不允许 root 直接用密码登录,如果你确实需要 root 远程登录,要修改/etc/ssh/sshd_config中的PermitRootLogin yes然后执行sudo systemctl restart ssh。我一般不建议开 root 登录,用普通用户 +sudo就够。
公钥登录比密码登录安全得多,初始化时顺手配掉:
ssh-keygen -t ed25519 -C "your_email@example.com" # 本机生成密钥对 ssh-copy-id 用户名@服务器IP # 把公钥推送到服务器ed25519是目前兼顾安全和性能的选择,比 RSA 2048 短且快,OpenSSH 8.x(20.04 自带)完全支持。ssh-copy-id会在服务器上创建~/.ssh/authorized_keys,以后登录就不需要密码了。
4.3 中文输入法:fcitx5 方案与三条关键配置
Ubuntu 20.04 默认的中文输入源是 ibus,但体验一般——候选词窗口不跟手、词库小、Shift 切换中英文经常失灵。我一般建议直接上 fcitx5:
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qtfcitx5是输入法框架,fcitx5-chinese-addons提供拼音引擎和词库,fcitx5-config-qt是图形配置界面。装完后还要做两步关键配置:
第一步,设置环境变量。编辑/etc/environment或~/.profile:
echo "export XMODIFIERS=@im=fcitx" >> ~/.profile echo "export GTK_IM_MODULE=fcitx" >> ~/.profile echo "export QT_IM_MODULE=fcitx" >> ~/.profile source ~/.profile第二步,把 fcitx5 设置为自启动并设为默认输入法框架:
im-config -n fcitx5im-config -n会把默认输入法框架从 ibus 切到 fcitx5。然后重启会话(注销再登录),如果任务栏没有出现 fcitx5 图标,执行fcitx5 -d手动拉起。配置界面里把「Pinyin」加入输入法列表,默认快捷键是 Ctrl+Space 切换中英文。三个最容易出问题的地方:
- 设置但没重启会话——环境变量只在新的用户会话里生效,注销重登一次是最稳妥的。
- 微信 / 钉钉等 Electron 应用里输入法不跟随——这是因为
GTK_IM_MODULE被应用覆盖了,fcitx5 1.7 以上版本对 Electron 的支持已经改善,但仍然建议优先用 Linux 原生版微信。 - 候选词窗口不出现——多半是
fcitx5进程崩了,pkill fcitx5后再启动即可。
搜狗输入法在 20.04 上也能装,但它的 Linux 版停更较早,如果系统升级过某些基础库,搜狗会无法启动。相比之下 fcitx5 的稳定性和可维护性更好,这也是我推荐它的原因。
4.4 开发环境初始化:git、Python 与 nodejs 的 20.04 注意事项
20.04 自带的 Python 是 3.8.10,很多新项目要求 3.10 以上,直接apt install python3并不会更新大版本。我一般用 deadsnakes PPA 装新版本:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.11 python3.11-dev python3.11-venv安装后 Python 3.11 的命令是python3.11,和系统自带的python3(指向 3.8.10)共存。不要尝试把系统默认 python3 软链到 3.11——Ubuntu 的 apt 依赖系统 python3 版本,改掉会导致很多系统工具不可用。正确做法是用python3.11 -m venv建虚拟环境,在虚拟环境里把python指到 3.11。
git 和 nodejs 的安装相对顺滑:
sudo apt install git git config --global user.name "Your Name" git config --global user.email "you@example.com" curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install nodejsgit 装完必须配置 user.name 和 user.email,否则首次 commit 会报Please tell me who you are,这是新手最常见的报错。nodejs 用 NodeSource 源装的是 18.x LTS,比 20.04 自带的 10.x 新两个大版本。这里有一个点:curl ... | sudo -E bash -会让脚本在 sudo 下保留当前环境变量,避免代理设置丢失。
如果你要装 Codex(OpenAI 的命令行编程工具),它的安装脚本需要 Node.js 18 以上,跑npm install -g @openai/codex前先确认node -v。在 20.04 上因为 Node 版本过低导致 Codex 装不了的情况很常见,先升级 Node 再装就能解决。
5. 显卡驱动、内核更新与软件源的避坑指南
5.1 NVIDIA 驱动装完黑屏
现象:安装 NVIDIA 官方驱动后重启,显示器黑屏或停留在登录界面无法进入桌面。原因:多半是驱动版本和内核不匹配,或者nouveau(开源驱动)没有完全禁用,和 NVIDIA 闭源驱动冲突。解决:在 GRUB 菜单按 E 进入编辑,在linux行末加nomodeset参数,按 F10 启动系统。进系统后执行:
sudo apt purge nvidia-* sudo apt autoremove sudo apt install nvidia-driver-470 # 20.04 + 5.4 内核推荐 470 系列nomodeset让内核不加载显卡模式设置,可以先用基本显示模式进系统。470 是 20.04 支持最成熟的 NVIDIA 驱动系列,不要盲目装最新版——CUDA 版本、内核版本和驱动版本三方匹配才稳定。查看显卡驱动是否安装成功用nvidia-smi,能输出 GPU 型号和驱动版本就说明成功了。
5.2sudo apt install gcc报依赖错误
现象:执行sudo apt install gcc提示依赖错误,比如lib6-dev: depends: libc6 (= 2.31-0ubuntu9.7),但已安装的版本不同。原因:软件源里不同仓库的版本不同步,最常见的是 PPA 源和官方源混用导致依赖关系错乱。解决:先sudo apt update,再执行sudo apt --fix-broken install:
sudo apt --fix-broken install sudo apt dist-upgrade--fix-broken会修复损坏的依赖关系——它会自动安装缺失的依赖包或降级冲突的包。dist-upgrade会把内核和基础库一并升级到当前源里最匹配的状态。如果还不行,检查/etc/apt/sources.list里是否混用了不同发行版(比如 focal 和 jammy 的源混在一起),把非 focal 的源注释掉。
5.3 USB 设备报错usbfs: 缓冲大小或 USB 设备频繁掉线
现象:插入 USB3.0 设备后,dmesg里出现usbfs: process X (app) did not claim interface,或者大文件传输时设备断开重连。原因:USB 控制器默认的缓冲区或电源管理策略在部分主板上有兼容问题。解决:修改 GRUB 启动参数,在/etc/default/grub的GRUB_CMDLINE_LINUX_DEFAULT里加入usbcore.usbfs_memory_mb=1000:
sudo sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"/' /etc/default/grub sudo update-grub sudo rebootusbcore.usbfs_memory_mb=1000将 USB 文件系统可用缓冲提升到 1000MB,解决大批量数据传输时缓冲区不足的问题。频繁掉线则可以在 BIOS 里关闭 USB 节能(ErP 相关设置)试试。update-grub必须执行,否则修改不会生效。
5.4 软件源更新后出现 404 或 Hash Sum Mismatch
现象:apt update输出 404 报错,或者提示E: Failed to fetch ... Hash Sum mismatch。原因:镜像站同步延迟或本地缓存了旧的索引文件。解决:删除缓存的索引并清掉过期的包列表:
sudo rm -rf /var/lib/apt/lists/* sudo apt update如果是 404,多半是镜像站某个组件还没同步,等半小时再试,或者临时切换镜像站。Hash Sum mismatch 则清lists目录基本能解决。顺便一提:不要同时启用多个镜像站的源,sources.list里同一个组件只能有一行源,重复会触发奇怪的依赖解析问题。
5.5 双系统时间相差 8 小时
现象:Ubuntu 和 Windows 切换后,系统时间总差 8 小时。原因:Windows 认为 BIOS 时间是本地时间,Linux 认为 BIOS 时间是 UTC 时间,两个系统的时钟解释不一致。解决:让 Ubuntu 把硬件时钟当本地时间用:
sudo timedatectl set-local-rtc 1timedatectl set-local-rtc 1会告诉系统 RTC 存储的是本地时间。执行后timedatectl输出里RTC in local TZ: yes表示生效。这个只对双系统适用,单系统 Ubuntu 保持 UTC 反而是推荐的。另一条路是改 Windows 注册表让它用 UTC,但操作更繁琐还容易引起其他问题。
6. 初始化配置的后悔药:Timeshift 快照备份与一把梭的验证清单
初始化配置做完,最后一件事是给系统拍一张快照。Timeshift 是 Linux 生态里最成熟的系统快照工具,类似 Windows 的还原点。20.04 里安装和配置很简单:
sudo apt install timeshift sudo timeshift --create --comments "after-init" --tags D--create创建快照,--comments写备注,--tags D指定类型为 daily——Timeshift 内部按类型管理快照,D 代表日常备份。创建完成后sudo timeshift --list可以看到快照列表。快照默认存在/run/timeshift/backup,如果系统盘是单独分区,建议在挂载 /home 的大分区上留一块空间给快照,否则系统分区满了之后快照创建会失败。
回滚操作同样一条命令:
sudo timeshift --restore --snapshot '2024-06-01_12-00-00'回滚会重建 GRUB 并恢复系统文件,用户名和家目录数据不动。这个工具我建议所有做开发的人装一个——有一次我配置 Docker 时误删了/etc/docker目录,服务全挂,用快照三分钟恢复到可用状态,省了一晚上的排查时间。
最后把我初始化配置的检查思路给你做个清单,每步一条命令:
sudo apt update && sudo apt upgrade -y # 软件源与补丁 systemctl status ssh --no-pager # SSH 服务运行状态 fcitx5-status # 中文输入法状态 nvidia-smi # 显卡驱动状态 python3.11 --version && node -v && git --version # 开发环境版本逐个跑一遍,每一条都有输出且无报错,你的 Ubuntu 20.04 LTS 初始化就算真正落地了。做系统管理这些年我学到的最大教训就是:所有配置都要留后悔药——源备份、GRUB 备份、快照备份,一个都不能省。环境越复杂、越接近生产,这个习惯越值钱。希望帮到你。
本文还有配套的精品资源,点击获取