
私は最近、Linuxでハードドライブのマウントとアンマウントを処理する2つのスクリプトを作成しました。私が知らないことは以下の通りです。現在/dev/sdc1
インストール中です/home/media/externalHardDrive
。問題は、ハードドライブを接続せずに他のUSBデバイス(USBスティックなど)を接続すると、USBスティックが入る可能性が高いことです/dev/sdc1
。デバイスをインストールするには、まずデバイスを識別して、ハードドライブのみがこのスクリプトの影響を受けていることを確認できます。
私のスクリプトは次のとおりです。 script.sh 削除:
#!/bin/bash
MOUNT="/home/media/externalHardDrive"
if grep -qs "$MOUNT" /proc/mounts; then
umount "$MOUNT"
if [ $? -eq 0 ]; then
echo "HardDrive kan veilig worden verwijderd :D"
else
echo "Er is iets mis gegaan, blijf overal vanaf :("
fi
else
echo "Er is geen HardDrive gemount op $MOUNT, deze kan daarom niet verwijderd worden!"
fi
script.sh マウント
#!/bin/bash
MOUNT="/home/media/externalHardDrive"
if grep -qs "$MOUNT" /proc/mounts; then
echo "HardDrive is al gemount op $MOUNT ;)"
else
mount /dev/sdc1 "$MOUNT"
if [ $? -eq 0 ]; then
echo "HardDrive is succesvol gemount :D"
fi
fi
誰もが正しい方向に私を指すことができますか?私はDebianサーバーでこのスクリプトを実行しています。
答え1
USBドライブが開いていることを確認したら、/dev/sdc0
次の手順を実行します。
ls -l /dev/disk/by-uuid | grep -F /dev/sdc1
そして時間(HH:MM)との間の数字を->
と仮定して書き留めますxyz
。これはxyz
通常変更されないドライブUUIDです(新しいファイルシステムを作成し、この番号をオプションとして指定しない限り)。
マウント時にデバイスの代わりにこのUUIDを使用できます。
mount UUID=xyz /home/media
UUID=xyz
または、項目の最初の列に挿入するだけ/etc/fstab
ですmount /home/media
。
または、ファイルシステムにラベルを割り当てることもできます(たとえば、-L
オプションを使用して同様の方法で使用)。mkfs.ext4
mkfs.btrfs
LABEL=thelabelyouspecified
答え2
udev
ハードドライブの取り付けに使用されます。タスクを自動化し、識別を容易にします。接続されているデバイスがハードドライブの場合、$ID_ATA=1
スクリプトに変数があります。