双硬盘双系统安装指南:BIOS配置、GRUB修复与避坑全记录 📅 发布时间:2026/9/18 14:38:58 👁 浏览次数: 之前帮朋友折腾一台旧笔记本他一开始图省事买了块单块SSD想在同一个盘里塞下win10和Ubuntu 18.04双系统。结果Windows安全更新一跑GRUB引导菜单就消失反反复复重装了三回我才意识到问题出在“方案本身”而不是操作细节。后来换成双硬盘SSD固态机械硬盘HDD的布局一个硬盘管一个系统再配合BIOS里几个关键选项的调整问题基本绝迹。这篇文章就是这次安装过程的全记录包含BIOS配置、硬盘分区规划、两个系统的安装顺序以及装完以后必须处理的细节问题。适合准备做双系统的开发机、实验室工作站也适合第一次接触Linux的小白按步骤操作。如果你只是想“装好一个能用的双系统”照着我这个流程走大概两个小时能收工。如果你想搞明白“为什么必须这样装”我也会把每一步背后的原因讲清楚毕竟双系统翻车的大部分原因都在于只背步骤、不懂逻辑。1. 双硬盘双系统为什么更省心先把坑看明白1.1 单硬盘双系统的三个典型翻车场景很多教程第一步就是让你用分区工具把一块硬盘切成前后两段前面装Windows后面装Ubuntu。这个方案不是不能跑但我在实际帮人修机的过程里见过太多相同的问题。第一个场景是Windows更新后GRUB菜单消失。Windows的引导程序非常“霸道”它不认Linux的引导每次大版本更新或安全补丁打完后都可能重写EFI引导记录把GRUB直接顶掉。你开机看到的不是熟悉的紫色菜单而是直接进Windows。第一次碰到这事儿大多数人会以为Ubuntu没了重装一遍结果没过多久又复发。第二个场景是分区空间不够。开发用的Ubuntu装着装着/目录就被docker镜像、编译缓存、conda环境塞满。单硬盘方案下想要扩容就得动相邻分区Windows和Linux的分区挤在一起没有哪个分区工具敢保证操作过程百分百安全稍有闪失就是两套系统一起进不去。第三个场景是卸载系统时误伤。某天你不想用Windows了或者不想要Ubuntu了在磁盘管理里“删掉分区”这一步很容易把另一个系统的EFI引导分区一起删掉。我见过不止一个用户只是想把Ubuntu格式化掉结果开机提示“No bootable device”Windows也起不来了。所以如果你手头恰好有两块硬盘哪怕是“一块SSD加一块老旧机械盘”都建议优先考虑双硬盘方案。两块硬盘的系统互不依赖引导独立数据隔离任何一边坏了或者想重装都不会波及另一边。1.2 双硬盘方案的分工规划与安装顺序双硬盘装双系统最常见的两套规划如下方案第一块盘第二块盘适合场景方案ASSD装win10系统常用软件HDD装Ubuntu 18.04/、/home、swap日常以Windows为主Linux跑实验/学习方案BSSD装Ubuntu 18.04开发主力HDD装win10备用日常以Linux为主Windows偶尔用我自己的习惯是推荐方案A原因很朴素Windows的随机读写和日常响应非常依赖SSD把win10放固态上能让整机流畅度上一个台阶而Ubuntu 18.04这种主要跑编译、跑脚本的系统放在机械硬盘上虽然开机和软件启动会慢一点但实际跑计算任务时瓶颈往往在CPU和内存在不会让你觉得“没法用”。无论选哪套方案安装顺序只有一个先装Windows再装Ubuntu。原因之前提过Windows的引导程序不会主动识别Linux而Ubuntu安装时自带的GRUB会自动检测已经存在的Windows系统并把它加进启动菜单。你要是反过来先装Ubuntu再装WindowsWindows会把GRUB覆盖掉最后你还得用Live U盘手动修引导纯粹给自己加戏。2. BIOS设置UEFI、安全启动、硬盘模式一个都不能含糊2.1 先确认BIOS模式再决定怎么装很多人装双系统失败根源在BIOS里UEFI和Legacy两个模式没搞清楚。现在2017年以后的主板基本默认都是UEFI引导Windows 10也按UEFI模式安装。你装Ubuntu时也必须让U盘以UEFI方式启动两边保持同一套引导标准GRUB才能顺畅地识别Windows。进入BIOS后先找Boot Mode或者Boot List Option这个选项。如果显示UEFI那后面所有系统都用UEFI模式安装如果显示Legacy或者“Legacy UEFI”我建议你直接切成UEFI。Legacy对应的MBR磁盘分区表不说别的单是它不支持超过2TB的启动盘这一条就已经不适合当新机器的主力方案了。有个小细节容易踩坑主板开启CSM兼容性支持模块时同一个U盘在启动菜单里可能会显示两个条目一个带UEFI前缀一个不带。进安装程序时一定要选带UEFI的那个否则你费劲装完开机时会发现GRUB里找不到Windows因为两边引导方式根本不匹配。2.2 三个关键选项Secure Boot、SATA Operation、启动顺序BIOS里真正影响双系统的核心我总结下来就这三项。第一项是Secure Boot安全启动。这个功能的本意是防止恶意软件在系统启动前劫持引导但它对Linux桌面版和第三方驱动的兼容性是出了名的麻烦。Ubuntu 18.04本身支持安全启动可一旦你后面要装NVIDIA闭源驱动、VirtualBox内核模块这类需要单独签名的东西就很容易出现“驱动加载失败”“dkms构建报错”之类的问题。我的做法是直接把它设为Disabled省得以后一个个签名折腾。第二项是SATA Operation硬盘工作模式。戴尔笔记本特别喜欢出厂默认RAID On其他品牌有些机器叫Intel RST Premium With Intel Optane System Acceleration。在这个模式下Windows能看到硬盘但Ubuntu安装程序经常认不出你的NVMe固态或机械盘。稳妥的方案是把它改成AHCI模式。要注意这个改动必须在装Windows之前做或者按后面2.3的流程处理否则已经装好的Windows会直接蓝屏。第三项是启动顺序。如果BIOS里能看到Boot Priority或者Boot Sequence确认USB启动项在最前面方便待会儿用U盘装系统。装完双系统后再把“ubuntu”这个启动项提到“Windows Boot Manager”前面让GRUB默认接管开机流程。以戴尔笔记本为例开机按F2进BIOS Setup这三项分别在General Boot Sequence Boot List Option选UEFISecurity Secure Boot改成DisabledSystem Configuration SATA Operation改成AHCI其他品牌也大同小异。华硕在Boot标签页联想ThinkPad在Security和Startup标签页惠普在Advanced里面名称可能稍有出入但含义都一样。2.3 已经用RAID模式装好Windows怎么安全切换AHCI如果你电脑出厂就是RAID模式而且Windows已经装好并且用了一阵子千万别直接在BIOS里切AHCI——这样十有八九会在Windows启动时蓝屏错误代码通常是INACCESSIBLE_BOOT_DEVICE。正确的切换姿势是让Windows先进安全模式因为安全模式下Windows会重新加载AHCI驱动。具体操作分四步在Windows中用管理员身份打开命令提示符执行bcdedit /set {current} safeboot minimal关机开机进BIOS把SATA Operation从RAID改成AHCI保存退出。Windows会自己进入安全模式。等它进来之后再次用管理员身份打开命令提示符执行bcdedit /deletevalue {current} safeboot重启Windows正常进入桌面。这套流程我实测过多次成功率很高。核心逻辑就是先让Windows启动到安全模式在安全模式下加载并缓存AHCI驱动然后再恢复正常启动就不碰蓝屏了。3. 先装Windows分区规划与最容易忽略的关键一步3.1 制作UEFI启动盘的两个要点Windows的安装U盘官方推荐用Media Creation Tool它会自动帮你做成适合UEFI引导的格式。如果你习惯用Rufus注意三个选项分区类型选GPT目标系统选UEFI非CSM文件系统保持FAT32。这三个参数选错任何一个都可能导致U盘能启动但安装程序找不到硬盘。制作完成后插到机器上开机按启动菜单快捷键戴尔F12、华硕F8、联想F12惠普F9在弹出的菜单里选择带UEFI前缀的U盘条目进入Windows安装界面。3.2 装Windows时只插目标盘避免引导写乱这一步是我个人的血泪经验必须单独拎出来说安装Windows时把机械硬盘拔掉只留SSD和U盘。为什么Windows安装程序在检测到多块硬盘时有时候会把EFI引导分区写到另一块盘上而不是你正在装系统的那块SSD。我见过最离谱的情况是用户把win10装进SSD引导却写进了机械盘的操作系统保留分区。结果就是他单独用SSD开机提示找不到系统必须两块盘同时接上才能进Windows。后面他想把Ubuntu装到机械盘上引导又互相干扰一团乱麻。解决办法其实很简单物理拔掉机械盘或者如果你用的是台式机在BIOS里临时禁用那块盘。装完Windows关机再把机械盘接回去。这样Windows的引导100%落在SSD上SSD单独拿出来也能启动系统。3.3 装完Windows后先把这两件事做掉新系统进桌面后先别急着装五花八门的软件做两件事给后面Ubuntu铺路。第一件关闭快速启动。这一项藏在控制面板 电源选项 选择电源按钮的功能 更改当前不可用的设置。把“启用快速启动推荐”前面的勾取消然后保存修改。Windows的快速启动本质是一种混合休眠关机时会把内核会话写入休眠文件下次开机快速恢复。这个机制对Windows自己没问题但对后面Ubuntu挂载NTFS分区是个隐患——Windows没真正关机NTFS分区处于锁定状态Linux那边轻则警告重则挂载后写入文件导致文件系统损坏。直接关掉最省心SSD启动本来就快快速启动带来的那几秒提升根本感知不到。第二件确认系统确实以UEFI方式安装。WinR输入msinfo32回车看系统信息里的“BIOS模式”一栏如果是UEFI说明没问题如果显示“传统”说明你之前的启动U盘选错了需要重装。趁系统刚装好、还没放东西重来一遍代价最低。4. Ubuntu 18.04安装详解最容易翻车的环节全在这4.1 启动盘制作与启动方式选择Ubuntu 18.04的镜像建议直接去官方镜像站或国内高校镜像站下载文件名一般是ubuntu-18.04.6-desktop-amd64.iso。这里提醒一句18.04的免费标准支持已经结束写这个方案主要是为了跑特定框架或课程项目的老环境如果是全新项目优先考虑20.04或22.04操作思路完全一样照着本文流程走也没问题。制作Ubuntu启动盘我用Rufus时一般直接选DD镜像模式写入。DD模式是把镜像的原始字节原封不动写到U盘兼容性最好。如果你用默认的ISO模式写入在部分主板上启动时会黑屏、花屏或者卡在某个加载界面换DD模式重写一遍基本能解决。启动方式同样是开机按启动菜单快捷键选择UEFI开头的U盘条目进入Ubuntu图形安装界面。4.2 手动分区推荐方案安装类型里选择“Something else”其他选项也就是手动分区。双硬盘方案的分区规划我给一套稳妥的参考值挂载点/用途分区大小文件系统说明EFI系统分区512MB - 1GBFAT32如果目标盘上还没有需要手动建一个挂载点选“EFI System Partition”/80GB - 120GBext4根分区系统和软件都在这/home剩余全部空间ext4用户数据、下载文件、项目代码swap8GB - 16GBswap交换分区内存小于8G建议给到内存的2倍16G内存给8G即可具体分区分给哪个挂载点看你前面选的方案A还是方案B。如果Ubuntu装在机械硬盘上机械盘通常不需要单独建EFI分区直接划分/、/home、swap三个区就行如果这两块硬盘之前都没装过系统或者原系统已经被格式化目标盘上没有任何EFI分区那就要在第一步手动建一个EFI系统分区512MB足够。还有个优化思路如果开机速度在你这里优先级很高可以在SSD上单独分一个500MB的/boot分区让Ubuntu的引导和内核文件都在固态上。不过这个操作对新手来说增加了理解成本默认不建也能正常用只是Ubuntu放机械盘时开机过程和内核加载会比SSD慢一些。我自己的习惯是老老实实放在同一块盘上省心最重要。4.3 “安装启动引导器的设备”到底怎么选手动分区界面最下面有个下拉框“Device for boot loader installation”。这一项是新手最容易懵的地方也是双系统安装里争议最大的一步。我给你的建议是选择Ubuntu所在硬盘的整盘设备也就是类似/dev/sdb这样的选项而不要选/dev/sdb1这样的分区。以方案A为例SSD是/dev/sda装Windows机械盘是/dev/sdb装Ubuntu那这里就选/dev/sdb。Ubuntu的GRUB会安装到这块盘的EFI引导位置上开机时通过BIOS的启动项来拉起GRUBGRUB再检测并列出Windows Boot Manager形成双系统菜单。这么做的好处以后你会体会到两块盘的引导完全独立。某天机械硬盘出故障了拔掉它SSD上的Windows照常启动反过来SSD上的引导坏了机械盘上的Ubuntu也不受影响。用“整盘”而不是“分区”是为了让grub-install正确处理UEFI启动避免一些主板在写分区时产生的NVRAM指向错误。4.4 装完直接进Windows从这两个方向查按照常规流程Ubuntu安装完成后重启你会看到GRUB菜单里面有Ubuntu和Windows Boot Manager两个选项。如果你重启后直接进了Windows没有看到GRUB通常两个原因一是BIOS的启动顺序里“Windows Boot Manager”排在“ubuntu”前面GRUB根本没机会露面二是GRUB确实没写进BIOS的启动项列表。第一个原因好解决开机进BIOS把启动顺序里的“ubuntu”项拖到第一位重启就有了。第二个原因去BIOS启动顺序里找有没有“ubuntu”这个条目如果没有那基本确定GRUB没装成功需要进Ubuntu的Live U盘环境跑一遍Boot-Repair修复工具我下面会详细讲。5. GRUB引导管理与修复双系统装完这才算真正落脚5.1 默认启动项和等待时间调整GRUB默认会选中第一项也就是Ubuntu并且等待10秒让你选择。如果你想默认进Windows或者觉得10秒太长可以改配置文件。打开终端编辑/etc/default/grubsudo nano /etc/default/grub主要看两个参数GRUB_DEFAULT0 GRUB_TIMEOUT5GRUB_DEFAULT表示菜单第一项0就是第一个。你可以先执行sudo grep menuentry /boot/grub/grub.cfg查看菜单项的完整名称比如Windows通常显示为“Windows Boot Manager (on /dev/sda1)”然后把GRUB_DEFAULT改成对应的字符串加上引号GRUB_DEFAULTWindows Boot Manager (on /dev/sda1)保存后别忘执行sudo update-grub配置文件修改不会直接生效update-grub会重新生成GRUB菜单同时重新检测系统里的所有可引导系统。5.2 引导丢失后的修复流程如果开机连GRUB菜单都没有或者GRUB菜单里只剩Ubuntu、没了Windows别急着重装系统用Boot-Repair工具能救回来。操作流程是用Ubuntu安装U盘启动选择“Try Ubuntu”进入Live桌面连上网络打开终端执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair -y boot-repair打开后直接点“Recommended repair”它会自动检测所有硬盘上的EFI分区和系统重新安装GRUB并搜索其他操作系统的引导项。工具跑完会输出一个报告提示修复成功。修复后重启如果GRUB菜单里还是没有Windows通常是os-prober没扫到Windows的EFI文件。你可以手动挂载Windows所在的EFI分区比如sudo mount /dev/sda1 /mnt sudo os-prober sudo update-grubWindows Boot Manager就会出现。5.3 Windows重装后引导顺序的处理双系统用久了Windows偶尔会出问题需要重装。好消息是由于双硬盘方案里Ubuntu和Windows的引导各自独立重装Windows不会删掉Ubuntu的数据我文章开头提到“需要从Live U盘一直修到半夜”的最坏情况在双硬盘下基本不会发生。但有一个小问题重装Windows后BIOS的启动顺序可能会被重置Windows Boot Manager会重新排到最前面开机直接进Windows。处理方式很简单进BIOS把“ubuntu”启动项重新挪到第一GRUB会检测到新装的Windows并生成对应菜单项然后你在Ubuntu里顺手跑一遍sudo update-grub确保指向正确。6. 装完双系统后的三个高频问题时差、快速启动、自动挂载6.1 两个系统时间差8小时装完双系统重启后你会发现一个很迷惑的现象在Windows里看时间是对的切到Ubuntu就慢了8小时或者反过来。原因是两个系统对硬件时钟BIOS里的时间的解读方式不同——Windows把硬件时钟当“本地时间”Ubuntu默认把它当“UTC时间”再根据时区换算一次于是差出一个时区。我自己习惯在Ubuntu里执行下面这条命令让Ubuntu也把硬件时钟当本地时间sudo timedatectl set-local-rtc 1 --adjust-system-clock这样两边的时间就统一了。你也可以反过来改Windows注册表让它用UTC但我觉得在Ubuntu里一条命令改完更省事而且不用碰注册表。6.2 Windows快速启动和NTFS分区的关系文章前面让你装完Windows就关快速启动这里把原理讲透。Windows开启快速启动后关机不是真正关机而是把内核和驱动数据写进hiberfil.sys休眠文件下次开机跳过传统的硬件初始化过程。但这对Linux是个坑。Ubuntu挂载NTFS格式的机械硬盘时如果检测到上次是Windows休眠后锁定的文件系统会判断该分区处于不一致状态多半会拒绝对NTFS分区进行写入。你真要强行写轻则挂载后文件只读重则损坏NTFS索引。我见过最典型的故障就是用户在Windows下没关机按了“睡眠”或快速启动状态然后切到Ubuntu里往机械盘拷贝资料拷到一半整个分区变成raw格式数据全部丢失。所以只要后面要双系统共用一块NTFS机械盘关掉Windows快速启动是必须的。顺手把休眠也一并关掉更彻底powercfg /h off这条命令会删除休眠文件同时把快速启动选项一起禁用。6.3 机械硬盘开机自动挂载Ubuntu装完后机械硬盘默认不会自动挂载你每次开机都要到文件管理器里手动点一下那个盘符。开发环境下这很影响效率比如编译脚本、docker容器路径都指到某个固定目录手动挂载很容易因为路径不对而出错。我建议在/etc/fstab里加一条开机自动挂载规则。先查分区的UUIDsudo blkid找到你的机械硬盘分区比如/dev/sdb1记下它的UUID。然后编辑fstabsudo nano /etc/fstab在文件末尾加一行UUID你的UUID值 /mnt/data ntfs-3g defaults,uid1000,gid1000,umask022,noatime 0 2如果你Ubuntu的用户UID不是1000先执行id命令查看把uid和gid改成实际值。保存后执行sudo mount -a硬盘就会立刻挂载到/mnt/data目录以后开机也自动挂载。这里再强调一次如果挂载时提示磁盘不干净unclean file system回Windows关机一次再进Ubuntu基本上就是快速启动没关干净导致的。最后补一个我自己的操作习惯。双系统环境无论装多熟练我都会在收工前做三件事第一步在Windows里确认快速启动已关闭第二步在Ubuntu里跑一遍sudo update-grub确认菜单里Windows和Ubuntu都在第三步到BIOS里把默认启动项固定为“ubuntu”也就是GRUB。这三步做完基本可以告别“开机找不到系统”这种事。如果你后面遇到GRUB菜单消失不用慌先回忆一下是不是最近重装过Windows再从BIOS启动顺序开始排查大概率只是优先级被重置而不是系统没了。