Ubuntu 20.04双系统安装与配置全指南:从分区到优化 📅 2026/8/14 10:35:10 1. 项目概述为什么我们需要双系统与Ubuntu 20.04如果你是一名开发者、学生或者对Linux世界充满好奇的探索者那么“Windows Ubuntu”双系统几乎是绕不开的经典组合。我自己的主力机就是这套配置Windows用来处理日常办公、娱乐和部分专业软件而Ubuntu则是我进行开发、学习、折腾的“实验田”。这次重装Ubuntu 20.04源于一次内核升级导致的NVIDIA驱动“翻车”系统直接卡在登录界面。这让我下定决心不仅要重装还要把整个过程和后续的基础配置梳理成一份清晰的指南。Ubuntu 20.04 LTS长期支持版本是一个特别稳定的选择。尽管24.04已经发布但20.04拥有长达五年的官方支持直到2025年4月其软件生态成熟社区资料极其丰富对于新手和追求稳定的用户来说依然是黄金标准。这次重装不仅仅是恢复一个系统更是对分区规划、引导修复、基础环境搭建的一次系统性复盘。整个过程涉及从制作启动盘、安全分区、处理棘手的引导问题到安装后必须做的驱动、源、基础工具配置等一系列操作。我会把每一步的原理、踩过的坑以及最优解都分享出来目标是让你看完后能独立、自信地完成一次干净利落的双系统部署。2. 重装前的核心准备与风险规避重装系统尤其是涉及双系统最忌讳的就是“莽”。一步操作失误可能导致数据丢失甚至另一个系统无法启动。因此准备工作的重要性占整个过程的50%。2.1 数据备份与启动盘制作数据备份是老生常谈但必须放在第一位。你需要备份的不仅仅是Ubuntu分区里的/home目录你的个人文件更重要的是导出应用程序列表和已安装的软件包信息。在终端里执行dpkg --get-selections installed-packages.list这个文件能让你在新系统快速恢复软件环境。接下来是制作启动盘。工具我推荐Ventoy它彻底改变了游戏规则。传统工具如Rufus或Etcher每次只能烧录一个ISO而Ventoy允许你直接将ISO文件拷贝到U盘里启动时会出现一个菜单让你选择要引导哪个系统。这意味着你只需要准备一个8GB以上的U盘把Ubuntu 20.04、Windows安装镜像、甚至PE工具都扔进去一劳永逸。下载Ventoy后在Windows或Linux下运行选择你的U盘设备务必确认无误点击安装即可。完成后只需把下载好的ubuntu-20.04.6-desktop-amd64.iso镜像文件直接复制到U盘的第一个分区里。注意使用Ventoy时确保你的电脑主板支持UEFI启动模式这是现代电脑的标准。在BIOS设置中关闭“安全启动”Secure Boot通常能避免很多不必要的兼容性问题虽然Ubuntu 20.04官方支持安全启动但关闭它能让过程更顺畅。2.2 磁盘分区规划与策略这是双系统的核心也是新手最容易困惑的地方。你需要理解几个概念在UEFI模式下会有一个独立的EFI系统分区ESP它存放所有操作系统的引导文件。Windows和Ubuntu会共享这个分区通常100-500MB就够了Windows安装时已创建。对于Ubuntu我们至少需要两个分区/根分区 用于安装系统和软件。建议大小在30GB到50GB之间。如果你打算安装很多大型软件如MATLAB、Android Studio可以给到80-100GB。文件系统选择ext4这是Linux最主流、最稳定的选择。/home家目录分区 用于存放你的个人配置文件、文档、下载内容等。这是你数据的核心重装系统时可以保留此分区不被格式化从而实现数据和配置的延续。大小取决于你的需求剩余空间都可以给它。文件系统同样选择ext4。一个可选的、但非常推荐的分区是swap交换分区。它的作用类似于Windows的虚拟内存。对于内存小于8GB的电脑建议设置大小为物理内存的1.5到2倍。对于16GB或更大内存的电脑如果你不进行休眠Hibernate操作交换分区可以设置得较小2-4GB甚至使用交换文件swapfile来替代更灵活。操作上你需要在Windows的“磁盘管理”中从一个已有分区通常是数据盘的尾部“压缩卷”腾出一块未分配空间给Ubuntu使用。记住这个空间的大小它将是Ubuntu的“地盘”。2.3 处理潜在的引导冲突这是双系统安装后最经典的“坑”Windows更新后Ubuntu引导项消失了。其根本原因是Windows的引导管理器有时会覆盖掉GRUBUbuntu的引导程序。为了避免这个问题我们有一个预防性策略在安装Ubuntu时将GRUB引导程序安装到Ubuntu根分区所在的磁盘而不是默认的整个磁盘如/dev/sda。例如如果你的Ubuntu安装在/dev/sda3根分区和/dev/sda4/home分区那么你应该把GRUB安装到/dev/sda这个磁盘设备上。这样GRUB和Windows引导管理器是并列关系。即使Windows覆盖了主引导记录我们也可以通过BIOS的启动菜单开机按F12等键临时选择从/dev/sda启动从而进入GRUB再修复引导。这是一个非常重要的安全边界思维。3. 逐步实操从安装到首次登录准备工作就绪后我们就可以开始正式的安装过程了。请确保电脑连接电源避免安装中途断电。3.1 BIOS设置与启动安装程序将制作好的Ventoy U盘插入电脑重启。在开机自检画面出现时快速按下你的电脑品牌对应的启动菜单键常见的有F12、F2、Esc、Delete。在启动菜单中选择你的U盘设备注意要选择带有“UEFI: [你的U盘品牌]”前缀的选项这确保了以UEFI模式启动。成功启动后你会进入Ventoy菜单选择Ubuntu 20.04的ISO文件。稍等片刻会进入Ubuntu的Live CD试用桌面。这里你可以先测试无线网卡、声卡等硬件是否工作正常。桌面上有一个“安装Ubuntu 20.04 LTS”的图标双击它。在安装类型页面这是最关键的一步。不要选择“安装Ubuntu与Windows Boot Manager共存”这个看似简单的选项。虽然它有时能工作但一旦出问题修复起来更麻烦。我们应该选择“其他选项”以便手动进行分区。3.2 手动分区详细步骤进入手动分区界面后你会看到所有磁盘和分区。找到你之前在Windows中压缩出来的“空闲”空间。创建根分区/ 选中“空闲”空间点击“”按钮。大小输入你计划的大小例如50000代表50GB。新分区的类型主分区对于UEFI逻辑分区和主分区区别不大但根分区通常用主分区。新分区的位置空间起始位置。用于Ext4日志文件系统。挂载点选择/。点击“确定”。创建交换分区swap 再次选中剩余的空闲空间点击“”。大小例如81928GB假设你物理内存是8GB。类型逻辑分区。位置空间起始位置。用于交换空间。无需挂载点点击“确定”。创建家目录分区/home 选中最后剩余的空闲空间点击“”。大小使用全部剩余空间可以直接输入最大值或不动。类型逻辑分区。位置空间起始位置。用于Ext4日志文件系统。挂载点选择/home。点击“确定”。至关重要的引导器安装位置 在分区界面下方有一个“安装启动引导器的设备”下拉菜单。不要选择默认的/dev/sda整个磁盘。根据我们之前的策略这里应该选择你刚才创建的根分区所在的物理磁盘例如/dev/sda注意是磁盘sda不是分区sda1。这样GRUB就会被安装到这个磁盘的引导扇区与Windows的引导管理器隔离。检查分区表无误后点击“现在安装”。系统会提示你将改动写入磁盘确认后分区操作就开始了。3.3 区域设置与用户创建分区完成后安装程序会进入常规设置。时区在地图上点击上海或输入Asia/Shanghai。键盘布局默认的“Chinese”即可。用户信息设置你的用户名、计算机名和密码。这里有个小技巧计算机名尽量简单不要有空格和特殊字符以后在终端和网络中显示会更清晰。密码建议设置一个你能记住的强密码。之后就是文件复制和系统安装过程大约需要15-30分钟取决于你的U盘和硬盘速度。安装完成后会提示你重启。此时一定要先拔掉U盘然后点击“现在重启”。4. 安装后的首要配置与优化重启后你应该能看到GRUB引导菜单同时列出了Ubuntu和Windows的启动项。选择Ubuntu进入系统。首次进入桌面后先别急着兴奋有几件必须马上做的事情。4.1 更换国内软件源以加速系统自带的软件源服务器在国外更新和安装软件速度极慢。更换为国内镜像源是提升体验的第一步。备份原列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源列表sudo gedit /etc/apt/sources.list如果你用的是其他编辑器如nano替换gedit即可。将文件内容全部删除替换为阿里云的源以下为Ubuntu 20.04配置deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse注意focal是Ubuntu 20.04的代号其他版本需要替换如22.04是jammy。保存文件并退出编辑器。更新软件包列表sudo apt update。这个命令会从新的源获取软件包信息速度会快很多。升级已安装的软件包sudo apt upgrade。这会安装所有可用的更新。4.2 显卡驱动安装以NVIDIA为例如果你使用的是NVIDIA独立显卡并且遇到了桌面卡顿、分辨率不对或者想用CUDA进行开发那么安装专有驱动是必须的。首先添加显卡驱动PPA仓库这里包含了较新的驱动版本sudo add-apt-repository ppa:graphics-drivers/ppa更新软件列表sudo apt update查看推荐的驱动版本ubuntu-drivers devices。这个命令会列出所有可用的驱动并标出一个推荐版本通常是带recommended字样的。安装推荐驱动sudo apt install nvidia-driver-XXX将XXX替换为推荐版本号例如nvidia-driver-535。重启电脑sudo reboot重启后在“软件和更新”的“附加驱动”选项卡里应该能看到你安装的驱动已被选中并使用。你也可以在终端输入nvidia-smi来验证驱动是否正常工作这个命令会显示显卡信息和运行中的CUDA进程。实操心得对于较新的硬件如RTX 40系列Ubuntu 20.04官方仓库的驱动可能版本较旧。这时PPA仓库就非常有用。但如果追求极致的稳定使用ubuntu-drivers autoinstall命令安装系统检测到的最稳定版本也是不错的选择。4.3 基础开发环境搭建一个干净的开发环境是生产力的起点。我会安装以下核心工具套件构建工具链sudo apt install build-essential。这个元包包含了gcc, g, make等编译C/C程序必不可少的工具。Git版本控制sudo apt install git。安装后记得配置全局用户信息git config --global user.name Your Name git config --global user.email your.emailexample.comPython3及pipUbuntu 20.04默认安装了Python 3.8。我们需要安装pip和管理工具sudo apt install python3-pip python3-venv。我强烈建议**永远不要使用sudo pip install**来安装全局Python包这会导致系统Python环境混乱。对于项目始终使用虚拟环境python3 -m venv my_project_env source my_project_env/bin/activate。SSH服务sudo apt install openssh-server。安装后可以通过sudo systemctl status ssh查看服务状态。这能让你从其他电脑远程连接到这台Ubuntu。网络工具sudo apt install net-tools包含ifconfig等传统命令和iputils-ping。5. 系统美化与效率工具配置一个顺眼的桌面和高效的工具能极大提升使用体验。Ubuntu 20.04默认的GNOME桌面已经很不错但我们可以让它更好。5.1 GNOME扩展与主题GNOME的强大之处在于其丰富的扩展Extensions。首先需要安装浏览器插件和本地连接工具sudo apt install chrome-gnome-shell然后访问 extensions.gnome.org 你可以像安装浏览器插件一样安装GNOME扩展。我必装的几个扩展Dash to Dock 将左侧Dash栏变成一个可自定义的Dock类似macOS。Arc Menu 提供一个更强大、可分类的应用程序菜单替代顶栏左上角的“活动”。User Themes 允许你使用通过~/.themes目录安装的Shell主题。Clipboard Indicator 在顶栏添加一个剪贴板历史管理器非常实用。主题和图标可以去 gnome-look.org 下载。下载后将主题包解压到~/.themes图标包解压到~/.icons如果目录不存在就创建。然后使用GNOME Tweaks工具通过sudo apt install gnome-tweaks安装来切换主题和图标。5.2 终端与Shell优化终端是Linux用户的“主战场”。默认的终端已经够用但Zsh加上Oh My Zsh能带来质的飞跃。安装Zshsudo apt install zsh将Zsh设置为默认Shellchsh -s $(which zsh)然后注销重新登录。安装Oh My Zsh一个管理Zsh配置的框架sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)安装一款喜欢的主题比如流行的agnoster或更简洁的bira。编辑~/.zshrc文件找到ZSH_THEME行进行修改。安装强大的语法高亮和自动补全插件# 语法高亮 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting # 自动补全 git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions然后在~/.zshrc的plugins(...)中添加这两个插件名例如plugins(git zsh-syntax-highlighting zsh-autosuggestions)。让配置生效source ~/.zshrc。现在你的终端拥有了彩色高亮、智能提示和历史命令补全效率倍增。6. 双系统引导的维护与故障修复即使安装时小心翼翼双系统的引导也可能在未来出现问题最常见的就是Windows更新后开机直接进入Windows看不到GRUB菜单。6.1 修复GRUB引导如果你还能从BIOS启动菜单选择Ubuntu所在的磁盘启动并进入系统那么修复很简单。在Ubuntu终端执行sudo update-grub这个命令会重新探测系统内所有可引导的操作系统并更新GRUB配置。重启后通常就能看到Windows的启动项了。如果情况更严重无法进入任何系统你需要一个Ubuntu Live USB就是我们安装用的那个。用U盘启动进入“试用Ubuntu”模式打开终端按顺序执行以下命令查找你的Ubuntu根分区安装在哪个设备上sudo fdisk -l。通常是一个较大的ext4分区比如/dev/sda3。将该分区挂载到当前系统sudo mount /dev/sda3 /mnt假设sda3是根分区。挂载其他必要的虚拟文件系统这对于chroot环境至关重要sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys切换到根分区环境sudo chroot /mnt现在你“进入”了损坏的Ubuntu系统重新安装并配置GRUB对于UEFI系统首先确保EFI分区被正确识别并挂载假设EFI分区是/dev/sda1mount /dev/sda1 /boot/efi重新安装GRUB到EFI系统grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idUbuntu更新GRUB配置update-grub退出chroot环境并重启exit sudo umount -R /mnt sudo reboot6.2 调整默认启动项与等待时间进入Ubuntu系统后你可以方便地调整GRUB。修改默认启动项 编辑GRUB配置文件sudo gedit /etc/default/grub。找到GRUB_DEFAULT这一行。它的值可以是数字序号从0开始计数对应GRUB菜单项也可以是保存的菜单项名称。更简单的方法是使用saved模式设置为GRUB_DEFAULTsaved并取消注释GRUB_SAVEDEFAULTtrue。这样每次启动时选择的系统下次就会成为默认项。修改等待时间 修改GRUB_TIMEOUT的值单位是秒。例如设为5。使修改生效 每次修改/etc/default/grub后都必须运行sudo update-grub来重新生成配置文件。7. 进阶配置与性能调优系统稳定运行后我们可以进行一些进阶设置让它更贴合个人使用习惯并提升性能。7.1 交换空间优化从交换分区到交换文件如果你安装时没有创建交换分区或者觉得分区方式不够灵活使用交换文件swapfile是更好的选择。它不依赖固定分区可以随时调整大小。创建一个指定大小的空文件作为交换文件例如8GBsudo fallocate -l 8G /swapfile # 如果fallocate失败可以用dd命令sudo dd if/dev/zero of/swapfile bs1M count8192设置正确的权限sudo chmod 600 /swapfile将其格式化为交换空间sudo mkswap /swapfile启用交换文件sudo swapon /swapfile为了开机自动挂载编辑/etc/fstab文件在末尾添加一行/swapfile none swap sw 0 0调整交换性swappiness。这个值0-100决定了系统有多积极使用交换空间。值越低系统越倾向于使用物理内存。对于拥有大内存16GB的桌面系统可以设低一些以减少不必要的磁盘IO。临时修改sudo sysctl vm.swappiness10。永久修改在/etc/sysctl.conf文件中添加vm.swappiness10。7.2 系统服务管理Ubuntu使用systemd作为初始化系统。了解如何管理服务开机自启动的程序很重要。sudo systemctl start service_name启动服务。sudo systemctl stop service_name停止服务。sudo systemctl restart service_name重启服务。sudo systemctl status service_name查看服务状态。sudo systemctl enable service_name设置服务开机自启。sudo systemctl disable service_name禁止服务开机自启。sudo systemctl is-enabled service_name检查服务是否启用。例如如果你安装了Docker不希望它开机自启可以运行sudo systemctl disable docker。这能帮你优化开机速度。7.3 磁盘清理与日志管理系统运行一段时间后会产生一些缓存和旧内核文件可以安全清理。清理APT缓存sudo apt autoremove删除自动安装且不再需要的包和sudo apt clean删除所有已下载的.deb包缓存。清理旧内核sudo apt autoremove --purge通常会清理旧内核。你也可以使用dpkg --list | grep linux-image查看已安装的内核手动卸载不需要的版本。管理日志系统日志位于/var/log/可以使用journalctl命令查看和管理。例如journalctl --disk-usage查看日志占用的磁盘空间sudo journalctl --vacuum-time2weeks可以清理两周前的日志。8. 常见问题与排查技巧实录即使按照指南操作你也可能遇到一些独特的问题。这里记录了几个我亲自遇到过并有解决方案的典型场景。8.1 安装过程中卡在某个百分比不动这通常发生在“正在探测文件系统...”或“正在复制文件...”阶段。可能原因1U盘质量问题或写入错误。解决方案重新用Ventoy制作启动盘或者换一个质量好的U盘。制作完成后可以用Ventoy提供的“校验”功能检查ISO文件的完整性。可能原因2下载的ISO镜像文件损坏。解决方案重新从Ubuntu官网或国内镜像站下载并比对SHA256校验和。可能原因3安装时连接了不稳定的网络。解决方案在Live CD桌面尝试断开Wi-Fi或者在有线网络环境下安装。安装程序有时会在后台尝试获取语言包或更新。应急处理如果卡住超过30分钟可以尝试强制重启长按电源键并重新开始安装。在分区那一步不要再次格式化你的/home分区如果之前有只格式化/分区这样可以保留个人数据。8.2 安装完成后没有Wi-Fi选项或无法连接这是Ubuntu对较新无线网卡支持不佳的经典问题。首先检查驱动打开“软件和更新” - “附加驱动”看看是否有可用的专有Wi-Fi驱动。如果有安装并重启。使用有线网络安装驱动如果“附加驱动”里没有或者你根本没有Wi-Fi适配器选项最可靠的方法是先用网线连接路由器让系统在线更新并安装驱动。sudo apt update sudo apt install linux-generic-hwe-20.04这个hweHardware Enablement内核包含了更新的硬件支持安装后重启很多新网卡就能被识别。手动安装驱动高级如果上述方法无效你需要确定你的无线网卡型号可以通过lspci | grep -i network或lsusb查看然后去芯片厂商如Intel、Realtek官网或GitHub寻找Linux驱动按照README编译安装。这个过程相对复杂但通常是解决冷门硬件的唯一途径。8.3 双系统时间不一致这是一个经典问题进入Windows后时间快了8小时回到Ubuntu时间又正常了。原因是两个系统对硬件时钟RTC的解读方式不同Windows将硬件时钟视为本地时间而Linux默认将其视为UTC协调世界时然后根据时区转换。解决方案推荐在Linux下修改让Ubuntu也使用“本地时间”。编辑配置文件sudo timedatectl set-local-rtc 1 --adjust-system-clock或者手动编辑sudo gedit /etc/adjtime将第三行的UTC改为LOCAL。解决方案在Windows下修改让Windows使用UTC时间。以管理员身份打开Windows PowerShell或命令提示符执行Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1两种方法任选其一即可解决。8.4 在Ubuntu中访问Windows的NTFS分区双系统下经常需要互相访问文件。Ubuntu可以很好地读写NTFS分区Windows的数据盘。安装必要的工具sudo apt install ntfs-3g通常默认已安装。系统启动后Windows的NTFS分区通常会自动挂载在/media/你的用户名/目录下你可以直接访问。如果遇到无法写入的情况可能是因为Windows的“快速启动”功能导致分区处于休眠状态。彻底解决这个问题的方法是进入Windows关闭“快速启动”控制面板 - 电源选项 - 选择电源按钮的功能 - 更改当前不可用的设置 - 取消勾选“启用快速启动”。关闭后在Windows中正常关机不是重启再进入Ubuntu就可以正常读写NTFS分区了。经过以上八个步骤的系统性配置你的Ubuntu 20.04双系统环境应该已经非常稳定、高效且符合个人使用习惯了。这套组合能让你在享受Windows生态便利的同时无缝切入Linux的强大开发与学习环境。记住Linux的魅力在于探索和定制不要害怕在理解原理的基础上尝试新的配置和工具每一次解决问题的过程都是宝贵的经验积累。