linux下如何硬盘安装windows

老刘

Linux 下如何从硬盘安装 Windows 系统

在 Linux 系统下,不借助 U 盘或光盘,直接从硬盘安装 Windows,听起来像是高级操作,但其实只要掌握方法,普通用户也能轻松完成。这种需求常见于想体验双系统、临时需要 Windows 环境,或手头没有移动存储设备的用户。今天,我就以一个老玩家的身份,带你一步步实现这个目标。

一、 准备工作:理清思路与必备材料

在开始之前,你必须明白一件事:这个过程会修改你的引导程序(如 GRUB),并涉及分区操作,存在一定风险。 因此,第一步永远是备份重要数据。

你需要准备以下几样“材料”:

  1. 一个可启动的 Windows 安装镜像(ISO 文件):从微软官网下载你需要的 Windows 10 或 Windows 11 ISO 文件。这是核心。
  2. 一个空闲的硬盘分区:用于安装 Windows 系统。如果硬盘空间全部分配给了 Linux,你需要先从现有分区中压缩出一部分空间(建议不少于 64GB)。这可以在 Linux 的 GParted 图形化分区工具中完成,操作直观。
  3. GRUB2 引导程序:绝大多数现代 Linux 发行版(如 Ubuntu、Fedora、Manjaro)都使用它。我们的方法就是利用 GRUB2 来加载 Windows 安装镜像。
  4. 基本的 Linux 命令行操作能力:需要打开终端(Terminal)输入几条命令,别担心,我会给出详细代码。

二、 详细安装步骤(以 Ubuntu 为例)

整个流程分为三个阶段:放置文件 -> 配置引导 -> 安装系统

