目标:

目标:

我最近拿到了其中的一个SanDisk Extreme 64GB坚持并开始对其进行修补。在这个故事中,请记住这是一个removable位设置为的模型0(这意味着 Windows 默认看到其所有分区 - 每个分区在资源管理器中显示为单个磁盘)。

目标:

  1. 在单个存储棒上安装多个不同的可启动发行版
  2. 其中应该包括 Windows 7 安装程序和 Windows 8 安装程序
  3. Windows(最好是其他操作系统)中应仅自动安装一个分区 - 第一个分区(文件存储)。这是为了防止意外更改可引导分区或其中的文件。它应为 NTFS 类型。
  4. 或者,我还希望在此棒上直接启动完全持久的 Linux(最好是 Ubuntu)。
  5. 所有这些功能都应该可以在从 USB 启动机器时显示的单个菜单中找到。

闲聊:

现在,这一切都可以通过使用以下组合轻松实现:系统LinuxGRUB(您将在下面看到)。但是,有一个问题:所有基于 Linux 的可启动项(使用create ramdisk -> load kernel -> have fun方案的项:如 PartEd Magic、Ubuntu Installer 等)似乎都可以毫无问题地从单个可启动分区上的自己的文件夹运行。只需将它们放在不同的文件夹中并将单个 SYSLINUX 菜单项指向它们,它们就可以很好地相处(无论它们之后使用什么,可能只是另一个 SYSLINUX :))。

问题(一如既往:D)出在 Windows 安装程序中。它们(或者我应该说bootmgr)拒绝识别相对路径。如果你将一个 Windows 安装程序放在一个文件夹中,比如说,Win7看起来像/Win7/bootmgr该死的东西\Boot\BCD传递控制时查找(\Win7\Boot\BCD而不是实际存储的位置)。了解了这一点后,自然不能将多个 Windows 安装程序放在单个分区(单个目录结构)上。这违反了目标 2

当前方案:

需要 10 点声望才能发布图片 :(。可视化方案如下。

描述:

  1. 普通 NTFS 分区。您可以随意使用它 - 它不会影响那些敏感的启动链接 :)
  2. FAT32 启动分区。这是从 MBR 转移控制的地方。这个分区必须是主分区,才能从 MBR 转移控制。它包含主 SYSLINUX - 显示菜单的分区(目标 5目标 1)。 以下所有分区均扩展至每个磁盘最多 4 个主分区
  3. Windows 7 安装程序。此分区包含指向其上的 GRUB 的引导扇区,而 GRUB 又指向/bootmgr(不要问为什么有这么多引导加载程序 - 这是一个测试设置 :))。除了以下问题外,运行良好(目标 2)。
  4. Windows 8 安装程序。此分区包含指向 GRUB 的引导扇区,而 GRUB 又指向/bootmgr。除了以下问题外,运行正常(目标 2)。
  5. 持久 Linux 分区,Ubuntu 使用常规方法安装到该分区(从同一个 USB 棒)。它使用 GRUB 来管理其启动菜单。当然也有启动扇区(目标 4)。
  6. Linux 交换区。通常由 Linux 在先前的分区上使用,但不受任何使用者限制。

现在一切似乎都正确(并且确实有效)..除了目标 3

问题:

  1. 我曾尝试使用hidden标志来隐藏这些分区,使其不被 Windows 看到,效果很好,甚至好得过头了。它还将它们隐藏在 Windows 安装程序的视线之外。当我尝试从隐藏分区安装 Windows 时,安装程​​序基本上找不到它从哪里启动 :O。这是批判的问题。
  2. 我使用了 2 个额外的分区来存放 Windows 安装程序。这真的不是一个很好的方案,因为每次我想更改某些东西而这些分区放不下时,我都必须重新分区。这是非关键问题——我可以忍受。

