2

Итак, я использую Arch на миниатюрной системе (BeagleBone Black). На этой плате у меня есть SD-карта (/dev/mmcblk1) для передачи через USB на хост-компьютер с модулем ядра g_mass_storage. Это прекрасно работает, и любые изменения, которые я делаю на этом фальшивом USB-накопителе, сразу же появляются в файле блочного устройства.

Проблема в том, что я хочу сделать с этим блочным устройством. Я хочу, чтобы он был смонтирован только для чтения в корневом каталоге документов сервера Nginx. По большей части это работает нормально, и любые изменения, которые я делаю на USB-накопителе, выглядят нормально в корне сервера. Однако изменения требуют, чтобы блочное устройство было размонтировано и перемонтировано до его появления. В идеале, как только я внесу изменения в USB-накопитель, он появится в точке монтирования, но я подумал, что это будет сложно сделать.

Есть ли какой-нибудь простой способ монтировать блочное устройство так, чтобы Linux ожидал, что оно будет постоянно меняться, подобно тому, как сетевые монтировки, такие как SSH и FTP, реагируют на внешние изменения?

1 ответ1

0

Пара мыслей -

  1. Вы действительно должны размонтировать и перемонтировать для появления изменений? Обычно вы можете использовать синтаксис mount /dev /resource -o remount, ro и mount /dev /resource -o remount, rw для перемонтирования устройства только для чтения или чтения-записи.

  2. Я не понимаю специфику того, что вы пытаетесь сделать, но похоже, что ответ может лежать в "udev". В большинстве версий Linux существует набор правил (в Ubuntu 12.04 в /etvc/udev/rules.d - я бы ожидал чего-то похожего во многих других дистрибутивах), которые сопоставляют устройства и события ядра с вещами, с которыми вы можете действовать. (Например, я использовал, чтобы определить, когда подключен внешний USB-накопитель и запустить скрипт. Для этого вам нужно разработать атрибуты, специфичные для вашего блочного устройства (Запуск udevadm info -a -p $ (udedm info -q path -n /dev /sdX), а затем создать правило, используя эти атрибуты для создания действия. когда вы обнаружите изменение.

    Использовать UDEV было несложно, но было довольно сложно получить правильную работу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .