Gea*_*rus 13 linux boot partitioning multi-boot bootmgr
我最近拿到了其中一款SanDisk Extreme 64GB 记忆棒并开始修修补补。在这个故事中,请记住,这是一个将removable位设置为的模型0(这意味着 Windows 默认看到其所有分区 - 每个分区在资源管理器中显示为单个磁盘)。
现在,这一切都可以通过使用SYSLINUX和GRUB的组合轻松实现(您将在下面看到)。然而,有一个问题:所有基于 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 个声望才能发布图像:(。这是可视化的方案。
描述:
/bootmgr引导扇区(不要问为什么有这么多引导加载程序——这是一个测试设置:))。除了下面的问题(目标 2)外,效果很好。/bootmgr. 除了下面的问题(目标 2)外,效果很好。现在一切似乎都正确(并且确实有效)...除了GOAL 3。
hiddenflag 将这些分区从 Windows 的视线中隐藏起来,效果很好,甚至太好了。它还使 Windows 安装程序无法看到它们。当我尝试从隐藏分区安装 Windows 时,安装程序基本上没有找到从 :O 启动的位置。这是关键问题。bootmgr100% 的时间都在这里战斗)或chroot以bootmgr某种方式使其变得理智?这可以执行吗?我认为这仍然给我留下了一个问题,即分区仍然隐藏,安装程序可能看不到它bootmgr,尽管这是一个非常大胆的假设:)如果对此有任何其他建议,非常欢迎您在这里讨论。我愿意接受任何建议。如果有什么需要澄清或必须提供额外信息 - 随时询问。
非常感谢!
经过漫长而最终成功的旅程,我已经能够实现这一切。
我创建了一个关于如何执行此操作的教程。一探究竟。
根据请求,我还在下面发布了整个内容:
首先:您需要一台装有 Windows 7/8 的 PC 并对其进行管理访问(Vista 可能工作,不确定)。这是本教程将执行的地方。
为了执行我们需要的所有软件包,它也在GitHub 上进行了镜像(单击下载 ZIP)。[0](从现在开始,引用将被标记为[])。要下载它,您可能需要在那里注册(不知道为什么)。
软件包包括:
此外,您需要下载以下内容:
可选(我推荐的软件将使过程更容易和更灵活,但不是必需的):
.iso用于分区和设置分区标志(类似物包括最近决定付费的Parted Magic或较小的Partition Wizard,但请记住它不是 Gparted,您必须有一些经验才能操作它)。[5]当然还有一些 Windows 安装程序.iso以及一些可引导的 Linux 发行版。这些可以是 YUMI 和 SYSLINUX 支持的任何东西(您将能够在本教程的后面部分查看)。
下载所有这些后,您就可以进行下一步了。
在此,将简要讨论操作方案。
此处讨论的方案是我用于设置的方案。这当然不是实现相同目标的唯一方法。我会尽力尝试解释它,以便您可以根据需要自定义设置。
这个过程似乎在图片中得到了最好的描述。(对不起,Paint,图形设计并不是我的强项):

差不多就是这样。我真的不知道如何更好地解释它。我会一直关注这个话题,有问题可以在回复中提问。
[配置软件]
YUMI.exe和所有其他东西)。双击它并解压缩到同一文件夹。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...Run Code Online (Sandbox Code Playgroud)[分区]
存储分区是32GB NTFS,启动分区是15GB FAT32(它没有像 G 这样的字母:因为它已经设置了隐藏标志,稍后您将了解这一点)。如果您使用的是大磁盘,最好将引导分区放在首位,因为某些 BIOS 无法读取超出特定范围的内容。
这里,磁盘号是 2,引导分区号是 1。[添加基本引导环境(YUMI)]
YUMI.exe。.iso图像。屏幕将如下所示:

start_admin.cmd 以管理员身份运行。这对其操作至关重要,右键单击它并选择以管理员身份运行:

[注意] 同样,如果您在此步骤或任何其他地方未能指定正确的磁盘和分区编号,我对您的磁盘(包括本教程中未提及的磁盘)发生的情况概不负责。
n这里(如果您按下y,稍后可能会出现意外的副作用,只有在您知道自己在做什么时才这样做)。[添加基于 Windows 的安装程序 (WinSetupFromUSB)]
.iso此示例几乎 100% 相同(磁盘和路径除外):

[ 定稿 ]
<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=/bootmgrRun Code Online (Sandbox Code Playgroud)
最好在此代码前后添加一个空的换行符。如果您愿意,可以调整菜单项标签。保存并关闭文件。<drive root>\boot\bcd在引导分区上找到文件:

注意:如果您只有 1 个安装程序,它会在您按下您添加的菜单条目后立即加载,而根本不syslinux.cfg 显示任何菜单。此外,您可能希望在要设为 default的任何菜单项上按Set as default。单击关闭并退出Bootice工具。也退出WinSetupFromUSB。[清理(可选)]
\boot
\efi
\multiboot
\WINSETUP
\bootmgr
Run Code Online (Sandbox Code Playgroud).disk
\default
\grldr
\menu.lst
\plpbt.bin
\shifthd.bat
\usbdrive.tag
Run Code Online (Sandbox Code Playgroud)
随意删除它们。此外,Windows 可能会创建其愚蠢的系统卷信息- 如果幸运的话,您也可以将其删除。此外,这也是您可以将启动分区从MULTIBOOT重命名为任何其他名称的地方(我更喜欢简单的Boot)。您可以像通过 Windows 资源管理器处理任何文件夹一样执行此操作。[隐藏启动分区(可选)]
就是这样。您的分区不再在大多数系统上自动安装(不会有驱动器号),并且引导驱动器所需的文件不会被意外更改。另外,我宁愿保持vmount(程序[3]在软件部分),以能够快速安装Windows下的隐藏分区,如果我需要。
差不多就是这样,如果您发现任何误解或错误,请随时在此处发布。此外,欢迎提出问题和反馈。
Wonko , erwan.l , ilko , Steve - reboot.pro 社区的成员,他们在这个主题中给了我极大的帮助。旅程到此结束:)
马里奥在这个原始问题中对 BCD 文件、它们的目的和编辑它们的方法进行了教育。这就是旅程开始的地方。
修复了缩进错误的Ricky。
| 归档时间: |
|
| 查看次数: |
6334 次 |
| 最近记录: |