我的想法:

  1. 有些东西就像ISOLINUXGRUB4DOS(当你搜索这个时它们会出现)。据我所知,它们可以帮助我实际安装 Windows 安装程序的可启动 .iso。是真的吗?有些页面包含警告,称像这样安装的映像只能在 BIOS 启动阶段访问 - 当 Windows 安装程序启动时,它将无法看到安装的映像。是真的吗?你能给我指出正确的方向吗?
  2. 也许我可以使用一些适用于 Windows 的自定义安装程序(因为本质上,我bootmgr100% 的时间都在为此而战)或chrootbootmgr某种方式让它变得理智?这可以执行吗?我认为这仍然给我留下了一个问题,即分区仍然隐藏,安装程序可能看不到它
  3. 也许我可以破解路径bootmgr,虽然这是一个相当大胆的假设:)

如果对此有任何额外的建议,欢迎您在这里讨论。我愿意接受任何建议。如果有需要澄清的事情或需要提供更多信息 - 请随时询问。

非常感谢!

答案1

经过漫长而最终成功的旅程,我终于实现了这一切。

我已经创建了一个关于如何执行此操作的教程。 一探究竟。

根据要求,我还将整个内容发布在下面:

软件:

首先:您需要一台装有 Windows 7/8 且具有管理权限的 PC(Vista 可能可以,不确定)。教程将在此进行。

完成我们需要做的一切这个软件包, 也是镜像于GitHub(点击下载 ZIP)[0](从现在起,引用将标记为[])。要下载它,你可能需要在那里注册(不确定为什么)。

