Мне нужно очистить сектор 0 для съемных носителей (пользовательских USB-накопителей), которые я пытался очистить в приложении WPF/C#. Моей первой попыткой было использовать DD, но я столкнулся с проблемами. Во время производства устройств MBR создается в секторе 0, а том (логический?) начинается в секторе 40. Когда я ввожу следующую команду, она очищает сектор 40, а не сектор 0: dd bs=512 count=1 if=/dev/zero of=\.\E:
Я нашел другую версию DD здесь, которая включает утилиту очистки. Я пробовал эту версию, и я вижу то же самое поведение. Я использую как HxD, так и DiskExplorer Runtime, который очищает сектор 40, а не сектор 0. Я мог бы использовать HxD или DiskExplorer Runtime, но это должно быть написано в сценарии.
Кто-нибудь знает какие-либо другие методы очистки (заполнения) сектора 0 в Windows XP SP2?? Любая помощь будет принята с благодарностью. Спасибо.
Отметить
Решение: Мое решение использовало WMI для поиска физического диска на основе буквы логического диска. Сначала запросите класс Win32_LogicalDiskToPartition, чтобы найти искомый логический диск. Это обеспечивает поле Antecedent, которое содержит что-то вроде «...DeviceID="Disk #X, Partition #Y"'. Затем я запрашиваю класс Win32_DiskDriveToDiskPartition при поиске в поле Dependent, чтобы найти соответствие для поля Antecedent в классе Win32_LogicalDiskToPartition. После обнаружения поле Antecedent из Win32_LogicalDiskToPartition даст физический диск. Я выбрал atzz, так как это близко к моему решению. Я хотел воспользоваться предложением Юджина, но у меня было всего несколько часов, чтобы реализовать это, поэтому я выбрал более простой вариант из двух. Однако мне нужно будет вернуться к этому позже.