阶段一:放置 Windows 安装文件

  1. linux下如何硬盘安装windows

    挂载 Windows ISO 文件: 首先,你需要查看一下 ISO 文件的内容。在终端中,创建一个临时挂载点并挂载 ISO。

    sudo mkdir /mnt/winiso
    sudo mount -o loop /path/to/your/windows.iso /mnt/winiso

    请将 /path/to/your/windows.iso 替换为你实际的 ISO 文件路径,例如 /home/你的用户名/Downloads/win10.iso

  2. 复制核心安装文件: Windows 安装需要一些特定的引导文件。我们需要将它们复制到 Linux 的根分区(通常是 /)下。这里我们在根目录创建一个新文件夹来存放它们。

    sudo mkdir /win-install
    sudo cp -r /mnt/winiso/* /win-install/

    这条命令会将 ISO 中的所有文件复制到 /win-install 目录。

  3. 解压启动镜像: Windows 安装镜像里有一个名为 sources/install.wim(或 install.esd)的庞大文件,它是系统的核心映像。对于某些引导方式,我们需要一个较小的 boot.wim。实际上,对于从硬盘启动安装程序,我们更常用的是 bootmgrboot 目录。但为了 GRUB 能正确引导,我们通常使用 wimboot 方法。一个更通用的方法是直接使用 ISO 文件本身。我们采用一个更简单可靠的方法:将整个 ISO 文件放到一个独立分区

    更优方案:使用独立分区存放 ISO

    1. 使用 GParted 或命令行工具(如 fdisk -l)查看你的硬盘分区,找一个格式化为 FAT32NTFS 的分区(例如,一个闲置的 U 盘分区,或者专门分出一个 8GB 左右的 FAT32 分区)。FAT32 格式兼容性最好
    2. 将下载好的 Windows ISO 文件直接复制到这个分区的根目录。假设这个分区在 Linux 中被识别为 /dev/sda3,你将其挂载并复制:
      sudo mkdir /mnt/winpart
      sudo mount /dev/sda3 /mnt/winpart
      sudo cp /path/to/your/windows.iso /mnt/winpart/
    3. 记下这个分区的标识符:/dev/sda3。同时,记下这个分区在 GRUB 中的命名方式,通常是 (hd0, msdos3)(hd0, gpt3),取决于你的分区表类型(MBR 或 GPT)。hd0 表示第一块硬盘,msdos3 表示 MBR 分区表下的第 3 个分区。

阶段二:配置 GRUB2 引导菜单

这是最关键的一步。我们需要手动为 GRUB 添加一个启动项,让它能够引导我们分区里的 Windows 安装镜像。

  1. 编辑 GRUB 自定义配置文件: GRUB 的主配置文件是 /etc/grub.d/40_custom。我们通过编辑它来添加自定义项。

    sudo nano /etc/grub.d/40_custom

    (如果你习惯 vim,可以把 nano 换成 vim)。

  2. 添加自定义引导条目: 在打开的文件末尾,添加以下内容。这里提供两种常见写法,请根据你的情况选择一种。

    方案 A:直接引导 ISO 文件(推荐,适用于较新 GRUB) 这种方式要求你的 GRUB 支持 loopback 命令,并且 ISO 文件所在的分区能被 GRUB 读取(FAT32/EXT4 通常可以)。

    menuentry "Windows 10/11 Setup (from ISO)" {
        insmod ntfs    # 如果ISO在NTFS分区,加载ntfs模块。如果是FAT32,则是 insmod fat
        insmod loopback
        insmod iso9660
        # 假设你的ISO文件在第一个硬盘的第三个分区(GRUB中为 (hd0,msdos3) 或 (hd0,gpt3)),且分区是FAT32格式
        set root=(hd0,msdos3)
        # 将 ISO 文件设置为回环设备
        loopback loop /windows.iso
        # 从回环设备启动
        chainloader (loop)/bootmgr.efi    # 如果是 UEFI 引导模式
        # 如果是传统的 Legacy BIOS 引导模式,使用下面这行:
        # ntldr (loop)/bootmgr
    }

    重要说明

    • (hd0,msdos3)hd0 是第一块硬盘。msdos 表示 MBR 分区表,如果是 GPT 分区表,则写 gpt3 是分区编号,GRUB 的分区编号从 1 开始,而不是 0。你可以通过重启时按 C 键进入 GRUB 命令行,输入 ls 来查看正确的分区标识。
    • /windows.iso:这是 ISO 文件在分区根目录下的名字,请确保名字正确。
    • bootmgr.efibootmgr:UEFI 引导模式用 .efi 后缀,Legacy BIOS 模式不用。请务必确认你的电脑引导模式。在 Linux 中,可以通过检查 /sys/firmware/efi 目录是否存在来判断:ls /sys/firmware/efi,如果目录存在,则是 UEFI 模式。

    方案 B:使用 wimboot 方法(更传统,兼容性广) 这种方法需要先提取 ISO 中的 bootmgrboot 文件夹和 sources/boot.wim 文件到某个分区(比如之前提到的 /dev/sda3),然后配置 GRUB 加载它们。操作稍复杂,但稳定性高。由于篇幅限制,这里简述思路:你需要从 ISO 中提取上述文件到 FAT32/NTFS 分区,然后使用 grub2linuxinitrd 命令加载一个特殊的 wimboot 内核来启动 Windows 安装程序。对于新手,方案 A 更直接

  3. 更新 GRUB 配置: 保存并关闭编辑器(在 nano 中按 Ctrl+X,然后按 Y 确认,再按 Enter)。然后,必须运行以下命令使新配置生效:

    sudo update-grub

    如果系统提示 Command 'update-grub' not found,可以尝试 sudo grub-mkconfig -o /boot/grub/grub.cfg(Arch Linux 等)或 sudo grub2-mkconfig -o /boot/grub2/grub.cfg(Fedora、CentOS 等)。

阶段三:重启并安装 Windows

  1. 重启电脑。在出现 GRUB 引导菜单时,你应该能看到新添加的 “Windows 10/11 Setup (from ISO)” 选项。用方向键选中它,按 Enter 启动。
  2. 此时,你应该会看到熟悉的 Windows 安装界面。
  3. 在安装过程中选择自定义安装
  4. 在分区选择界面,务必小心!选择你之前准备好的那个空闲空间打算抹掉的分区来安装 Windows。千万不要选错分区,否则会覆盖你的 Linux 系统
  5. 按照屏幕提示完成 Windows 的安装。

三、 安装后的重要收尾工作

  1. 修复引导:Windows 安装完成后,其引导程序会覆盖 GRUB,导致你只能进入 Windows。这时你需要用 Linux 的 Live USB 启动,然后使用 chroot 环境重新安装和配置 GRUB。或者,在 Windows 下使用 EasyUEFI(UEFI 模式)或 EasyBCD(Legacy 模式)等工具手动添加 Linux 引导项。这是一个独立的话题,操作前请务必搜索“Windows Linux 双系统 修复 GRUB”获取详细教程
  2. 清理文件:安装成功后,你可以删除之前复制到分区里的 Windows ISO 文件以及 /win-install 目录(如果创建了的话),释放磁盘空间。
    sudo rm -rf /win-install
    sudo umount /mnt/winiso /mnt/winpart
    sudo rmdir /mnt/winiso /mnt/winpart

给新手用户的特别提醒与避坑指南

  • 数据备份是铁律:再次强调,操作分区和引导有风险,重要文件务必提前备份到云端或移动硬盘。
  • 确认引导模式:UEFI 还是 Legacy BIOS?选错引导文件会导致黑屏或报错。在 Linux 终端用 ls /sys/firmware/efi 判断是最准的方法。
  • 分区标识要搞对(hd0,msdosX) 是 GRUB 的“语言”,和你平时看到的 /dev/sdaX 是两套体系。进入 GRUB 命令行用 ls 查看是最稳妥的。
  • ISO 文件放对位置:放在一个独立的 FAT32 分区根目录,是最不容易出问题的方式。放在 Linux 的 Ext4 分区里,GRUB 的 loopback 可能无法识别 NTFS 内的文件。
  • 如果失败了:别慌张。你只是修改了 GRUB 配置,并没有损坏系统。重启后仍然可以选择原有的 Linux 系统启动。然后检查上面的步骤,尤其是 GRUB 菜单项的配置和 ISO 文件路径是否正确。
  • 备选方案:如果多次尝试硬盘安装不成功,制作一个 Windows To Go 的 U 盘,或者用 Ventoy 这种多合一启动 U 盘工具,往往是更简单快捷的替代方案。

通过以上步骤,你应该能在 Linux 环境下,不依赖外部介质,成功从硬盘安装 Windows 系统。这个过程虽然有些技术性,但一步步跟着做,成功后的成就感也是满满的。祝你一次成功!

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,8人围观)

还没有评论,来说两句吧...

目录[+]