Как определить вставку флоппи-диска в RHEL 7 и выполнить скрипт?

У меня есть VM RedHat 7, работающая на инфраструктуре VMware ESXi 6. Мне нужно обнаружить событие вставки гибкого диска, а затем запустить скрипт на основе этого события вставки.

Мой первоначальный подход состоял в том, чтобы попытаться использовать правила Udev, чтобы инициировать выполнение скрипта на вставке флоппи, но это событие никогда не запускается.

/etc/udev/rules.d/99-my.rules

SUBSYSTEM=="block", KERNEL=="fd0", ACTION=="change", RUN+="sh -c /my-custom-script" 

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

 end_request: I/O error, dev fd0, sector0 

Поэтому я обнаружил, что пытаюсь понять, почему правило Удева не работает. Является ли мой подход с правилом Удева неправильным или есть ли другой способ достичь этого?

One Solution collect form web for “Как определить вставку флоппи-диска в RHEL 7 и выполнить скрипт?”

Из того, что я знаю udev, не предоставляет никаких средств для мониторинга дисководов гибких дисков. Дисководы не предоставляют никаких средств для обнаружения вставки, т.е. для обнаружения вставки диска требуется непрерывный опрос привода.

Утилита diskd делает то, что вам нужно. Он непрерывно обследует диск и выдает или выполняет команду при вставке. Он является частью fdutils , который можно установить из репозиториев в Debian. В RHEL / Fedora вам придется скомпилировать источники.

Применение:

 diskd [-d drive] [-i interval] [-e command] 

Следующее должно отслеживать диск для диска, а затем вставить его, а затем выйти. Я не пробовал это, потому что у меня только IDE Floppy Drive (LS-120 SuperDisk).

 diskd -d /dev/fd0 -e "udisks --mount /dev/fd0 --mount-fstype=vfat" 

Следует отметить, что вам необходимо быть членом группы floppy чтобы иметь возможность запускать это как пользователь без полномочий root, поскольку ему необходим прямой доступ к гибкому устройству (например, /dev/fd0 ). Он использует FDPOLLDRVSTAT ioctl (см. man 4 fd ) для опроса устройства.

Также в man-странице / документации есть следующее предупреждение:

Эта программа работает путем переключения двигателя в течение очень короткого интервала, а затем пытается отслеживать -1. Это может повредить аппаратные средства в конечном итоге. Известно, что Amigas, которые также используют эти методы, имеют проблемы с дисковыми дисками, которые уже не работают после нескольких месяцев использования.

Я не уверен, действительно ли это серьезная проблема, но иметь запасной диск под рукой, вероятно, полезен, если вы собираетесь использовать это в настройках производства. Они уже не так дороги, не так ли?

(Утилита fdmountd звучит довольно древней, и я очень скептически отношусь к тому, работает ли она с нормальными дисками в формате FAT12 на «более новом» ядре.)

  • Общий способ отладки vmware мыши в X11
  • Открытие виртуальной среды Через vCenter в pYvmomi
  • Проблема LVM с VM - нет физического диска
  • Jumphost неожиданно перезапустил первые попытки соединения SSH MUX
  • Расширить раздел sda3 в openSUSE?
  • Как включить Keyboard Autorepeat постоянно на экземплярах VMware CentOS 6?
  • Yosemite + Fusion 7.0.1 теперь получает «Could not open / dev / vmmon: Нет такого файла или каталога» и не запускает какую-либо виртуальную машину
  • Выберите версию gcc для компиляции модулей vmware
  • Установка инструментов VMware на Metasploitable2
  • VMware трассирует только хост-виртуальную машину через двойную виртуальную машину только для хоста / NAT
  • Установка Fedora на ошибку VMWare: CPU отключен гостевой операционной системой
  • Linux и Unix - лучшая ОС в мире.