如何在 MS-DOS 中擦除分区表?

如何在 MS-DOS 中擦除分区表?

有没有办法在 MS-DOS 中清除分区表?我试过查看 fdisk 命令,但这是一个交互式界面。我想要一个不显示任何输出并且不需要用户输入的单个命令。

答案1

MS-DOS 附带一个名为 的程序debug。使用它以交互方式擦除 MBR 的说明可以在很多地方找到,并且可以使用 从文件提供相同的输入debug < script.txt

注意:这将删除整个 MBR – 分区表引导加载程序代码。

复制到脚本文件中后,相同的命令如下所示:

时间 9000:0 200 0            ;将 0x9000:0x0000 处的 512 个字节清零
A                         ;进入汇编模式
移动 dx,9000               ;dx=0x9000
移动,dx                 es=dx
异或bx,bx                 ;bx=0x0000
移动 cx,0001               ;ch=0x00(磁道号)cl=0x01(扇区号)
移动 dx,0080               ; dh=0x00 (磁头号) dl=0x01 (驱动器号)
mov ax,0301               ;ah=0x03(写入扇区)al=0x01(扇区数)
int 13                    INT 13 小时BIOS 磁盘访问
int 20                    ;INT 20h 退出程序
                          ; 空行
G

注意:我怀疑直接使用以下方法将归零内存写入扇区 0:“写入扇区”命令比运行自定义汇编代码要简单得多,但我实际上没有 MS-DOS 系统来测试这一点。

时间 9000:0 200 0            ;将 0x9000:0x0000 处的 512 个字节清零
瓦特 9000:0 1 0 1            ;将 1 个扇区写入驱动器 1

另请参阅:有关更多信息如何使用 DEBUG

相关内容