ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Ubuntu重装全指南:双系统分区、U盘制作与GRUB引导修复实战

2026/9/18 23:07:44 拓冰建站 浏览量
Ubuntu重装全指南:双系统分区、U盘制作与GRUB引导修复实战 1. 重装前想清楚你的Ubuntu到底是怎么“没”的Windows和Ubuntu双系统重装这件事表面上看起来就是“格式化重来一遍”但真动手的时候才会发现坑基本都在你看不见的地方。我这些年帮人修过无数次双系统也亲眼见过有人“只是重装了一下Ubuntu”结果Windows引导也没了、数据盘找不到了、U盘启动死活进不去……所以我想先把重装前的准备工作掰开揉碎讲清楚。1.1 常见几种需要重装的场景根据我收到的求助和实际接触的情况需要重装Ubuntu的频率最高的大概是这几种系统升级/依赖搞坏了比如升级到某个内核版本后开机黑屏或者apt装包时装坏了桌面环境。这种属于半坏状态能进终端但进不了桌面很多人直接选择重装。磁盘分区不够想扩容当时给/根分区只分了30G后来装Docker、CUDA、开发环境一下就爆了。这种其实可以直接用Live USB里的GParted调整但很多人嫌麻烦干脆重来。Windows和Ubuntu引导“互殴”在Windows下更新了系统或重装了Windows把GRUB覆盖了开机直接进WindowsUbuntu像消失了一样。这种严格来说不用重装修复引导即可但新手往往会误判为需要重装。想换Ubuntu版本比如从22.04升级到24.04或者从桌面版换到服务器版直接重装是最干净的方式。不同场景对应的操作策略差异很大。如果是引导坏了优先修复引导而不是重装如果只是根分区不够可以扩容如果系统核心已经乱了那重装确实是最省时省力的方案。我建议在动手之前先给自己定个位你是哪一种1.2 数据备份比系统更重要的事这话听起来像废话但我真的见过有人把/home和/挂在一起然后安装时选择了“格式化整个硬盘”结果照片、文档、代码全没了来找我的时候整个人都懵了。所以重装前至少要确认这几类数据的安全家目录数据/home/你的用户名下的桌面、下载、文档、代码仓库等优先备份到移动硬盘、NAS或网盘。数据库如果是用来学习或开发至少要把MySQL/PostgreSQL的导出文件备份出来如果有Docker卷也要单独备份。配置文件比如~/.ssh、~/.gitconfig、~/.bashrc、环境变量配置等别小看这些文件重配起来非常费劲。用一条命令打包是最快的tar czvf backup_home.tar.gz -C /home 你的用户名 --exclude缓存目录双系统注意点如果你现有Ubuntu和Windows共存重装时务必保留Windows分区不动只对Ubuntu所在分区做操作。备份这件事花半小时做的价值远高于事后找数据恢复公司花几千块。我自己的习惯是重装系统前至少双份备份一份本机移动硬盘一份云端缺一不可。1.3 确认启动方式和磁盘布局启动方式是UEFI还是Legacy传统BIOS在安装Ubuntu时直接决定了分区方案。你现在去Windows里按WinR输入msinfo32看“BIOS模式”一栏如果显示“UEFI”那么Ubuntu就应该以UEFI模式安装并创建一个EFI系统分区ESP通常是FAT32格式几百MB。如果是Legacy那引导程序就装到主分区或/boot分区。这一步很多人忽略结果安装时选了“与Windows共存”选项但引导方式不匹配装完发现要么进不了Windows要么进不了Ubuntu。另外我建议在Windows的磁盘管理里提前看一下当前分区情况记住哪些是Windows的恢复分区、EFI分区、系统分区哪些是可以腾给Ubuntu的空闲空间。这样进到Ubuntu安装界面时心里有数不会误删。2. 制作一个靠谱的Ubuntu安装U盘很多人以为随便下载个镜像刻录到U盘就能启动实际上启动盘制作不当是重装失败的重灾区。这里说的“不当”包括镜像没校验完整性、U盘文件系统不对、烧录工具选错导致UEFI识别不到启动项。2.1 镜像选择LTS还是普通版Ubuntu官方每两年出一个LTS版本如22.04、24.04支持周期有五年生产环境、新手入门都建议选LTS。非LTS版本虽然能提前体验新内核和新特性但升级频率很快隔半年就要折腾一次大版本升级对新手不友好对老手来说也容易影响开发环境稳定。下载镜像请认准官方渠道。打开ubuntu.com/download/desktop选择对应LTS版本。下载完记得核对SHA256校验值这个步骤看起来多余但从安全角度很有必要尤其是网络不稳定时下到损坏镜像装到一半报错会让人非常崩溃。2.2 制作启动盘Rufus/Ventoy/balenaEtcher制作启动盘的工具三选一即可我根据不同情况用过三种简单说下区别工具优点适合场景Rufus速度快选项丰富支持UEFI和Legacy引导Windows下最主流支持直接把ISO写入U盘还能顺便处理分区格式Ventoy免反复格式化直接把多个ISO拷进U盘开机选菜单手上镜像多、经常折腾不同发行版的人也适合做维护U盘balenaEtcher界面简单一键烧录跨平台macOS或Linux下操作方便Windows下也可用使用Rufus时如果主板比较新分区类型建议选GPT目标系统选UEFI非CSM如果机器比较老2015年前的机器较多可能需要选MBR和Legacy/BIOS。这里有个小技巧如果U盘做完之后电脑识别不到启动项一个常见原因就是分区类型和启动方式不匹配切换一下基本能解决。Ventoy我单独多说两句因为它现在几乎成了我的标配。它会把U盘格式化成特殊分区之后你只需要把Ubuntu镜像文件直接复制进去即可想装哪个版本就放哪个版本不占额外操作。而且Ventoy里的U盘剩余空间仍然可以用作普通存储盘。缺点是部分老电脑的BIOS对Ventoy的兼容性一般第一次启动会稍慢。2.3 U盘启动的BIOS设置细节开机按F2/Del/F10/F12进BIOS不同品牌键不同联想、戴尔通常是F12或F2微星、华硕是Del或F2建议开机时看屏幕提示然后做三件事关闭Secure Boot安全启动除非你确定当前镜像支持否则建议关掉否则很多显卡驱动和第三方内核模块无法加载。打开UEFI启动模式如果你的系统和硬盘都支持确保Boot Mode是UEFI。调整启动顺序把U盘启动项放在第一位或者用快捷键临时选择从U盘启动比如F12弹出Boot Menu。还有一点容易忽略有些U盘被识别成UEFI分区和Legacy分区两个启动项你需要根据实际引导模式分别尝试选错了会出现黑屏或卡在logo界面。遇到这种情况不是镜像坏了大概率是启动项选错了。3. 安装与分区实操启动到Ubuntu安装界面之后前面步骤都很简单选择语言、连接Wi-Fi、选择安装类型。关键的坑集中在分区和引导程序安装位置上。3.1 进入安装程序前先处理“Windows快速启动”Windows默认开启快速启动Fast Startup这个功能会让Windows关机时把内核会话保存到休眠文件里下次开机更快。但Linux无法正常挂载NTFS分区因为快速启动会让分区处于“被占用”状态。双系统下最典型的现象是在Windows下关机然后启动Ubuntu访问Windows分区时提示只读或无法挂载。建议在重装Ubuntu之前先在Windows里禁用快速启动。操作路径控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选“启用快速启动”。更彻底的做法是在管理员CMD里执行powercfg /h off这个命令会直接关闭休眠功能同时也把快速启动一起关掉双系统共存时最省心。3.2 手动分区还是自动分区安装类型界面会让你选择“清除整个磁盘并安装Ubuntu”或者“Something else手动分区”。如果你这块硬盘上只有Ubuntu没有Windows数据那么“清除整个磁盘”最快。但如果你处于Windows双系统环境或者想保留独立的数据分区就必须手动分区。手动分区时的推荐方案UEFI模式分区大小类型挂载点说明EFI系统分区512MB~1GBFAT32/boot/efi如果已有Windows的ESP可以共用不用再建swap分区内存大小或按需swap无内存大于16G可考虑用swapfile代替/根分区至少50G建议100Gext4/系统和所有软件安装位置/home分区剩余空间ext4/home用户数据独立重装系统不影响如果你不确定我给个基于经验的建议/根分区给80~120G/home给剩下所有空间swap先用文件或小分区顶着。以后即使系统重装/home数据还在心态会稳很多。有一点必须提醒如果硬盘上已经有一个Windows的EFI分区安装Ubuntu时不要再新建EFI分区直接把引导安装到同一个EFI分区即可。如果你手贱新建了一个轻则引导菜单在开机能用的机器上多一条重则和Windows的引导互相覆盖导致两个系统都进不去。3.3 引导程序安装位置最容易被忽略的坑安装Ubuntu时最后一步会问“Install boot loader to device”把引导程序装到哪个设备。很多人直接保持默认结果装完重启发现进不了Windows或者Windows进不了Ubuntu。正确做法是如果你使用UEFI模式引导程序应该安装到EFI系统分区上在手动分区时通常默认就是对的不需要刻意改。如果你用的是Legacy启动引导程序应该装到Linux根分区所在磁盘比如/dev/sda而不是某个分区/dev/sda1。我遇到过最奇葩的一次有人把引导程序装到了U盘上安装完拔掉U盘系统就进不去插上U盘才能进Ubuntu。原因就是安装时没注意引导设备选到了U盘。所以请大家一定留意这个选项。4. 双系统引导修复与Windows协同重装完成后很多人会立刻面对一个现实问题开机只看到Ubuntu的GRUB菜单里面有Ubuntu但没有Windows的选项或者反过来Windows正常进但Ubuntu没了。这些都是常见的引导协同问题。4.1 GRUB丢失了怎么办其实GRUB这个引导程序非常健壮只要EFI分区还在修复起来并不难。如果你重装后找不到Ubuntu启动项最常用的是用安装U盘进入“Try Ubuntu”试用环境然后执行引导修复。在试用环境终端里先确认硬盘分区结构sudo fdisk -l lsblk找到你的Ubuntu根分区比如/dev/nvme0n1p6和EFI分区通常几百MB类型FAT32。把根分区挂载好再chroot进去修复sudo mount /dev/nvme0n1p6 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit这样修复完GRUB会自动扫描到Windows的引导文件并在菜单里生成Windows Boot Manager选项。如果你的情况比较复杂也可以用另一个经典工具boot-repair在试用环境里执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair它会自动检测引导问题多数情况下点“Recommended repair”就能救回来。4.2 双系统时间错乱修复装完Ubuntu后重启进Windows你会发现自己电脑时间慢了8个小时。这其实不是电池问题而是两个系统对硬件时间RTC的解读方式不同Windows把CMOS时间当作本地时间Linux默认把CMOS时间当作UTC。解决方法是告诉Ubuntu把硬件时间当本地时间timedatectl set-local-rtc 1执行完在终端里确认一下时间再重启进Windows时间就一致了。我之前重装后忘了设置这个结果Windows和Ubuntu来回切换时间一直对不上每次都要手动同步非常恼火。这条命令算是双系统用户的“必备一条”。4.3 重装后Windows分区无法挂载/只读的解决办法不少人重装完Ubuntu之后想访问Windows的NTFS分区却发现打不开或者只能只读挂载。原因通常是Windows还开着快速启动或者上次Windows没有正常关机导致NTFS分区状态不干净。完全关闭Windows快速启动之后上文的powercfg /h off再回到Ubuntu里重新挂载NTFS分区即可。建议在Ubuntu里先执行一次sudo ntfsfix /dev/nvme0n1p3这里把/dev/nvme0n1p3换成你的Windows NTFS分区设备名。ntfsfix不会删除数据它只是重置文件系统的日志状态让NTFS分区可以安全挂载。但要注意如果Windows快速启动还开着下次你从Windows切换回Ubuntu一样会被锁。所以解法顺序是先在Windows彻底关闭快速启动再回Ubuntu处理挂载。4.4 不重装的替代方案WSL和虚拟机了解一下这里插一句题外话。我遇到有些人的需求其实是“需要在Windows环境下搞Linux开发环境”但并非真的想双系统。他们往往折腾到一半发现重装双系统太麻烦就问我要不要装虚拟机或者WSL。方案优点缺点适合场景双系统硬件直通、性能最强、支持GPU透传等切换系统需要重启磁盘管理稍复杂深度学习、嵌入式开发、长期使用Linux桌面WSL 2启动快、和Windows文件互通方便、不用分区GPU和IO性能不如原生部分内核模块受限后端开发、脚本测试、Docker学习VMware/VirtualBox快照强大、随便折腾不怕崩性能损耗明显GPU性能差不适合重度计算Linux入门、实验环境、测试各种发行版重装Ubuntu前先问自己是真的需要双系统还是WSL/虚拟机就够用了如果只是跑跑Python脚本、学学Linux命令WSL肯定更省事。如果你要训练深度学习模型、做嵌入式交叉编译、日常主力系统切到Linux那双系统仍然是最稳妥的选择。5. 重装后的基础配置和常见问题速查系统装好只是第一步接下来半小时的配置才决定你用得舒不舒服。这一节直接讲干货把我踩过的坑、网友踩过的坑一起整理出来。5.1 换源、更新、驱动一个都不能少Ubuntu默认的软件源在国外国内访问速度很慢重装后第一件事就是换成国内镜像源清华、阿里、中科大都可以。以清华源为例sudo sed -i s//.*archive.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo apt update sudo apt upgrade -y新版Ubuntu的sources.list可能在/etc/apt/sources.list.d/ubuntu.sources格式略有不同但原理一样把镜像地址替换成国内镜像即可。注意替换前最好备份原文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后是驱动问题。如果你有NVIDIA显卡装驱动之前先检查ubuntu-drivers devices这个命令会列出推荐安装的驱动版本。我一般直接执行自动安装sudo ubuntu-drivers autoinstall装完重启执行nvidia-smi能看到显卡信息就说明成功了。这里提醒一句不要从NVIDIA官网手动下载.run文件安装除非你非常清楚自己在做什么否则很容易和系统Graphics库冲突轻则循环登录重则进不去桌面。用系统源安装是最稳定的方案。如果你的用途是深度学习还需要装CUDA和cuDNN。建议使用官方提供的仓库方式安装管理起来比.run脚本方便得多。装完CUDA一定要配置环境变量否则会提示nvidia-smi正常但nvcc -V找不到命令。正确配置是export PATH/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda/lib64:$LD_LIBRARY_PATH为了永久生效可以把这两行加到~/.bashrc或/etc/profile.d/cuda.sh里。很多人环境变量配置错误导致编译找不到CUDA其实都是路径少写或多写了一级目录的问题。5.2 SSH无法连接的排查思路热词里出现了“ubuntu ssh无法连接”这是重装后非常典型的问题。Ubuntu桌面版默认不装OpenSSH服务所以即使你用ping能ping通IPssh也连不上。在Ubuntu里先安装sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl restart ssh然后从Windows侧测试打开PowerShell执行ssh 用户名Ubuntu的IP地址如果还是连不上按顺序检查Ubuntu的防火墙有没有放行22端口sudo ufw allow 22Ubuntu是否有IP地址ip addrWindows和Ubuntu是否在同一网段SSH服务是否运行systemctl status ssh我见过有人折腾半天最后发现是Ubuntu没联网IP是127.0.0.1这属于基础检查没到位。排查问题我建议“先本机后网络”顺序来先确定服务起来了再看监听端口再测防火墙最后测网络连通性。5.3 中文输入法配置别踩坑Ubuntu自带的中文输入法体验一般很多人会装搜狗输入法这也是热搜词里频繁出现的。但我要说现在Ubuntu 22.04/24.04上我用得最顺的是Fcitx 5搭配中州韵而不是搜狗。先装框架和中文输入模块sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5然后在系统设置里把输入法框架切换为Fcitx 5重启后按CtrlSpace就能切换中英文。如果你坚持用搜狗建议去搜狗官网下载对应Ubuntu版本的deb包装完重启确认fcitx进程在运行。我为什么要单独说这个因为很多人在中文输入法上浪费时间大多是框架没选对或者没有重启会话导致环境变量没生效。装完输入法后重启一下比折腾一堆配置都管用。5.4 开发环境里的高频坑重装完系统接下来就是装开发环境。我挑几个经常踩坑的点说一下。GCC编译失败最常见的原因是build-essential没装全。很多人直接运行gcc说有但编译时报缺少头文件就是因为缺了build-essential组件包sudo apt install build-essentialCMake版本老。Ubuntu自带的CMake版本往往偏旧如果CMake要求指定最低版本或者遇到编译错误提示“CMake 3.16 or higher is required”可以先试sudo apt install cmake如果还是版本不够建议用pip安装最新CMakepip install cmake装完确认一下cmake --version很可能自动给你装到用户目录下版本就是最新的了。Docker的安装。很多人按照官网教程走半天装不上其实Ubuntu上用官方仓库还是apt直接安装两条路都可行。如果用apt安装仓库源的方式sudo apt update sudo apt install docker.io sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker $USER这个docker.io是Ubuntu仓库里的Docker打包版本胜在稳定、安装简单不用担心源的问题。官网的docker-ce版本更新快功能一样但需要额外添加GPG key。我个人的建议是普通使用直接用docker.io就够了毕竟重装系统场景下最需要的是“快速恢复到能干活的状态”。6. 重装过程中遇到过的一些典型故障记录这部分放一些我过去重装/帮人重装时遇到的问题整理成速查表形式方便你直接对照。故障现象可能原因解决动作U盘启动黑屏BIOS启动方式和U盘分区类型不匹配切换UEFI/Legacy模式或用Ventoy重新制作安装到一半报“安装引导程序失败”引导设备选错或EFI分区满了重新选EFI分区清理旧引导文件再执行grub-install和update-grub装完重启直接进WindowsGRUB被覆盖用Live USB修复引导参考第4.1节装完重启只有GRUB没有Windows选项update-grub没执行或Windows引导损坏进Ubuntu执行sudo update-grub若不行在Windows侧修复引导时间相差8小时Linux和Windows时间标准不一致执行timedatectl set-local-rtc 1NTFS分区无法写入Windows快速启动未关闭或分区不干净Windows里powercfg /h offUbuntu里ntfsfixSSH连不上未安装SSH服务安装openssh-server并启动中文输入法调不出来输入法框架不一致统一用Fcitx5或IBus重启会话NVIDIA驱动导致循环登录驱动安装方式错误清除现有驱动改用ubuntu-drivers autoinstall系统进入后没有声音声卡被HDMI输出占用alsamixer调整默认声卡或安装pavucontrol切换输出设备另外提醒一个少有人提的坑如果你的电脑有多块硬盘Ubuntu安装程序默认可能会把引导装到第一块盘的EFI分区而Windows在第二块盘上。这样会导致你拔掉第一块盘后两个系统都起不来。稳妥做法是安装时看准安装引导程序的磁盘确保和你的启动顺序逻辑一致。还有一个是笔电双显卡用户容易遇到的装上NVIDIA驱动后外接显示器没信号或者休眠唤醒后黑屏。这类问题通常需要调整电源管理参数。我实际测试有效的做法是编辑GRUB配置在内核参数里加上GRUB_CMDLINE_LINUX_DEFAULTquiet splash nvidia.NVreg_PreserveVideoMemoryAllocations1然后执行sudo update-grub并重启。这个参数是为了保存显存内容解决休眠唤醒后屏幕不亮的问题。如果你不需要休眠也可以忽略但如果遇到了知道有这个解法能省不少时间。还有一次我帮朋友重装他的Ubuntu是从旧版本直接升级上来的内部依赖一团乱麻干脆备份数据后全新安装。结果装完发现网卡驱动不识别无线网络打不开插网线也没反应。排查半天定位到是网卡固件缺失。解决办法是在另一个能上网的机器上下载对应网卡固件包拷贝到U盘里再手动安装。这类硬件固件问题在Ubuntu新版本里相对少见但老笔记本遇到概率不小。建议重装前先上网查一下自己型号的网卡和硬件在目标Ubuntu版本下的兼容性。说实话重装Ubuntu这件事难点从来不在“安装”本身而在于你对自己的电脑有多少了解对引导过程有多少控制力。很多人觉得它难是因为出了问题不知道从哪下手只知道重来。但只要理解了引导、分区、驱动这三条主线绝大多数故障都能定位到具体环节。我自己从第一次重装时瞎试到现在能十分钟处理完靠的也是这套思路。希望这篇内容能让你少走点弯路把重装变成一件心里有底的活儿。