SD 插入后等待 /dev/disk/by-label 填充

Waiting for /dev/disk/by-label to be populated after SD insertion

我有一个 bash 脚本在可移动 SD 卡上进行一些初始化(我认为任何可移动存储的问题都是一样的)。具体行为取决于卡片格式,特别是可用的 fs 标签。

为此,我需要请求 SD 插入,然后等待 udev 获取并填充 /dev/*

我可以尝试通过显式调用 partprobe 来加快速度,但我仍然需要等待(有时长达 10 秒!)才能填充 /dev/by-label/ 子目录。

我怎样才能加快这个速度?

有没有办法显式触发 udev 并等待完成

一个很粗糙的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

随时改进。