news 2026/8/5 22:10:23

无U盘安装Ubuntu双系统:基于UEFI与GRUB2的本地硬盘引导方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
无U盘安装Ubuntu双系统:基于UEFI与GRUB2的本地硬盘引导方案

1. 项目概述:告别U盘,解锁双系统安装新姿势

每次想给电脑装个Ubuntu和Windows组成双系统,第一反应是不是找U盘、下载镜像、用Rufus或者Ventoy制作启动盘?这套流程确实经典,但麻烦也不少:手边不一定有闲置的U盘,U盘速度可能成为瓶颈,制作过程偶尔还会遇到兼容性问题。今天分享的,就是一种完全绕过U盘,直接在现有Windows系统环境下,部署Ubuntu双系统的方法。这尤其适合那些手头没有合适U盘,或者电脑USB接口紧张(比如一些超薄本)的朋友。

这个方法的核心思路,是利用Windows系统自带的引导程序和磁盘管理功能,配合GRUB2(Linux的主流引导程序),在本地硬盘上创建一个“虚拟”的安装环境。简单来说,就是把Ubuntu的安装镜像文件“安置”在你的硬盘里,然后修改电脑的启动项,让电脑从硬盘上的这个镜像文件启动,从而进入Ubuntu安装程序。整个过程,你的U盘可以安心躺在抽屉里睡觉。接下来,我会以在Windows 11系统上安装Ubuntu 22.04 LTS为例,详细拆解每一个步骤、背后的原理,以及我踩过坑后总结的实操要点。

2. 核心原理与准备工作拆解

2.1 为什么可以不用U盘?

传统U盘安装法的本质,是让电脑的BIOS/UEFI固件从一个外部存储设备(U盘)读取并启动一个特定的操作系统(即安装程序)。而我们今天的方法,则是将这个“外部存储设备”的角色,由U盘转移到了电脑自身的硬盘上。

其技术基础主要有两点:

  1. UEFI启动与ESP分区:现代电脑普遍采用UEFI启动方式,它需要一个专用的**EFI系统分区(ESP)**来存放各个操作系统的引导加载程序。Windows安装后会自动创建这个分区。我们的方法会利用这个现有的ESP分区,或者为其新增引导项。
  2. GRUB2的链式加载能力:GRUB2是一个非常强大的引导程序,它不仅可以引导Linux内核,还能通过chainloader命令直接加载其他EFI应用程序,例如Windows的bootmgfw.efi,或者——关键就在这里——加载一个存放在硬盘上的EFI可执行文件,这个文件可以配置为从一个硬盘上的ISO文件启动。

我们的操作,就是在Windows环境下,手动将Ubuntu安装ISO中的核心引导文件提取出来,放置到ESP分区,并配置GRUB2去引导它。当电脑启动时,GRUB2菜单会出现一个新增选项,选择它,就会从硬盘上的ISO文件启动Ubuntu安装程序。

2.2 准备工作清单

在开始动手前,请确保准备好以下内容,并理解其作用:

  1. 一个健康的Windows系统:建议是Windows 10或11,并且系统本身运行正常。这是我们的操作基础平台。
  2. Ubuntu桌面版ISO镜像:从Ubuntu官网下载你需要的版本,例如ubuntu-22.04.4-desktop-amd64.iso务必确认下载的是“Desktop”版本,因为服务器版(Server)的ISO引导方式不同,不适用于此方法。将下载好的ISO文件放在一个容易找到的位置,比如D:\根目录。记住它的完整路径。
  3. 磁盘空间
    • 空闲的未分配空间:用于安装Ubuntu系统。建议至少预留50GB。这可以通过Windows的“磁盘管理”工具压缩现有分区获得。
    • 临时空间:需要至少8GB的可用空间,用于存放从ISO中提取的引导文件和解压后的临时文件。通常系统盘(C盘)有足够空间即可。
  4. 软件工具
    • 7-Zip或同类解压软件:用于解压ISO文件。
    • EasyUEFI(免费版即可):用于可视化地管理UEFI启动项。这是后面修复引导的关键工具。
    • DiskGenius(或使用Windows磁盘管理):用于更直观地查看和管理分区,特别是ESP分区。Windows自带的磁盘管理有时无法直接操作ESP分区。
  5. 备份!备份!备份!:任何涉及磁盘分区和系统引导的操作都有潜在风险。请务必备份好Windows系统盘(通常是C盘)上的重要数据。虽然此方法相对安全,但防患于未然是资深玩家的第一准则。

注意:如果你的电脑是陈旧的传统BIOS(Legacy BIOS)启动方式,此方法不适用。请确认你的电脑启动模式为UEFI。可以在Windows中运行msinfo32,查看“BIOS模式”一项,显示为“UEFI”即符合条件。

