我正在运行基于 Alpine 的 Docker 容器(特别是镜像balenalib/armv7hf-alpine
)。我想在容器内按其标签安装 USB 驱动器,但 Alpinemount
命令似乎不支持该--label
选项。
我是 Alpine 新手,但在 Raspbian/Debian 下,我只会使用,例如:
mount --label USBDRIVE /mnt/usbdrive
在 Alpine 下,我可以成功安装驱动器,但我必须使用它的设备名称而不是其标签,例如:
mount /dev/sda1 /mnt/usbdrive
有没有一种方法可以在 Alpine 下通过标签实现挂载?例如:不同版本的mount
?或者通过遍历所有可用卷上的标签来查找卷名称的方法?
编辑:好的,这是一个可行的解决方案(对我的 Bash 脚本表示歉意):
VOLUME=$(for VOL in $(fdisk -l | grep ^/dev/sd | awk '{print $1}'); \
do blkid $VOL; done | grep USBDRIVE | awk -F: '{print $1}')
mount $VOLUME /mnt/usbdrive
这将使用 列出所有磁盘fdisk
,隔离所有/dev/sd*
条目,使用blkid
查找卷标,识别所需的标签并获取其卷名。(为便于演示,忽略了例外情况)。
答案1
我确信有更简洁的方法可以做到这一点,但是——如上面的编辑所述——下面的方法可以满足我的需求。请注意,如果存在多个具有所需标签的卷,它将中断。
VOLUME=$(for VOL in $(fdisk -l | grep ^/dev/sd | awk '{print $1}'); \
do blkid $VOL; done | grep USBDRIVE | awk -F: '{print $1}')
mount $VOLUME /mnt/usbdrive
答案2
或者直接使用 blkid 的 -L 选项:
mount $(blkid -L USBDRIVE) /mnt/usbdrive