有没有办法在 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。