
1. 项目概述为什么Ubuntu 20.04依然是当下的明智之选如果你正在考虑踏入Linux世界或者需要为开发、学习搭建一个稳定可靠的系统环境Ubuntu 20.04 LTSFocal Fossa绝对是一个绕不开的经典选择。尽管更新的版本已经发布但作为一个长期支持版本它拥有长达五年的官方维护周期这意味着直到2025年4月你都能获得稳定的安全更新和关键修复。这种“稳”的特性对于开发者、服务器管理员甚至是希望桌面系统“不折腾”的普通用户来说价值巨大。我身边很多做嵌入式开发、机器人ROS和机器学习的同事项目环境依然首选20.04就是因为其软件生态成熟社区资料丰富踩过的坑基本都有现成的解决方案。最近网络上关于“Ubuntu20.04适配6.8内核吗”的讨论很热这恰恰反映了用户的需求在保持稳定系统基础的同时渴望获得对新硬件比如最新的RTX 40/50系列显卡更好的支持。答案是肯定的通过安装主线内核或使用HWE硬件启用堆栈更新完全可以在20.04上使用更新的内核。这就像给一栋坚固的老房子升级了最新的水电和智能系统既保留了结构稳定又享受了现代便利。所以无论你是想在实体机上安装双系统还是在VMware、VirtualBox等虚拟机里体验亦或是通过WSL在Windows下获得一个Linux子系统掌握Ubuntu 20.04的安装都是一项极具价值的基础技能。接下来我将以一个老手的视角带你走一遍从准备到配置完成的完整流程并分享那些官方手册里不会写的细节和避坑指南。2. 安装前的核心准备与规划安装系统就像一次旅行充分的准备能让你避开路上大多数的麻烦。这一步常常被新手忽略但却是决定安装过程顺利与否的关键。2.1 镜像下载与校验获取正确的“地图”首先你需要从Ubuntu官方网站下载Ubuntu 20.04.6 LTS的桌面版ISO镜像。我强烈建议你直接访问官方的releases.ubuntu.com站点而不是通过第三方下载站。官方的镜像不仅是最纯净的也确保了下载渠道的安全。下载完成后务必进行校验。在Windows下你可以使用如certutil这样的命令行工具计算SHA256值并与官网公布的校验和进行比对。在Linux或macOS下使用sha256sum命令更为方便。# 在Linux/macOS终端中进入ISO文件所在目录执行 sha256sum ubuntu-20.04.6-desktop-amd64.iso比对无误后再进行下一步。这个习惯能杜绝因镜像文件损坏或篡改导致的安装失败、系统不稳定等诡异问题。我看到过有人因为用了来路不明的镜像安装后出现软件源错误、甚至被植入后门的情况从源头把关至关重要。2.2 启动介质制作选择你的“交通工具”有了ISO镜像你需要将它“刻录”到一个U盘至少8GB容量上制作成可启动的安装盘。在Windows下Rufus是首选工具在macOS和Linux下Etcher或系统自带的dd命令都很不错。使用Rufus时有几个关键选项需要注意在“引导类型选择”处确保选中你下载的ISO文件。“分区类型”通常选择“GPT”这是为较新的UEFI启动模式准备的如果你的电脑是比较老的BIOS启动则选择“MBR”。目标系统类型选择“UEFI非CSM”。如果你不确定自己的电脑是UEFI还是传统BIOS可以在开机时按F2、F12或Del键进入主板设置查看。制作过程会清空U盘所有数据请提前备份。注意尽量避免使用那些号称“一键制作启动盘”的国产杂牌工具它们有时会修改启动引导或加入捆绑软件。Rufus和Etcher是开源且久经考验的选择。2.3 硬件与分区规划规划你的“领地”在启动安装之前最好对目标机器的硬件有个基本了解特别是显卡和无线网卡型号。例如如果你使用的是NVIDIA显卡在安装过程中可能会遇到图形界面问题这时我们需要知道如何进入“安全图形模式”或使用nomodeset参数。对于“ubuntu20.04安装后没有wifi”这类常见问题其根源往往是较新的无线网卡需要额外的非开源驱动。你可以在安装前用另一台电脑根据你的网卡型号如Intel AX200, Realtek 8852BE等提前搜索好解决方案通常涉及安装linux-firmware更新包或特定驱动。对于分区方案如果你是安装双系统务必先在Windows的“磁盘管理”中压缩出一个未分配的空白空间建议至少50GB而不是直接在Ubuntu安装程序里删除Windows分区。在虚拟机中安装则简单得多直接创建一个新的虚拟磁盘即可。对于单系统安装我推荐以下分区方案兼顾了简单与合理EFI系统分区如果采用UEFI启动需要这个分区。大小300MB-500MB格式化为FAT32。这是系统启动的引导所在。交换空间swap物理内存小于8GB时建议设置为内存大小的1.5-2倍内存大于16GB交换空间可以设置得小一些如4GB甚至不设但某些休眠功能需要。它的作用是在物理内存不足时充当临时缓存。根分区/用于安装系统和软件。这是必须的。单系统建议分配50GB以上如果空间充裕100GB或更多会让你后续更从容。家目录分区/home强烈建议单独分区。这里存放你的个人文档、配置文件和下载内容。即使未来重装系统只要不格式化这个分区你的个人数据和大部分软件设置都能保留。可以将剩余的大部分空间分配给它。3. 逐步详解安装过程与关键配置现在我们将U盘插入电脑重启并从U盘启动进入Ubuntu安装程序界面。这个过程看似图形化点击但每一步都有门道。3.1 启动与试用首次接触系统环境成功从U盘启动后你会看到GRUB引导菜单。直接回车会选择“Try Ubuntu without installing”即进入Live CD模式选择“Install Ubuntu”则直接开始安装。我强烈建议先进入“Try Ubuntu”模式。这样做有几个好处第一你可以确认系统是否能正确识别你的硬件特别是显卡、声卡、网卡包括有线无线和触摸板。如果在这个模式下Wi-Fi就能用那安装后大概率也没问题。第二你可以利用这个完整的桌面环境提前查阅资料、打开浏览器搜索可能遇到的问题。第三你可以使用GParted等预装工具更直观地查看和调整磁盘分区特别是双系统情况下确认Windows的ESP分区和你的空白空间。在试用桌面你可以连上网络。Ubuntu 20.04安装器会自动检测网络连接并为后续安装下载语言包和更新这能让安装后的系统更“新鲜”。但如果你身处网络不佳的环境或者想追求最快的安装速度可以在开始安装时勾选“不连接Wi-Fi网络”并在后续步骤中取消“安装Ubuntu时下载更新”的选项待系统安装完成后再更新。3.2 安装类型选择决定系统的“安家”方式点击桌面上的“Install Ubuntu”图标正式启动安装程序。经过语言、键盘布局选择后会来到“安装类型”这个最关键也最容易出错的步骤。这里通常有四个选项清除整个磁盘并安装Ubuntu这会删除硬盘上所有数据仅用于单系统安装或全新空硬盘。安装Ubuntu与Windows Boot Manager共存安装程序会自动探测到已有的Windows系统并为你处理分区和引导。这是双系统新手最安全、最推荐的选择。它会自动调整分区并设置双启动菜单。手动分区高级选项。如果你有明确的分区规划如我们前面推荐的方案或者需要调整现有分区结构就选这个。双系统安装时你需要手动指定之前压缩出来的“空闲”空间进行分区。其他选项通常用于非常规场景。对于绝大多数双系统用户直接选择第二个选项“与Windows共存”是最省心的。安装程序会自动在空闲空间上创建根分区和交换空间并处理好引导。如果你想按照自己的规划创建/home分区那就必须选择“手动分区”。3.3 手动分区实操详解选择“手动分区”后你会看到磁盘分区列表。找到标有“空闲”字样的空间这就是你之前在Windows下压缩出来的部分。点击它然后点击下方的“”号来创建新分区。创建EFI系统分区如果你的电脑是UEFI启动且Windows已经创建了一个EFI分区通常显示为FAT32格式几百MB大小那么千万不要新建EFI分区也不要格式化现有的那个。你只需要确保后续的引导加载器安装位置指向这个已有的EFI分区通常是/dev/sda1或/dev/nvme0n1p1。如果是在全新的硬盘上安装则需要新建一个。大小300-500MB新分区的类型主分区对于GPT磁盘逻辑分区概念已弱化通常选主分区即可新分区的位置空间起始位置用于EFI系统分区创建交换空间大小根据你的内存决定例如8GB内存可设12-16GB。用于交换空间创建根分区大小至少50GB建议80-100GB。用于Ext4日志文件系统挂载点/创建家目录分区大小剩余的所有空间。用于Ext4日志文件系统挂载点/home分区创建完毕后在界面最下方有一个“安装启动引导器的设备”下拉菜单。这是关键中的关键对于UEFI双系统你必须选择那个已有的Windows EFI分区如/dev/sda1这样才能将Ubuntu的引导信息grub安装到同一个地方实现双启动。如果选错了比如选成了整个磁盘sda可能会导致Windows引导被覆盖。3.4 地域、用户与软件选择分区完成后后续步骤就比较直观了。选择你所在的时区通常地图上点击上海即可创建你的用户名、计算机名和密码。这里有个小技巧计算机名尽量简单不要用特殊字符和空格因为这会作为你网络主机名在后续一些网络服务和远程连接中用到。接下来是“选择要安装的软件”。默认选项是“正常安装”它会包含网页浏览器、办公套件、游戏和媒体工具。对于开发者我建议勾选“最小安装”它只安装一个干净的桌面和核心应用。这样系统更轻量启动更快你需要的开发工具如Python、Git、Docker等完全可以事后用apt命令精准安装避免安装一堆用不上的软件。另一个重要的复选框是“为图形或无线硬件安装第三方软件”务必勾选上。这会安装一些非开源的驱动和编解码器如NVIDIA显卡驱动、MP3播放支持、某些Wi-Fi网卡驱动能极大提高硬件兼容性和多媒体体验是解决很多硬件识别问题的第一步。4. 安装后的首要配置与优化当安装完成并重启拔掉U盘首次进入全新的Ubuntu 20.04桌面后工作才刚刚开始。一个“能用”的系统和一个“好用”的系统之间就差下面这些配置。4.1 驱动管理与硬件问题排查进入系统后首先打开“软件和更新”应用切换到“附加驱动”标签页。系统会自动扫描可用的专有驱动特别是显卡驱动。如果你使用的是NVIDIA显卡这里通常会列出多个版本的驱动如开源nouveau 专有470510525等。选择一个推荐版本通常是带“专有”和“已测试”字样的进行安装。安装完成后需要重启才能生效。这是解决桌面卡顿、屏幕分辨率不正确、无法使用CUDA进行深度学习计算的关键一步。对于“ubuntu20.04安装后没有wifi”的问题如果“附加驱动”里没有提供你的网卡驱动就需要手动处理。首先在终端用lspci | grep -i network或lshw -C network命令查看无线网卡的具体型号。然后根据型号去搜索解决方案。例如对于常见的Intel AX200/AX210网卡通常更新内核或安装更新的linux-firmware包即可。对于较新的Realtek网卡如RTL8852BE可能需要从GitHub下载源码手动编译驱动。这个过程稍显复杂但网上有非常详细的步骤指南。4.2 系统更新与软件源配置接下来打开终端CtrlAltT进行第一次系统更新。这个操作会更新软件包列表并升级所有已安装的软件到最新版本。sudo apt update sudo apt upgrade -y为了提高后续安装软件的速度可以考虑将软件源切换到国内的镜像站如阿里云、清华、中科大等。在“软件和更新”的“Ubuntu软件”标签页将“下载自”从“主服务器”改为中国的镜像服务器。在终端中这也可以通过直接编辑/etc/apt/sources.list文件来实现但图形化操作更安全。4.3 开发环境基础套件安装对于开发者接下来需要安装一系列基础工具。这些命令你可以一次性复制执行# 安装构建必备工具编译源码等需要 sudo apt install build-essential -y # 安装版本控制工具Git sudo apt install git -y git config --global user.name 你的名字 git config --global user.email 你的邮箱 # 安装Python3和包管理工具pipUbuntu 20.04默认已安装Python3.8 sudo apt install python3-pip -y # 将pip升级到最新版 pip3 install --upgrade pip # 安装Node.js和npm通过NodeSource仓库安装较新版本 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs # 安装Docker引擎 sudo apt install apt-transport-https ca-certificates curl software-properties-common -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu focal stable sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io -y # 将当前用户加入docker组避免每次使用sudo sudo usermod -aG docker $USER # 需要注销重新登录生效这些命令覆盖了热词中提到的git安装、python安装、npm安装、docker安装等需求为你搭建了一个坚实的开发基础平台。4.4 常用应用与效率工具安装系统自带的软件中心Ubuntu Software可以安装很多应用但有些专业软件或最新版本仍需通过其他方式。Visual Studio Code微软官方提供了.deb安装包直接下载后用sudo dpkg -i安装即可比用snap版本响应更快。PyCharm/IntelliJ IDEAJetBrains家的IDE建议从官网下载tar.gz压缩包解压后运行bin目录下的脚本。这样可以方便地管理多个版本也便于配置。MySQL/Redis对于数据库直接用apt安装是最简单的。sudo apt install mysql-server redis-server。安装后记得运行sudo mysql_secure_installation来加固MySQL。Anaconda如果你从事数据科学可以从清华镜像站下载Anaconda的.sh安装脚本运行后按照提示安装。它是一个独立的Python环境管理器与系统Python互不干扰。5. 高级配置与内核升级对于有特定需求的用户比如需要最新硬件支持或运行特定的科研软件可能需要对系统进行更深度的定制。5.1 应对新硬件升级内核至6.8针对热词“ubuntu20.04适配6.8内核吗”答案是肯定的。虽然Ubuntu 20.04 LTS默认搭载的是5.4内核但你可以通过安装linux-generic-hwe-20.04元包来升级到硬件启用堆栈HWE提供的新内核目前是5.15。但这还不够。要安装6.8这样的主线内核需要手动操作。一种相对安全的方法是使用Ubuntu主线内核PPA。但更推荐的方法是直接从kernel.ubuntu.com下载编译好的.deb包进行安装。具体步骤如下访问 https://kernel.ubuntu.com/~kernel-ppa/mainline/找到v6.8.x版本选择最新的稳定版如v6.8.12。根据你的架构通常是amd64下载四个deb文件linux-headers-*.deb,linux-headers-generic-*.deb,linux-image-unsigned-generic-*.deb,linux-modules-*.deb。在下载目录打开终端执行安装sudo dpkg -i *.deb安装完成后更新GRUB并重启sudo update-grub sudo reboot。重启后在GRUB菜单的“高级选项”里可以选择新内核启动。使用uname -r命令确认内核版本。注意手动安装新内核有一定风险可能导致硬件驱动不兼容尤其是NVIDIA驱动。建议在安装前先通过apt安装好对应新内核版本的NVIDIA驱动模块如sudo apt install linux-modules-nvidia-470-generic-hwe-20.04具体版本号需匹配。如果新内核启动失败可以在GRUB中回退到旧内核。5.2 解决特定软件依赖问题在安装一些特定软件时你可能会遇到类似“ubuntu20.04 opencv/cv.hpp: no such file or directory”的错误。这通常是开发环境配置问题意味着编译器找不到OpenCV的头文件。解决方法通常是安装OpenCV的开发包sudo apt install libopencv-dev -y对于其他类似的“No such file or directory”错误思路是一样的通过错误信息中的库名或头文件名使用apt search或apt-file search命令来查找并提供该文件的软件包然后安装对应的-dev开发包。5.3 双系统时间同步问题如果你安装了Windows和Ubuntu双系统可能会发现两个系统的时间总对不上。这是因为Windows默认将硬件时钟RTC视为本地时间而Linux则默认将其视为UTC时间。解决方法是在Ubuntu中调整# 将硬件时钟视为本地时间与Windows一致 timedatectl set-local-rtc 1 --adjust-system-clock或者你也可以在Windows注册表中修改让Windows使用UTC时间。两种方法任选其一即可。6. 常见问题排查与修复实录即使按照指南操作在实际安装中仍可能遇到各种问题。这里记录了几个最常见问题的排查思路。6.1 安装过程中卡死或黑屏这通常与显卡驱动有关尤其是在使用NVIDIA显卡时。在安装启动的GRUB菜单界面不要直接回车而是按e键进入编辑模式。找到以linux开头的那一行在行末在quiet splash后面添加以下内核参数之一然后按F10启动nomodeset最常用禁用内核级显卡模式设置使用基本显示驱动。nouveau.modeset0禁用NVIDIA的开源驱动nouveau。acpioff或noapic如果问题与电源管理或高级中断控制器有关。进入Live CD或安装完成后在首次重启前的安装引导器中同样可以编辑引导参数。进入系统后立即安装专有NVIDIA驱动之后就不再需要这些参数了。6.2 重启后无法进入系统直接进入GRUB救援模式这通常是因为GRUB引导加载器找不到它的配置文件或根分区。错误信息可能包含“unknown filesystem”或“no such device”。这可能是由于分区UUID变化或引导安装位置错误导致的。首先在GRUB救援模式下尝试使用ls命令列出所有磁盘分区找到你的Linux根分区通常是(hd0,gpt2)或(hd1,gpt3)这样的格式需要你根据大小判断。假设你找到根分区是(hd0,gpt2)且文件系统是ext4依次输入set root(hd0,gpt2) set prefix(hd0,gpt2)/boot/grub insmod normal normal如果幸运这会暂时进入系统。进入系统后打开终端重新安装并配置GRUB# 首先确认根分区设备名例如是/dev/sda2 sudo grub-install /dev/sda # 注意这里是磁盘sda不是分区sda2 sudo update-grub如果还是不行可能需要使用Ubuntu安装U盘启动进入“Try Ubuntu”模式然后挂载你的根分区和EFI分区如果有再chroot进去修复。6.3 声音问题与蓝牙问题“ubuntu20.04没有声音”是一个经典问题。首先检查系统音量是否被静音以及输出设备选择是否正确点击右上角声音图标。如果无效打开终端安装并运行pavucontrolPulseAudio音量控制这是一个更强大的音频控制面板可以检查每个应用程序的输出设备和音量。对于蓝牙无法打开或找不到设备首先用rfkill list命令检查蓝牙是否被硬件或软件开关禁用。如果被soft blocked可以用sudo rfkill unblock bluetooth解锁。然后重启蓝牙服务sudo systemctl restart bluetooth。如果问题依旧可能需要更新或安装蓝牙驱动包如sudo apt install bluez-firmware。6.4 软件安装与更新错误在安装软件时你可能会遇到“无法定位软件包”或“依赖关系问题”。首先确保软件源列表是最新的sudo apt update。如果问题依旧可能是软件源配置有误或缺少必要的PPA个人软件包存档。例如要安装较新版本的PHP或Docker就需要先添加官方的PPA仓库。操作前最好先搜索“Ubuntu 20.04 install [软件名]”来获取正确的安装命令。对于“E: 无法获得锁 /var/lib/dpkg/lock-frontend”这类错误表示有另一个apt进程正在运行可能是软件更新器在后台运行。等待它完成或者用sudo killall apt或sudo killall apt-get结束相关进程然后删除锁文件sudo rm /var/lib/dpkg/lock-frontend。7. 长期维护与备份策略系统安装配置好后保持其健康运行同样重要。定期更新系统是必须的你可以使用sudo apt update sudo apt upgrade或者设置无人值守更新。对于/home单独分区的用户你的个人数据已经有了天然的隔离。但我仍然建议对重要的配置文件如~/.bashrc,~/.ssh/, 各种软件的配置文件进行定期备份。可以使用简单的rsync命令同步到外部硬盘或云存储。对于开发环境考虑使用容器化技术如Docker或虚拟环境如Python的venv Node.js的nvm来隔离项目依赖避免污染系统环境。这样即使未来需要重装系统或迁移到新电脑你的项目环境也能快速重建。最后关于热词中“ubuntu20.04怎么升级到22.04”的问题虽然可以通过do-release-upgrade命令进行原地升级但我个人并不推荐对生产或主力开发环境这样做。LTS版本间的升级可能引入不可预见的兼容性问题尤其是当你安装了大量第三方软件和驱动后。更稳妥的做法是备份好/home目录和个人数据然后全新安装Ubuntu 22.04 LTS。对于追求稳定性的场景坚持使用20.04直到其支持周期结束往往是更省心、更专业的选择。