Я работаю над встроенной системой с версией busybox dd. Я пытаюсь проверить удаление на диске с помощью какой-либо внешней утилиты, однако dd больше не читает с диска после стирания, но показывает мне кэшированные данные.
Я сузил его до dd, как когда я делаю начальный dd, просматриваю данные, перезагружаю систему, чтобы очистить кэш, стираю, а затем снова запускаю dd, он обнаружил все нули.
Однако, если я выполню dd на заводских настройках, сотру диск и снова выполню dd без перезапуска, он не покажет мне все нули до перезагрузки.
Я прочитал на man-странице GNU, что dd поддерживает iflag opt с флагом nocache, но busybox не поддерживает эту опцию, так что об этом не может быть и речи.
У меня вопрос, как я могу заставить dd снова читать с диска, а не из кеша?
Ответы:
Вы могли бы попробовать
который сбрасывает все виды кешей.
Подробнее см.
/usr/src/linux/Documentation/sysctl/vm.txt
Наdrop_caches
.(Примечание: речь шла о busybox dd, который до сих пор не поддерживается
iflag=direct
.)источник
/proc
файловая система отключена в некоторых встроенных конфигурациях Linux.dd
в процессе передачи большого объема данных.Основано на ответе @ sendmoreinfo:
Это не влияет на чтение-кеш.
источник
Прямой ввод / вывод (открытый режим
O_DIRECT
) должен работать, но ваше ядро и / илиdd
может не поддерживать его.источник
Небольшой рост к iflag = прямой ответ; также предоставьте индикатор выполнения:
Без iflag / oflag pv сообщает, что он закончен, а затем выглядит как зависший; но дд к устройству все еще работает на кеш.
источник