如何在 Alpine Linux 中按标签挂载卷?

如何在 Alpine Linux 中按标签挂载卷?

我正在运行基于 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

相关内容