私の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
必要な情報が表示されることがあります(もちろん、必要な情報を知らせていないため確信はありません)。
答え2
少なくとも(P)ATA、SATA、およびUSBドライブは次のように表示されます。他のハードウェアがある場合は、どのように表示されるかを確認できます。システムが検出したすべての大容量記憶装置の人が読めるリストを表示する必要があります。/dev/sdX
/proc/partitions
/dev/sd*
最初はSCSIドライブにのみ使用できましたが、範囲が拡張されました。以前使用していたIDE / ATAドライバではディスク名をdiskとして指定/dev/hd*
しましたが、「すでに開発者を狂わせています」現在のドライバはこれをSCSIディスクのように見せます(例:/dev/sd*
。
一部のハードウェアRAIDコントローラには、HP RAIDコントローラなどの独自の命名方式があり、/dev/cciss/c0d0p1
一部の仮想マシンのディスクは/dev/xvd*
(Xen)または/dev/vd*
(KVMバーティオドライバ)。
それに加えて、最も一般的なものはRAMディスク/dev/ram*
と/dev/fd*
ソフトウェアRAIDデバイス(マルチデバイスディスク)です。/dev/md*
答え3
擬似scsiシステムによって管理されているデバイスのみがsdXとして一覧表示されます。以前のブロックデバイスは、/dev/hda、/dev/hdbなどとして表示されます。 SD カードは /dev/mmcblk0、/dev/mmcblk1 などで表示されます。