我设法让 USB 闪存驱动器的前 0x7E00 字节(63 个扇区)对 Windows XP 中的每个程序都不可见。我尝试了大约 15 种不同的磁盘编辑器,并尝试了许多 MBR 修复选项等等,但似乎都认为磁盘的起始位置比实际位置晚 0x7E00 字节。XP 中的格式化选项(无论是将其格式化为 FAT 还是 NTFS)都可以“正常工作”,我甚至可以在其上添加文件,但仍然存在不可见扇区的问题(Windows 确实假装磁盘从那里开始)。HxD 十六进制编辑器显示比以前少 0x7E00 字节。带有 \.\PhysicalDriveX 的 CreateFile API 也是如此。我尝试使用 3 个不同的安装程序安装可启动 Linux,但都将其安装在错误的位置(我知道这是错误的,因为如果我尝试从它启动,它不会启动到 Linux,而是启动到包含垃圾代码的旧 MBR)。弄乱 BIOS 选项没有任何作用。尝试使用“Rufus”格式化选项 FAT 和 NTFS 格式化,结果和其他所有格式化一样错误,但 exFAT 出现“格式化时出现未确定的错误”,日志显示有 63 个隐藏扇区。我该如何将这 63 个扇区归零或以其他方式覆盖,或者让它们再次可见?
答案1
我心里有一个选择。
创建一个包含 512 个 0 的二进制文件,假设它是 X.bin
现在使用 dd 将文件复制到前 63 个扇区
sudo dd if=/home/user/X.bin of=/dev/sdc bs=512 count=63
这里 /dev/sdc 是您的 pendrive。
如果您不了解创建二进制文件的过程,请发表评论。