我目前正在尝试从 Windows 命令行/powershell 完成以下操作 - 从 ISO 创建可启动分区,为其添加启动项并从中启动。需要注意的是,ISO 通常包含一个小型 Linux 发行版。所有操作都必须通过命令行、通过另一个应用程序(如果重要的话,是 Windows 服务)完成。
我目前的进展:
- 获得了 DBAN 的 ISO 文件(或其他擦除程序,无所谓)——完成。
- 创建分区 - 完成
diskpart
。我创建了一个primary
大小为 10 GB 的分区。格式为 FAT32。为其分配了一个字母,我们称之为X:
- 通过 (Powershell) 挂载 ISO 文件
Mount-DiskImage
- 将映像挂载到新卷上,稍后我可以通过 找到它。现在wmic
让我们命名 ISO 的卷。Y:
- 将文件从“iso 分区”复制
X:
到xcopy Y:\*.* X: /s/e/f
- 使用 bcdedit 创建启动项,使用以下命令:
bcdedit /create /d "DBAN_Test" /application bootsector
- 产生 guid,我将为其使用 {ID}。bcdedit /set "{ID}" device partition=X:
bcdedit /set "{ID}" path \ISOLINUX.BIN
例如X:\ISOLINUX.BIN
之后的输出示例bcdedit
(针对新条目):
Real-mode Boot Sector
---------------------
identifier {ID}
device partition=X:
path \ISOLINUX.BIN
description DBAN_TEST
但是,当我从启动选项中选择它时,它给出了以下错误:
isolinux: Failed to locate CD-ROM device; Boot failed.
我想说的是,我已经设法使用 EasyBCD(GUI 程序)实现了这一点,并且它成功启动了 DBAN。我假设它正在执行我已经执行的一些命令。它AutoNeoGrub0.mbr
在 中创建了一个文件C:\NST\
,并将其用作path
BCD 条目中的条目。但是,EasyBCD 在我的情况下不可用,我只是想检查它创建了哪些条目,我也不知道如何创建像 这样的 MBR 文件AutoNeoGrub0.mbr
。
任何有关我错处的建议或帮助都将不胜感激。提前致谢。
答案1
我已经设法使用 来做到这一点GRUB4DOS
。这是我所做的:
- 下载
GRUB4DOS
并解压到C:\
bcdedit
创建一个具有和的path \grldr.mbr
启动项device partition=C:
(将其命名为 WipeISO)- 编辑内容
menu.lst
如下:
color blue/green
timeout 5
default /default
title Boot Windows
fallback 2
find --set-root --ignore-floppies /bootmgr
chainloader /bootmgr
savedefault --wait=2
title Wipe ISO
find --set-root /iso/WipeISO.iso
map -heads=0 --sectors-per-track=0 /iso/WipeISO.iso (hd32)
map --hook
chainloader (hd32)
重启后,我得到 2 个选项 - Windows 和 WipeISO。选择第二个选项可成功运行擦除程序/发行版。