私のbashスクリプトは構文を使用します。lsblk |正規表現ハードウェアシステムのすべてのディスク(フラッシュカードまたはROMを除く)をキャプチャするには
一部のディスクデバイス名がsdとは異なるため、そのディスクを見逃すことが心配です。
可能ですか?
lsblk | grep sd
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 149.5G 0 part
sdb 8:16 0 20G 0 disk /id/sdb
sdc 8:32 0 20G 0 disk /id/sdc
sdd 8:48 0 20G 0 disk /id/sdd
sde 8:64 0 20G 0 disk /id/sde
sdf 8:80 0 20G 0 disk /id/sdf
sdg 8:96 0 20G 0 disk
sdh 8:112 0 20G 0 disk
sdi 8:128 0 20G 0 disk
sdj 8:144 0 20G 0 disk
sdk 8:160 0 20G 0 disk
ベストアンサー1
ほとんどのディスクドライバはこのsd
プレフィックスを使用しますが、すべてではありません。歴史的にsd
「SCSIディスク」を意味していましたが、ほとんどのディスクは次のようなプロトコルを使用しています。小型コンピュータシステムインタフェース、ほとんどのLinuxディスクドライバは、共通sd
レイヤーとコントローラー関連部分を使用します。ただし、これは義務ではないため、ハードウェアを確認する必要があります。例えば、マルチメディアカードデバイスにはプレフィックスがありますmmcblk
。一部のハードウェアRAIDドライバは、異なるプレフィックスを使用します。仮想マシンディスクは、/dev/sd*
仮想化技術によって異なる場合もあれば、そうでない場合もあります。
リムーバブルsd
ドライバも含まれています。たとえば、sd
ハードドライブ、USBキー、SDカードリーダーなど、すべてのUSBドライブにプレフィックスがあります。
また、ディスクやパーティションラベルなどの行のどこにも一致するため、非常にgrep sd
脆弱であることに注意してください。それほど脆弱ではないでしょう。sd
grep '^sd'
あまりgrep '^sd'
役に立ちませんが、ハードウェアによっては自分に役立つかもしれないことをしてください。インストールを別のハードウェアに移行すると、動作が停止することがあります。だから他のものを見つけようとしなければなりません。使用できるその他の項目は、「すべてのディスク(...)(フラッシュカードまたはROMを除く)」の意味によって異なります。結局、フラッシュはディスク技術なので、回転式ディスクと区別する理由はありません。マシンが仮想化されているかどうかに依存するのは一般的に悪い考えです。 RAID を使い始めると、基本ハードウェアに興味があるのか、ソフトウェアに使用可能なパーティションに興味があるのかは明らかではありません。
リムーバブルではないドライブのみを表示するには、/sys/block/*
ファイルにどのドライブが含まれているかを確認してください。これには、RAID / LVMホルダーやループデバイスなどの「非ハードウェア」ブロックデバイスが含まれます。0
removable
Linuxでは、以下を使用することをお勧めします。左心室容積リムーバブルでないメディアの場合。管理が簡単になります。 LVMを使用している場合、pvdisplay
またはlvdisplay
必要な情報が表示されることがあります(もちろん、必要な情報を知らせていないため確信はありません)。