1. 项目概述告别U盘解锁双系统安装新姿势每次想给电脑装个Ubuntu和Windows组成双系统第一反应是不是找U盘、下载镜像、用Rufus或者Ventoy制作启动盘这套流程确实经典但麻烦也不少手边不一定有闲置的U盘U盘速度可能成为瓶颈制作过程偶尔还会遇到兼容性问题。今天分享的就是一种完全绕过U盘直接在现有Windows系统环境下部署Ubuntu双系统的方法。这尤其适合那些手头没有合适U盘或者电脑USB接口紧张比如一些超薄本的朋友。这个方法的核心思路是利用Windows系统自带的引导程序和磁盘管理功能配合GRUB2Linux的主流引导程序在本地硬盘上创建一个“虚拟”的安装环境。简单来说就是把Ubuntu的安装镜像文件“安置”在你的硬盘里然后修改电脑的启动项让电脑从硬盘上的这个镜像文件启动从而进入Ubuntu安装程序。整个过程你的U盘可以安心躺在抽屉里睡觉。接下来我会以在Windows 11系统上安装Ubuntu 22.04 LTS为例详细拆解每一个步骤、背后的原理以及我踩过坑后总结的实操要点。2. 核心原理与准备工作拆解2.1 为什么可以不用U盘传统U盘安装法的本质是让电脑的BIOS/UEFI固件从一个外部存储设备U盘读取并启动一个特定的操作系统即安装程序。而我们今天的方法则是将这个“外部存储设备”的角色由U盘转移到了电脑自身的硬盘上。其技术基础主要有两点UEFI启动与ESP分区现代电脑普遍采用UEFI启动方式它需要一个专用的**EFI系统分区ESP**来存放各个操作系统的引导加载程序。Windows安装后会自动创建这个分区。我们的方法会利用这个现有的ESP分区或者为其新增引导项。GRUB2的链式加载能力GRUB2是一个非常强大的引导程序它不仅可以引导Linux内核还能通过chainloader命令直接加载其他EFI应用程序例如Windows的bootmgfw.efi或者——关键就在这里——加载一个存放在硬盘上的EFI可执行文件这个文件可以配置为从一个硬盘上的ISO文件启动。我们的操作就是在Windows环境下手动将Ubuntu安装ISO中的核心引导文件提取出来放置到ESP分区并配置GRUB2去引导它。当电脑启动时GRUB2菜单会出现一个新增选项选择它就会从硬盘上的ISO文件启动Ubuntu安装程序。2.2 准备工作清单在开始动手前请确保准备好以下内容并理解其作用一个健康的Windows系统建议是Windows 10或11并且系统本身运行正常。这是我们的操作基础平台。Ubuntu桌面版ISO镜像从Ubuntu官网下载你需要的版本例如ubuntu-22.04.4-desktop-amd64.iso。务必确认下载的是“Desktop”版本因为服务器版Server的ISO引导方式不同不适用于此方法。将下载好的ISO文件放在一个容易找到的位置比如D:\根目录。记住它的完整路径。磁盘空间空闲的未分配空间用于安装Ubuntu系统。建议至少预留50GB。这可以通过Windows的“磁盘管理”工具压缩现有分区获得。临时空间需要至少8GB的可用空间用于存放从ISO中提取的引导文件和解压后的临时文件。通常系统盘C盘有足够空间即可。软件工具7-Zip或同类解压软件用于解压ISO文件。EasyUEFI免费版即可用于可视化地管理UEFI启动项。这是后面修复引导的关键工具。DiskGenius或使用Windows磁盘管理用于更直观地查看和管理分区特别是ESP分区。Windows自带的磁盘管理有时无法直接操作ESP分区。备份备份备份任何涉及磁盘分区和系统引导的操作都有潜在风险。请务必备份好Windows系统盘通常是C盘上的重要数据。虽然此方法相对安全但防患于未然是资深玩家的第一准则。注意如果你的电脑是陈旧的传统BIOSLegacy BIOS启动方式此方法不适用。请确认你的电脑启动模式为UEFI。可以在Windows中运行msinfo32查看“BIOS模式”一项显示为“UEFI”即符合条件。3. 详细操作步骤全解析3.1 第一步为Ubuntu准备磁盘空间这是安装任何双系统的必经之路目的是在硬盘上划出一块“空白地带”给Ubuntu使用。在Windows搜索框输入“磁盘管理”打开“创建并格式化硬盘分区”。找到你打算分割的分区通常是数据盘D盘或E盘确保其中有足够的剩余空间大于你打算给Ubuntu的空间。右键点击该分区选择“压缩卷”。在“输入压缩空间量”处填入你想要分配的大小以MB为单位例如102400MB约等于100GB。系统会计算可用空间给出一个最大值你填入的值不能超过它。点击“压缩”。完成后你会看到磁盘布局中出现一块标有“未分配”的黑色区域。到此为止不要在这个未分配空间上创建新卷保持其未分配状态Ubuntu安装程序会自动识别并利用它。实操心得建议从数据盘而非系统盘压缩空间风险更小。如果你打算让Ubuntu使用单独的分区存放个人文件/home可以多分一些空间。一个合理的分配是根目录/分配30-50GB交换空间swap分配4-8GB如果内存大于8GB交换空间可以小一些甚至不要剩余的全部分给/home。不过我们可以在安装时再详细设置。3.2 第二步提取并放置Ubuntu引导文件这是整个方法中最关键的一步目的是把U盘里的“灵魂”请到硬盘里来。挂载并探索ISO右键下载好的Ubuntu ISO文件选择“装载”。Windows会将其作为一个虚拟光驱比如G:盘打开。或者你也可以直接用7-Zip打开ISO文件。定位核心文件进入虚拟光驱或ISO压缩包找到EFI文件夹再进入EFI/BOOT目录。你会看到几个.efi文件其中对我们最重要的是grubx64.efi有时也可能是bootx64.efi。同时记住ISO文件本身的路径例如D:\ubuntu-22.04.4-desktop-amd64.iso。访问ESP分区ESP分区在Windows文件资源管理器中通常是隐藏的。我们需要以管理员身份运行DiskGenius。在DiskGenius左侧的磁盘列表中找到你的系统盘通常是Disk 0。你会看到一个类型为“EFI系统分区”的小分区通常100MB-500MB这就是ESP分区。右键点击它选择“分配新的驱动器号盘符”例如分配为Z:。这样就能在文件资源管理器中访问它了。创建引导目录并复制文件在文件资源管理器中打开刚刚分配盘符的ESP分区Z:盘。在根目录下新建一个文件夹命名为ubuntu名称可以自定但建议用这个清晰明了。将之前找到的grubx64.efi文件复制到Z:\ubuntu\目录下。同时为了保险可以把EFI/BOOT目录下的bootx64.efi也复制一份过来。最后将整个Ubuntu的ISO文件如ubuntu-22.04.4-desktop-amd64.iso也复制到Z:\根目录下或者Z:\ubuntu\目录下。我推荐放根目录路径简单不易错。核心原理补充grubx64.efi是一个EFI可执行应用程序。当UEFI固件引导它时它会读取其内置的配置或特定路径下的配置文件来知道下一步该做什么。我们后续配置GRUB就是告诉这个grubx64.efi“请去加载位于Z:盘上的那个ISO文件并从中启动。”3.3 第三步配置GRUB引导菜单创建启动项现在我们需要让电脑在启动时能找到一个选项来执行我们刚刚放置的grubx64.efi。使用EasyUEFI添加启动项以管理员身份运行EasyUEFI。点击中间面板上方的“管理EFI启动项”。点击右侧的“添加”按钮。在弹出的对话框中类型选择“Linux或其他操作系统”。描述填写一个你喜欢的名字例如“Ubuntu Installer”。文件路径点击浏览按钮导航到Z:\ubuntu\grubx64.efi即你刚才复制文件的位置选中它。点击“确定”保存。此时在EasyUEFI的主列表中你应该能看到新添加的“Ubuntu Installer”条目。你可以使用右侧的“上移/下移”按钮调整它的启动顺序。为了接下来方便测试可以暂时将它移到第一位。避坑指南确保选择的.efi文件路径正确。如果路径错误启动项会创建失败或无法引导。EasyUEFI操作的是UEFI启动列表NVRAM这是一个比修改硬盘文件更“底层”的操作所以需要管理员权限。3.4 第四步创建GRUB自定义配置仅仅添加了启动项还不够我们需要告诉grubx64.efi具体要做什么。这需要通过一个配置文件来实现。创建配置文件在放置grubx64.efi的同一目录下即Z:\ubuntu\新建一个文本文档将其重命名为grub.cfg。注意必须确保文件扩展名是.cfg而不是.txt。如果系统隐藏了已知文件扩展名你需要先在文件夹选项中取消隐藏。编辑配置文件用记事本或其他文本编辑器打开grub.cfg输入以下内容menuentry Install Ubuntu from HDD ISO { set root(hd0,gpt1) set isofile/ubuntu-22.04.4-desktop-amd64.iso loopback loop $isofile linux (loop)/casper/vmlinuz bootcasper iso-scan/filename$isofile noprompt noeject quiet splash initrd (loop)/casper/initrd }关键参数解释与自定义set root(hd0,gpt1)这行设置了“根设备”。hd0表示第一块硬盘。gpt1表示GPT分区表下的第一个分区。这里需要根据你的实际情况修改你的ESP分区不一定是第一个分区。可以在DiskGenius中查看你的ESP分区是第几个分区。例如如果是第二个分区就改为(hd0,gpt2)。如果不确定一个相对安全的方法是使用文件系统UUID但更简单的方法是先按(hd0,gpt1)尝试。set isofile/ubuntu-22.04.4-desktop-amd64.iso这行定义了ISO文件的路径。这里的路径是相对于上面设置的root的。因为我们把ISO放在了ESP分区Z:的根目录所以路径就是/加上文件名。请将文件名替换成你实际的ISO文件名。linux ...和initrd ...这两行是核心引导命令它们告诉GRUB去加载ISO文件中casper文件夹下的内核vmlinuz和初始内存盘initrd并传递bootcasper iso-scan/filename$isofile等参数让内核知道要从哪个ISO文件启动。常见问题如果配置错误最可能的现象是启动时GRUB报错提示找不到文件或无法加载内核。此时你需要重新进入Windows检查grub.cfg中的root设置和isofile路径是否正确。3.5 第五步重启并开始安装完成以上所有步骤后保存所有文件关闭所有软件。重启电脑在Windows中点击重启。进入启动菜单在电脑开机自检POST后立即快速连续按你电脑品牌对应的启动菜单键常见的有F12、F11、Esc等。如果错过了也可以进入BIOS/UEFI设置通常是Del或F2键在里面找到启动选项。选择启动项在启动菜单中你应该能看到我们刚才创建的“Ubuntu Installer”选项。选择它并按回车。进入Live环境如果一切配置正确你会看到GRUB菜单可能只有一个选项然后系统会开始加载最终进入Ubuntu的Live桌面环境。这个环境和你用U盘启动看到的一模一样。开始安装双击桌面上的“Install Ubuntu”图标按照图形化向导进行安装。语言、键盘布局按需选择。安装类型这是关键一步。选择“安装Ubuntu与Windows Boot Manager共存”。Ubuntu安装程序会自动检测到Windows系统和你之前准备的“未分配空间”并为你配置好分区和双系统引导。这是最省心、最推荐给新手的选项。后续步骤设置时区、创建用户名密码等按提示完成即可。实操心得在安装过程中如果安装程序提示要关闭“快速启动”或“安全启动”请按照提示操作。通常“安全启动”可能需要禁用但Ubuntu新版本对其支持越来越好可以尝试保持开启如果安装失败再禁用。4. 安装后的引导修复与优化安装完成后重启电脑你可能会直接进入Ubuntu而找不到Windows的启动选项了。这是因为Ubuntu的GRUB安装程序将自己的引导写入了ESP分区并成为了主引导项但它可能没有正确探测到Windows。4.1 修复GRUB以识别Windows进入Ubuntu系统后打开终端CtrlAltT执行以下命令sudo update-grub这个命令会探测当前系统中所有可引导的操作系统并重新生成GRUB的配置文件。执行完毕后重启电脑。你应该能在GRUB菜单中看到Ubuntu和Windows两个选项了。如果update-grub没有找到Windows你可能需要手动检查ESP分区中Windows的引导文件是否存在。更直接的方法是使用Boot-Repair这个工具。在终端中运行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair安装后运行boot-repair选择“推荐修复”它会自动处理大多数引导问题。4.2 清理临时启动项安装成功后我们之前为了安装而创建的“Ubuntu Installer”启动项就没用了可以将其删除保持启动菜单的整洁。回到Windows系统。再次以管理员身份运行EasyUEFI。在列表中找到“Ubuntu Installer”条目选中它点击“删除”。同时你也可以安全地删除之前复制到ESP分区Z:盘的ubuntu文件夹和那个巨大的ISO文件以释放空间。但请务必保留EFI/ubuntu目录这是安装Ubuntu时自动生成的里面是真正的Ubuntu系统引导文件否则Ubuntu将无法启动。4.3 调整默认启动项与等待时间如果你希望默认进入Windows或者觉得GRUB菜单等待时间太长可以在Ubuntu中进行调整。调整默认启动项编辑GRUB配置文件。sudo nano /etc/default/grub找到GRUB_DEFAULT这一行。它可能的值有0默认启动第一个菜单项通常是Ubuntu。saved默认启动上次选择的项。Windows Boot Manager (on /dev/nvme0n1p1)精确的菜单项标题。你可以通过查看/boot/grub/grub.cfg文件来找到Windows菜单项的确切标题然后将其用引号括起来放在这里。 例如如果你想默认启动Windows且其标题是“Windows Boot Manager”就改为GRUB_DEFAULTWindows Boot Manager调整等待时间在同一文件中找到GRUB_TIMEOUT后面的数字就是等待时间秒。设为5表示等待5秒设为-1表示一直等待手动选择。使更改生效修改保存后运行sudo update-grub使新配置生效。5. 常见问题与深度排查指南即使步骤清晰实际操作中也可能遇到各种“妖孽”问题。下面是我总结的一些常见坑点及解决办法。5.1 启动时黑屏或卡死症状选择“Ubuntu Installer”启动项后屏幕黑屏只有光标闪烁或者直接卡住。可能原因与解决显卡问题尤其是NVIDIA独显这是最常见的原因。在GRUB菜单出现时如果一闪而过在启动时按Shift或Esc键呼出菜单选中“Install Ubuntu”选项不要按回车先按e键进入编辑模式。找到以linux开头的那一行在行末quiet splash后面先添加一个空格然后加上nomodeset。这个参数会禁用内核级显卡驱动使用基础显示模式。按CtrlX或F10启动。进入Live环境后安装系统并在安装完成后务必在Ubuntu中安装官方的NVIDIA驱动而不是使用开源的nouveau驱动。可以在“软件和更新”的“附加驱动”选项卡中选择。安全启动Secure Boot冲突进入电脑的UEFI/BIOS设置暂时关闭“Secure Boot”。安装完成并配置好驱动后可以再尝试开启。5.2 GRUB报错file not found 或 disk hd0,gptX not found症状启动时GRUB命令行报错提示找不到文件或磁盘。可能原因与解决grub.cfg中root设置错误这是最可能的原因。重新进入Windows用DiskGenius确认你的ESP分区是第几个GPT分区。例如在DiskGenius中看到ESP分区是“分区2”那么root就应该是(hd0,gpt2)。硬盘序号hd0一般不变。ISO文件路径或文件名错误检查grub.cfg中isofile的路径和文件名是否与ESP分区中ISO文件的实际位置和名称完全一致包括大小写。Linux下是区分大小写的。文件损坏重新从官网下载ISO文件并校验SHA256值。重新复制文件到ESP分区。5.3 安装程序无法识别Windows或磁盘症状在安装类型选择时没有出现“与Windows共存”的选项或者磁盘列表为空/异常。可能原因与解决Windows快速启动Fast Startup的影响这个功能会让Windows在关机时并非完全关闭而是进入一种深度休眠状态并锁住磁盘。这会导致Linux安装程序无法安全地访问和修改磁盘分区。务必在Windows的“电源选项”中关闭“快速启动”。磁盘模式为RAID常见于某些品牌笔记本有些电脑出厂时磁盘模式被设置为Intel RST或AMD RAID模式。这种模式需要特定的驱动Ubuntu Live环境可能不包含。解决方法是在电脑UEFI/BIOS设置中将SATA模式从“RAID”改为“AHCI”。注意修改前需要先在Windows中做相应设置否则修改后Windows可能无法启动蓝屏。一个安全的流程是先在Windows中禁用快速启动然后以安全模式启动一次Windows让系统加载AHCI驱动再重启进入BIOS改为AHCI最后再启动Windows和Ubuntu安装程序。5.4 安装后无法进入Windows症状GRUB菜单中没有Windows选项或者选择Windows后无法启动。可能原因与解决GRUB未更新首先尝试在Ubuntu中运行sudo update-grub。Windows引导文件损坏或丢失如果update-grub无效可能需要修复Windows引导。准备一个Windows安装U盘从U盘启动选择“修复计算机”-“疑难解答”-“高级选项”-“命令提示符”。在命令提示符中依次执行bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd执行完毕后重启。这会将Windows引导设为默认。然后你需要再进入Ubuntu Live环境用Boot-Repair工具重新安装GRUB到ESP分区。整个无U盘安装双系统的过程其核心在于对UEFI引导机制和GRUB配置的理解。它省去了制作启动盘的物理媒介依赖将安装过程完全软件化、本地化。对于熟悉系统原理的用户来说这种方法提供了更大的灵活性和控制力。当然对于纯粹追求简单快捷的新手传统U盘法依然是最稳妥的选择。但掌握了这种方法意味着你对电脑启动过程的理解上了一个台阶以后再遇到引导问题你排查和解决的思路也会清晰得多。我个人在多次使用这种方法后最大的体会就是分区路径和文件名一定要核对再三很多时候错误就出在一个字母或者一个数字上。耐心和仔细是成功完成这类操作的不二法门。