USB-накопитель вытащен (не размонтирован), но я все равно могу получить доступ к нему. Как определить эту ситуацию программно?

Я на кубической доске (одноплатный компьютер, такой как Raspberry Pi), на котором работает производное Debian под названием cubian

Linux Cubian 3.4.79-sun4i #1 PREEMPT Wed Feb 25 08:50:31 UTC 2015 armv7l GNU/Linux 

USB-диски автоматически монтируются в подкаталог / media через udevil .

Я пытаюсь управлять этим как киоск (у пользователя нет доступа к оконной системе и т. Д.), Поэтому мне нужно реагировать на ситуации программно. Недавно во время тестирования в моем коде появилась ошибка, указывающая на наличие более одного каталога в / media. Я входил, и, действительно, там было два каталога. Я сказал себе: «Да, но один из них – просто устаревший остаток невосстановимого диска, поэтому каталог будет пустым [я видел этот случай раньше], и мне просто нужно добавить код, чтобы проверить, ,

К моему удивлению, каталог не был пустым, и не только я смог получить листинг, я смог открыть и прочитать содержимое файла. Этот вопрос описывает аналогичную ситуацию.

Я предполагаю, что это какой-то кеш, к которому я обращаюсь. Есть ли способ, чтобы я мог программно обнаружить эту ситуацию?

Я не беспокоюсь о том, чтобы очищать каталоги, насколько я знаю, какой из них действительно соответствует физически установленному диску.

К сожалению, я не знаю, как воспроизвести это – я попытался убить udevil и установить его вручную с помощью mount а затем вытащить его, и файлы исчезли.

Если бы был надежный способ воспроизвести его, я мог бы проверить некоторые вещи (например, посмотреть, не срабатывает ли touch команда, но не висит, может быть?), Так что это также будет полезным ответом.

  • Нельзя использовать fatsort как непривилегированный пользователь больше
  • USB-накопитель не обнаружен на Antergos после его использования в Windows 8.1
  • Ubuntu 11.04 и большие внешние диски
  • USB отключает защиту от записи
  • Создайте образ «живого USB-накопителя» без фактического использования палки
  • Как полностью перестроить загрузочный раздел с помощью grub?
  • Почему в LiveUSB используются файловые системы squashfs (и аналогичные)?
  • Разрешения на USB-накопитель при автомонтировании
  • One Solution collect form web for “USB-накопитель вытащен (не размонтирован), но я все равно могу получить доступ к нему. Как определить эту ситуацию программно?”

    Единственный способ, которым это может произойти, – это если в файле было записано что-то, а диск был отключен. Если ничего не установлено, система Linux увидит папки в / media как обычные папки с обычными файлами в ней.

    В Linux вполне возможно использовать один каталог как обычный каталог и точку монтирования для дисков или сетевых дисков по одному за раз.

    Редактировать:

    побочный эффект кеширования, упомянутый в другом сообщении, можно решить, выполнив $ sync перед размонтированием. То, что они описывают, – это кеш, который очищается после размонтирования, с тем, что файл записывается в обычную папку, как я описал ранее.

    Пожалуйста, не голосуйте без объяснения причин.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.