3. 详细操作步骤全解析

3.1 第一步:为Ubuntu准备磁盘空间

这是安装任何双系统的必经之路,目的是在硬盘上划出一块“空白地带”给Ubuntu使用。

  1. 在Windows搜索框输入“磁盘管理”,打开“创建并格式化硬盘分区”。
  2. 找到你打算分割的分区(通常是数据盘D盘或E盘),确保其中有足够的剩余空间(大于你打算给Ubuntu的空间)。
  3. 右键点击该分区,选择“压缩卷”。
  4. 在“输入压缩空间量”处,填入你想要分配的大小(以MB为单位,例如102400MB约等于100GB)。系统会计算可用空间,给出一个最大值,你填入的值不能超过它。
  5. 点击“压缩”。完成后,你会看到磁盘布局中出现一块标有“未分配”的黑色区域。到此为止,不要在这个未分配空间上创建新卷!保持其未分配状态,Ubuntu安装程序会自动识别并利用它。

实操心得

  • 建议从数据盘而非系统盘压缩空间,风险更小。
  • 如果你打算让Ubuntu使用单独的分区存放个人文件(/home),可以多分一些空间。一个合理的分配是:根目录/分配30-50GB,交换空间swap分配4-8GB(如果内存大于8GB,交换空间可以小一些甚至不要),剩余的全部分给/home。不过我们可以在安装时再详细设置。

3.2 第二步:提取并放置Ubuntu引导文件

这是整个方法中最关键的一步,目的是把U盘里的“灵魂”请到硬盘里来。

  1. 挂载并探索ISO:右键下载好的Ubuntu ISO文件,选择“装载”。Windows会将其作为一个虚拟光驱(比如G:盘)打开。或者,你也可以直接用7-Zip打开ISO文件。
  2. 定位核心文件:进入虚拟光驱或ISO压缩包,找到EFI文件夹,再进入EFI/BOOT目录。你会看到几个.efi文件,其中对我们最重要的是grubx64.efi(有时也可能是bootx64.efi)。同时,记住ISO文件本身的路径,例如D:\ubuntu-22.04.4-desktop-amd64.iso
  3. 访问ESP分区:ESP分区在Windows文件资源管理器中通常是隐藏的。我们需要以管理员身份运行DiskGenius。
    • 在DiskGenius左侧的磁盘列表中,找到你的系统盘(通常是Disk 0)。
    • 你会看到一个类型为“EFI系统分区”的小分区(通常100MB-500MB),这就是ESP分区。右键点击它,选择“分配新的驱动器号(盘符)”,例如分配为Z:。这样就能在文件资源管理器中访问它了。
  4. 创建引导目录并复制文件
    • 在文件资源管理器中打开刚刚分配盘符的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

  1. 使用EasyUEFI添加启动项:以管理员身份运行EasyUEFI。
  2. 点击中间面板上方的“管理EFI启动项”。
  3. 点击右侧的“添加”按钮。
  4. 在弹出的对话框中:
    • 类型:选择“Linux或其他操作系统”。
    • 描述:填写一个你喜欢的名字,例如“Ubuntu Installer”。
    • 文件路径:点击浏览按钮,导航到Z:\ubuntu\grubx64.efi(即你刚才复制文件的位置),选中它。
  5. 点击“确定”保存。此时,在EasyUEFI的主列表中,你应该能看到新添加的“Ubuntu Installer”条目。你可以使用右侧的“上移/下移”按钮,调整它的启动顺序。为了接下来方便测试,可以暂时将它移到第一位。

避坑指南

  • 确保选择的.efi文件路径正确。如果路径错误,启动项会创建失败或无法引导。
  • EasyUEFI操作的是UEFI启动列表(NVRAM),这是一个比修改硬盘文件更“底层”的操作,所以需要管理员权限。

3.4 第四步:创建GRUB自定义配置

仅仅添加了启动项还不够,我们需要告诉grubx64.efi具体要做什么。这需要通过一个配置文件来实现。

  1. 创建配置文件:在放置grubx64.efi的同一目录下(即Z:\ubuntu\),新建一个文本文档,将其重命名为grub.cfg注意:必须确保文件扩展名是.cfg,而不是.txt。如果系统隐藏了已知文件扩展名,你需要先在文件夹选项中取消隐藏。

  2. 编辑配置文件:用记事本(或其他文本编辑器)打开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 boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash initrd (loop)/casper/initrd }
  3. 关键参数解释与自定义

    • 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),并传递boot=casper iso-scan/filename=$isofile等参数,让内核知道要从哪个ISO文件启动。

