Ожидание заполнения /dev/disk/by-label после вставки SD

У меня есть скрипт bash, выполняющий некоторую инициализацию на съемной SD-карте (я думаю, проблема будет такой же для любого съемного хранилища). Конкретное поведение зависит от форматирования карты, в частности от доступных меток fs.

Для этого мне нужно запросить вставку SD, а затем подождать, пока udev подхватит и заполнит /dev/*

Я могу попытаться ускорить процесс, явно вызвав partprobe, но мне все еще приходится ждать (иногда до 10 секунд!), Чтобы получить /dev/by-label/ subdir для заполнения.

Как я могу ускорить это?

Есть ли какой-нибудь способ явно вызвать udev и ждать завершения?

1 ответ

Очень грубый сценарий bash может быть следующим:

sudo partprobe
count=0
while [ ! -L /dev/disk/by-label/root ]
do
    if ((count > 10))
    then
        echo "ERROR: unable to find root's label!"
        exit 1
    fi
    sleep 1
    count=$((count++))
done

Не стесняйтесь улучшать.

Другие вопросы по тегам