Intereting Posts
При связывании настраивайте ли настройки (например, количество / размер очередей RX) непосредственно на интерфейсе главной связи или на подчиненных этажных интерфейсах? Я хочу, чтобы поведение тачпада на Apple Magic Mouse на Linux Переадресация командного вывода с помощью супервизора Дикросы на основе Debian, которые имеют регулярный цикл выпуска Есть ли простой надежный способ перевода команд из Ubuntu в Debian и наоборот? Как скрыть оставшиеся файлы после неудачной попытки Почему sed печатает первую строку из файла, даже если не удается найти соответствующие группы Получить список пакетов, которые не установлены в системе Debian код для отображения текста TRUE Как приостановить вывод minicom? ls colors: почему некоторые из моих шрифтов черные, а другие – зеленые на выходе ls Обновление до тестирования Debian показывает только белый шум Перезагружает ли служба HUP? Kali Linux зависает при загрузке после жесткого сброса Могу ли я деактивировать драйвер Broadcom, если у меня есть карта беспроводной сети Realtek?

Убрано USB-устройство хранения данных все еще установлено

Я работаю над встроенной системой Linux на основе busybox. Иногда USB-устройство, которое физически удаляется из сообщения, все еще отображается в mount , df или /proc/mounts . Если я снова подключу устройство, он будет обнаружен, например, как /dev/sdb1 пока устройство /dev/sda1 все еще установлено.

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

Вы можете написать правило udev, например

 ACTION=="remove", KERNEL=="sd[bz][0-9]", SUBSYSTEM=="block", RUN+="umount-removed.sh" 

Это вызовет событие unplug, а затем удалит файловую систему из этого скрипта

 MNT_POINT=`df | grep "$DEVNAME" | awk '{print $6}'` #If still mounted if [ ! -z "$MNT_POINT" ];then logger -i -t usbrm -p daemon.notice "The device $DEVNAME is still mounted" #Umount fs umount $DEVNAME if [ $? -eq 0 ];then logger -i -t usbrm -p daemon.notice "$DEVNAME successfully unmounted from $MNT_POINT" else logger -i -t usbrm -p daemon.err "Impossible to umount $DEVNAME from $MNT_POINT. Aborting..." fi fi 

Вы можете просмотреть журнал /var/daemon.log. Надеюсь, поможет 😉

Изменить: забыли точно указать, что udev использует определенное пространство имен, поэтому вам нужно настроить его для совместного использования точки монтирования с помощью пользовательского пространства.

Для этого найдите файловую systemd-udevd.service в вашей системе и скопируйте ее в /etc/systemd/system/systemd-udevd.service и замените содержимое на MountFlags=shared