常见问题:如果配置错误,最可能的现象是启动时GRUB报错,提示找不到文件或无法加载内核。此时你需要重新进入Windows,检查grub.cfg中的root设置和isofile路径是否正确。

3.5 第五步:重启并开始安装

完成以上所有步骤后,保存所有文件,关闭所有软件。

  1. 重启电脑:在Windows中点击重启。
  2. 进入启动菜单:在电脑开机自检(POST)后,立即快速连续按你电脑品牌对应的启动菜单键(常见的有F12、F11、Esc等)。如果错过了,也可以进入BIOS/UEFI设置(通常是Del或F2键),在里面找到启动选项。
  3. 选择启动项:在启动菜单中,你应该能看到我们刚才创建的“Ubuntu Installer”选项。选择它,并按回车。
  4. 进入Live环境:如果一切配置正确,你会看到GRUB菜单(可能只有一个选项),然后系统会开始加载,最终进入Ubuntu的Live桌面环境。这个环境和你用U盘启动看到的一模一样。
  5. 开始安装:双击桌面上的“Install Ubuntu”图标,按照图形化向导进行安装。
    • 语言、键盘布局:按需选择。
    • 安装类型:这是关键一步。选择“安装Ubuntu,与Windows Boot Manager共存”。Ubuntu安装程序会自动检测到Windows系统和你之前准备的“未分配空间”,并为你配置好分区和双系统引导。这是最省心、最推荐给新手的选项。
    • 后续步骤:设置时区、创建用户名密码等,按提示完成即可。

实操心得:在安装过程中,如果安装程序提示要关闭“快速启动”或“安全启动”,请按照提示操作。通常“安全启动”可能需要禁用,但Ubuntu新版本对其支持越来越好,可以尝试保持开启,如果安装失败再禁用。

4. 安装后的引导修复与优化

安装完成后,重启电脑,你可能会直接进入Ubuntu,而找不到Windows的启动选项了。这是因为Ubuntu的GRUB安装程序将自己的引导写入了ESP分区,并成为了主引导项,但它可能没有正确探测到Windows。

4.1 修复GRUB以识别Windows

进入Ubuntu系统后,打开终端(Ctrl+Alt+T),执行以下命令:

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”启动项就没用了,可以将其删除,保持启动菜单的整洁。

  1. 回到Windows系统。
  2. 再次以管理员身份运行EasyUEFI。
  3. 在列表中找到“Ubuntu Installer”条目,选中它,点击“删除”。
  4. 同时,你也可以安全地删除之前复制到ESP分区(Z:盘)的ubuntu文件夹和那个巨大的ISO文件,以释放空间。但请务必保留EFI/ubuntu目录(这是安装Ubuntu时自动生成的,里面是真正的Ubuntu系统引导文件),否则Ubuntu将无法启动。

4.3 调整默认启动项与等待时间

如果你希望默认进入Windows,或者觉得GRUB菜单等待时间太长,可以在Ubuntu中进行调整。

  1. 调整默认启动项:编辑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_DEFAULT="Windows Boot Manager"
  2. 调整等待时间:在同一文件中,找到GRUB_TIMEOUT=,后面的数字就是等待时间(秒)。设为5表示等待5秒,设为-1表示一直等待手动选择。
  3. 使更改生效:修改保存后,运行sudo update-grub使新配置生效。

5. 常见问题与深度排查指南

即使步骤清晰,实际操作中也可能遇到各种“妖孽”问题。下面是我总结的一些常见坑点及解决办法。

5.1 启动时黑屏或卡死

  • 症状:选择“Ubuntu Installer”启动项后,屏幕黑屏,只有光标闪烁,或者直接卡住。
  • 可能原因与解决
    1. 显卡问题(尤其是NVIDIA独显):这是最常见的原因。在GRUB菜单出现时(如果一闪而过,在启动时按ShiftEsc键呼出菜单),选中“Install Ubuntu”选项,不要按回车,先按e键进入编辑模式。
    2. 找到以linux开头的那一行,在行末quiet splash后面,先添加一个空格,然后加上nomodeset。这个参数会禁用内核级显卡驱动,使用基础显示模式。
    3. Ctrl+XF10启动。进入Live环境后,安装系统,并在安装完成后,务必在Ubuntu中安装官方的NVIDIA驱动,而不是使用开源的nouveau驱动。可以在“软件和更新”的“附加驱动”选项卡中选择。
    4. 安全启动(Secure Boot)冲突:进入电脑的UEFI/BIOS设置,暂时关闭“Secure Boot”。安装完成并配置好驱动后,可以再尝试开启。

