Как отключить кеширование для usb устройства при записи на него?
У меня проблемы с переносом двоичных программ на макетную плату микроконтроллера при использовании ubuntu/kubuntu для монтирования платы через usb. С MacOS и Windows проблем нет. Я обнаружил, что запись из Ubuntu определенно меняет записанный файл. Я подозреваю, что проблема заключается в кэшировании записи. Как я могу отключить его, или в чем еще может быть проблема.
2 ответа
Сначала прочтите это: http://groups.google.com/group/linux.kernel/msg/8d1591196c0ae15e?pli=1
Я не уверен, правда это или нет.
Вы можете попробовать использовать hdparm, чтобы отключить функцию кэширования записи во время выполнения. (Вам, вероятно, понадобится запускать это после каждой загрузки или каждый раз, когда вы удаляете и повторно устанавливаете устройство)
sudo hdparm -W 0 /dev/devicename
Пожалуйста, убедитесь, что вы знаете правильное имя устройства ( sdb
, sdc
или так далее).
Вы можете узнать имя устройства, запустив:
sudo fdisk -l
Вы также можете редактировать /etc/fstab
и добавьте параметры монтирования sync,dirsync
Однако я не очень знаком с тем, как /etc/fstab
работает со съемными устройствами. Я думаю, что им нужна постоянная точка монтирования.
Слава @NightwishFan для переключателя hdparm, чтобы установить функцию кэширования записи диска.
Обратите внимание, что sync
опция монтирования уменьшает скорость на величину (более 10 раз). flush
Опция монтирования обеспечивает эффективную запись без затрат производительности. Также я использую его без проблем в течение нескольких лет на всех устройствах FAT (на основе вращения или флэш-памяти), которые я использовал: На самом деле весь набор параметров монтирования noauto,users,noatime,flush,umask=111,dmask=000
установить вручную или в /etc/fstab.
Я заменил "синхронизацию" на "noatime,flush", как указано в ответе @tuk0z.
Это приводит к тому, что USB-флоппи-дисковод ведет себя так же, как синхронизация, но записывает файлы намного быстрее, как вы ожидаете при нормальной скорости работы.
Чтение файлов изображений с дискеты больше не приводит к случайным артефактам. Также чтение DD дискет не приводит к появлению странных символов в именах файлов.
Возможно, немного прискорбно, что официальная документация "mount" помещает использование в контекст.
Престижность!