単一コマンドで接続されたすべてのUSBディスクのマウント解除

単一コマンドで接続されたすべてのUSBディスクのマウント解除

単一のコマンドラインコマンドを使用して暗号化された複数のluksパーティションを含む、接続されているすべてのUSBデバイス(USBハードドライブ、USBスティック)のすべてのパーティションをアンマウントする(安全な)方法はありますか?

USBデバイスのパーティションのみをマウント解除する必要があります。

ベストアンサー1

私はposix-ishを維持するために全力を尽くしました。 udev情報を表示するために使用できる適切な「udevadm」パッケージがないと失敗することに注意してください。

#!/bin/bash

command_exists () {
    type "$1" &> /dev/null
}

CMD=""

if command_exists udevadm; then
        CMD="$(which udevadm) info -q all -n"
fi

if command_exists udevinfo; then
        CMD="$(which udevinfo) -q all -n"
fi

echo "The udevinfo command for this system is $CMD"


for disk in /dev/sd*
do
        DISK=$($CMD $disk | grep ID_BUS)
        if [[ "$DISK" == *usb ]]; then
                echo "$disk is USB, now unmounting.."
                umount $disk
        fi
done

おすすめ記事