该软件包包括:

  • 由美经过pendrivelinux.com[1]
  • 替代文件系统Linux允许按编号启动分区的软件包。[2]
  • 多个脚本和一个可执行文件(包括挂载程序 - 32 位和 64 位版本由 erwan.l 和 sleep 32/64 位提供此主题使这一切发挥作用[3]

此外,您还需要下载以下内容:

  • 安装程序从USB(稍后介绍 WSFUSB)。这个对于该方案的实施至关重要。如果没有,请使用 .exe 版本7zip安装。本教程是在版本 1.4是最新的。[4]

可选(我推荐的软件可以使流程更容易、更灵活,但不是必需的):

  • Gparted 直播 .iso用于分区和设置分区标志(类似包括Parted Magic决定去有薪酬的最近或分区向导它较小,但请记住它不是 Gparted,您必须有一些经验才能操作它)。[5]
  • 记事本++是一款适用于 Windows 的优秀文本编辑器,具有许多插件。[6]

当然还有一些 Windows 安装程序.iso以及一些可启动的 Linux 发行版。这些可以是 YUMI 和 SYSLINUX 支持的任何东西(您将能够在本教程的后面查看到)。

下载完所有这些后,您就可以进行下一步了。

概念:

这里将简要讨论一下操作方案。

这里讨论的方案是我在我的设置中使用的方案。这当然不是实现相同目标的唯一方法。我会尽力解释它,以便您可以根据自己的需要自定义设置。

这个过程似乎最好用图片来描述。(抱歉,Paint,图形设计不是我的强项):

概念

差不多就是这样了。我真的不知道该如何更好地解释。我会监控此帖子,欢迎在回复中提问。

措施:

  1. [ 配置软件 ]

    1. 提取软件包[0]到某个文件夹(上面列出了所需的所有软件,如果你还没有看过的话,可以去看看)。
    2. 提炼安装程序从USB放入同一个文件夹(这样它就位于YUMI.exe所有其他内容旁边)。双击它并提取到同一个文件夹。
    3. 现在拿文件夹安装程序从USB并将其拖到drag_here.cmd文件上。像这样(文件夹结构也应该是这样的): 免打扰 如果您操作正确,将显示一个窗口,表明该过程已完成:
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. 就像它说的一样,按任意键关闭窗口。暂时不要运行start_admin.cmd。转到下一步定义分区结构。
  2. [ 分区 ]

    1. 确定分区结构:你的分区结构应该包括至少 1 个存储分区和至少 1 个启动分区. 启动分区必须是 FAT32 类型(FAT32 的最大文件限制为 4GB,最大卷限制为 32GB,即 32768MB。如果您计划使用更大的文件或卷,则不能使用 NTFS,但可以尝试 exFAT 作为实验 - 我没有尝试过)存储可以是任何东西,但我推荐 NTFS。我的看起来像这样: 结构 贮存分区是32GB NTFS引导分区是15GB FAT32(它没有像 G: 这样的字母,因为它有标志已设置,您稍后会了解这一点)。如果你正在使用大磁盘,最好将启动分区放在首位,因为有些 BIOS 无法读取超出特定范围的内容
    2. 磁盘管理这里描述了方法,但你可以使用你喜欢的任何其他软件来应用分区结构(如Gparted [5]之前提到过或布蒂斯可以从安装程序从USB)。 打开磁盘管理在 Windows 中。这可以通过在开始菜单中搜索来完成(输入磁盘管理)或在 Windows 命令提示符中:磁盘管理
    3. 应用所需的分区结构。右键点击任何分区来管理它。右键单击未分配空间删除分区后留下来创建新分区。始终选择分配驱动器号并且您可以在同一向导中自由地格式化它: 分区创建
    4. 退出磁盘管理之前,记下你的启动分区的编号磁盘编号在系统中。它们在磁盘管理中的样子如下: 指数 在这里,磁盘编号为 2启动分区号为 1
    5. 完成分区方案应用后,是时候让这个驱动器真正可启动
  3. [ 添加基础启动环境(YUMI) ]

    1. 转到文件夹步骤1。 开始YUMI.exe
    2. 查看显示所有驱动器框并从下拉列表中选择您的启动分区。您也可以选择格式它也是如此。
    3. 现在,是时候添加一些基于 Linux 的发行版了。我选择分区向导作为示例(您可以选择任何其他发行版,也可以添加多个,分区向导的链接位于软件部分)。建议此时添加所有基于 Linux 的发行版,因为在磁盘完成后再添加会比较困难
    4. 选择浏览并选择您的.iso图像。屏幕将如下所示: 由美
    5. 点击创造并按照屏幕上的说明进行操作。当系统询问您是否要添加更多时,您可以选择是并重复该过程(重复此过程时,显然不要选择格式化选项)添加另一个分布。
    6. 此时,磁盘即可启动。断开磁盘并重新连接(Windows 需要这样做才能正确检测分区是否为活动分区)。
    7. 转到文件夹步骤1然后运行start_admin.cmd 作为管理员。这对于其操作至关重要,右键单击它并选择以管理员身份运行以管理员身份运行
    8. 它会要求你磁盘编号可引导分区号(步2.4)。重新打开磁盘管理并找到这些数字,就像在步骤 2.4. 指定相应的数字并按进入

    [注意] 再次强调,如果您未能在此步骤或任何其他地方指定正确的磁盘和分区号,我对您的磁盘(包括本教程中未提及的磁盘)发生的任何事情概不负责。


    1. 最后,它会询问您是否要在将可执行文件放入 USB 驱动器之前对其进行压缩。如今,尺寸几乎不再是问题,因此我建议在n此处输入(如果您稍后按下 ,可能会出现意想不到的副作用y,只有当您知道自己在做什么时才这样做)。
  4. [ 添加基于 Windows 的安装程序 (WinSetupFromUSB) ]

    1. 返回同一文件夹,进入无线USB文件夹 (不是 WinSetupFromUSB 文件夹)并运行安装程序适合您的系统架构。
    2. 在最顶部的下拉菜单中选择您的分区。请务必小心操作。
    3. 勾选 Windows 7/8 安装程序旁边的复选框,然后点击右侧的按钮选择您的Windows 安装程序 .iso
    4. 选择高级选项框。确保不检查并安装 grub4dos MBR安装之前启动 Q-Dir
    5. 仔细检查你的设置并确保它们看起来几乎 100% 相同(磁盘和.iso路径除外)此示例: 无线USB
    6. 您也可以选择Vista/7/8/Server 的自定义菜单名称源这样您在启动时选择 Windows 发行版时就能看到自定义名称。
    7. 准备好后,按按钮。如果您在步骤中选择了4.7,它会询问姓名。之后,等待操作完成
    8. 重复您要添加的每个 Windows 发行版的步骤。
  5. [ 最终确定 ]

    1. 此时我们有2 个可引导结构:一个用于 Linux(从 MBR 启动) 和一个用于 Windows 的 (从启动分区上的 bootmgr 启动)。我们需要将它们连接起来。在 Windows 资源管理器中打开可启动分区
    2. 打开文件<drive root>\multiboot\syslinux.cfg。它包含从驱动器启动时显示的菜单的信息。有关它的更多信息可以在这里找到:menu.c32 - syslinux.cfg 语法chain.c32 chainloader 命令。现在,我们需要创建一个菜单项,以便我们启动 Windows 安装程序。在底部(或其他菜单项之间)添加以下几行以创建新的菜单项:
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      最好在此代码前后添加一个空的换行符. 调整菜单入口标签如果你愿意的话。保存并关闭文件。
    3. [从这里可选]打开安装程序从USB再次。我们将删除过时的返回主菜单(Grub4dos)菜单项。选择布蒂斯工具。
    4. BCD编辑。 选择其他BCD文件<drive root>\boot\bcd并在启动分区上 找到文件:布蒂斯
    5. 按 Easy 模式编辑 BCD(启动配置数据)文件: 浮力调节装置 笔记:如果你只有 1 个安装程序,则在你按下添加到的菜单项后,它将被加载syslinux.cfg 不显示任何菜单。此外,您可能还想按设为默认你想做的任何菜单项默认。 点击关闭然后退出布蒂斯工具。退出安装程序从USB也一样。
  6. [ 清理(可选)]

    1. 现在我们需要删除过时的文件。如果你不关心这类事情,你可以跳过此部分。打开你的可引导分区在 Windows 资源管理器中。此外,打开第一个分区在您的驱动器上(它们可能是同一个)。
    2. 此磁盘需要以下文件和文件夹才能运行(如果列出了该文件夹,则需要保留其所有内容):
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. 可以安全删除以下文件和文件夹:
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      随意移除。此外,Windows 可能会创建其愚蠢的系统容量信息- 如果你够幸运的话,你也可以把它移除。另外,此时你可以重命名启动分区多重引导任何其他名称(我更喜欢简单引导)。您可以像通过 Windows 资源管理器对任何文件夹一样执行此操作。
  7. [ 隐藏启动分区(可选)]

    1. 现在你可能想要隐藏启动分区以防止意外更改其中的任何文件。这意味着在插入磁盘时,大多数系统默认不会显示该磁盘,但您仍然可以从中启动。打开安装程序从USB再次。
    2. 打开布蒂斯工具并选择物理磁盘选项卡(如果尚未选择)。选择您的磁盘(小心地)在下拉菜单中。
    3. 点击零件管理按钮。将显示分区列表。
    4. 在列表中找到您的分区并按隐藏按钮。出现确认窗口成功将会弹出。整个过程将如下所示: 隐藏 就是这样在大多数系统上,您的分区不再自动挂载(没有驱动器号),并且启动驱动器所需的文件不会被意外更改

此外,我更喜欢保留挂载程序 ([3]软件我使用一个名为“隐藏分区”的部分来描述我所使用的操作系统,以便在需要时能够快速挂载 Windows 下的隐藏分区。

差不多就是这样了,如果你发现任何误解或错误,请随时在此处发布。此外,也欢迎提问和反馈。

致谢:

旺科erwan.l伊尔科史蒂夫- reboot.pro 社区的成员帮助了我很多此主题。旅程就此结束 :)

鲍勃最初暗示 ImDisk 驱动程序的人这个房间

马里奥谁教育了BCD文件,他们的目的和编辑它们的方法这个原始问题.旅程从这里开始。

瑞奇谁修复了缩进中的错误。

相关内容