コンテキスト

コンテキスト

コンテキスト

既存の工場イメージからddSDカードイメージングを自動化しています。 SDカードは常に外部USBカードリーダーを介して接続されているため、システムはSCSIブロックデバイスとして表示されます/dev/sd*

現在私のコマンド構文はwrite-image DEVICE次のとおりです。 SDカードブロックデバイスはどこにありますか? 。DEVICE/dev/sdd

質問

DEVICEフォームであることを確認するために基本的なチェックを行いましたが、/dev/sd*十分ではありません。ユーザー(Linuxに慣れていない本番担当者)が間違えて有効に見える他のデバイスを指定するのか心配です。/dev/sda。特に、イメージングスクリプトにルートアクセスが必要なので、差し迫った災害を見ることができます(画像自体に書き込むのではなく、SDカードの実際のサイズに応じてパーティションのサイズを変更するなど、SDカードを変更することに注意してください)...

質問

偶発的な損傷からシステムディスクを保護するために、指定されたデバイスが実際に一種のUSB大容量ストレージ(または少なくともリムーバブルデバイス)であることを確認したいと思います。どうすればいいですか?

私は/procオンラインでそれについて何も見つけることができず、今は迷っています。

答え1

ディレクトリを見てください/sys/。特に、/sys/block/ブロックデバイスへのシンボリックリンクが含まれています/sys/devices/

/sys/block/sdX/removableリムーバブルデバイスの場合は1、そうでない場合は0と表示されているようです。これにより、除去可能性の基本的なチェックを実行できます。

USBデバイスであることを確認するより良い方法があるかどうかはわかりませんが、 readlink /sys/block/sde出力は次のとおりです。フォルダが../devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1.2/6-1.2:1.0/host7/target7:0:0/7:0:0:0/block/sde含まれていることを確認するのは簡単なチェックです。usb*

ベンダーやモデルなどの他のデバイスの詳細も入手でき、/sys/block/sdX/device/便利です。

関連情報