5.2 GRUB报错:file not found 或 disk hd0,gptX not found

  • 症状:启动时GRUB命令行报错,提示找不到文件或磁盘。
  • 可能原因与解决
    1. grub.cfgroot设置错误:这是最可能的原因。重新进入Windows,用DiskGenius确认你的ESP分区是第几个GPT分区。例如,在DiskGenius中看到ESP分区是“分区2”,那么root就应该是(hd0,gpt2)。硬盘序号hd0一般不变。
    2. ISO文件路径或文件名错误:检查grub.cfgisofile的路径和文件名是否与ESP分区中ISO文件的实际位置和名称完全一致,包括大小写。Linux下是区分大小写的。
    3. 文件损坏:重新从官网下载ISO文件,并校验SHA256值。重新复制文件到ESP分区。

5.3 安装程序无法识别Windows或磁盘

  • 症状:在安装类型选择时,没有出现“与Windows共存”的选项,或者磁盘列表为空/异常。
  • 可能原因与解决
    1. Windows快速启动(Fast Startup)的影响:这个功能会让Windows在关机时并非完全关闭,而是进入一种深度休眠状态,并锁住磁盘。这会导致Linux安装程序无法安全地访问和修改磁盘分区。务必在Windows的“电源选项”中,关闭“快速启动”
    2. 磁盘模式为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后无法启动。
  • 可能原因与解决
    1. GRUB未更新:首先尝试在Ubuntu中运行sudo update-grub
    2. 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盘法依然是最稳妥的选择。但掌握了这种方法,意味着你对电脑启动过程的理解上了一个台阶,以后再遇到引导问题,你排查和解决的思路也会清晰得多。我个人在多次使用这种方法后,最大的体会就是:分区路径和文件名一定要核对再三,很多时候错误就出在一个字母或者一个数字上。耐心和仔细,是成功完成这类操作的不二法门。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 22:09:47

Python + OpenAI API 2026 入门:10行代码调用GPT,把AI能力嵌进你的产品

我用 Ollama 在本地跑大模型没问题,模型随便换,流量不花钱,感觉挺好。但要做产品接入 AI 能力,API 是绕不过去的路——本地模型推理太慢,占内存,量化后精度打折扣,最重要的是没法稳定地产品化。…

作者头像 李华
网站建设 2026/8/5 22:07:30

新手必看微网站怎么建设才不落伍?从域名到源码的深度避坑指南,教你用最低成本搭建高转化落地页

在这个移动互联网流量红海几乎被瓜分殆尽的今天,很多老板、微商朋友以及中小创业者都面临着一个非常扎心的现实:投了巨额的广告费,引流来的客户却在最后一道门槛上流失了。为什么?因为你的承接载体太差劲了。很多时候,客户点进你的链接,看到的是一片混乱、加载缓慢,或者…

作者头像 李华
网站建设 2026/8/5 22:02:39

网站建设需要哪些技术

网站建设需要哪些技术大家好,今天咱们不整那些虚头巴脑的理论,也不堆砌那些让人看着就头晕的术语。我就是一个在行业里摸爬滚打多年的老工匠,见过太多人想做个网站,结果要么被服务商忽悠得天花乱坠,要么自己捣鼓半天,最后连个能打开的页面都没有。其实,扒开那些华丽外衣…

作者头像 李华
网站建设 2026/8/5 21:59:27

True Sass测试教程:从安装到运行的完整流程解析

True Sass测试教程:从安装到运行的完整流程解析 【免费下载链接】true Sass unit tests 项目地址: https://gitcode.com/gh_mirrors/tr/true True是一款专为Sass打造的单元测试工具,让开发者能够通过编写Sass测试代码,确保样式代码的准…

作者头像 李华
网站建设 2026/8/5 21:59:04

Python包管理实战:让pip保持“温柔”的完整指南

1. 先搞清楚“teeteepor”和陈艺迪是谁,以及为什么这个标题会出现在技术社区如果你在技术博客或社区看到这个标题,第一反应可能是困惑。一个看起来像个人名或昵称的“teeteepor”,加上一句“pip从来没有凶过我呢”,以及“温柔善良…

作者头像 李华
网站建设 2026/8/5 21:59:00

libcstl未来展望:v2.3.0新特性与社区贡献指南

libcstl未来展望:v2.3.0新特性与社区贡献指南 【免费下载链接】libcstl 项目地址: https://gitcode.com/gh_mirrors/li/libcstl libcstl是一个C语言实现的标准模板库,为开发者提供了丰富的数据结构和算法支持。本文将详细介绍libcstl v2.3.0版本…

作者头像 李华