web-dev-qa-db-ja.com

HWマシンのすべてのディスクデバイスは--sdで始まりますか?

私のbashスクリプトでは、HWマシン(フラッシュカードやROMを含まない)のすべてのディスクをキャプチャするために、構文lsblk | grep sdを使用します。

一部のディスクデバイス名が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
4
yael

ほとんどのディスクドライバはsdプレフィックスを使用しますが、すべてではありません。歴史的にsdは「SCSIディスク」の略でしたが、ほとんどのディスクは [〜#〜] scsi [〜#〜] に近いプロトコルを使用し、Linuxのディスクドライバーのほとんどは汎用のsdレイヤーとコントローラー固有の部分。ただし、これは義務ではないため、ハードウェアに確認する必要があります。たとえば、 eMMC デバイスのプレフィックスはmmcblkです。一部のハードウェアRAIDドライバーは、異なるプレフィックスを使用します。仮想マシンディスクは、仮想化テクノロジに応じて/dev/sd*である場合とそうでない場合があります。

sdにはリムーバブルドライバーも含まれていることに注意してください。たとえば、すべてのUSBドライブには、ハードディスク、USBキー、SDカードリーダーなどであるかどうかに関係なく、sdプレフィックスが付いています。

grep sdは、ディスクやパーティションのラベルなど、行のどこでもsdと一致するため、非常に壊れやすいことにも注意してください。 grep '^sd'は壊れにくくなります。

全体として、grep '^sd'はあまり役に立たないことをしますが、ハードウェアによってはうまくいく場合があります。インストールを別のハードウェアに移行すると、機能しなくなる場合があります。だからあなたは何か他のものを見つけようとするべきです。他に何を使用するかは、「すべてのディスク(…)(フラッシュカードやROMを含まない)」の意味によって異なります。結局のところ、フラッシュはディスクテクノロジーであり、回転ディスクと区別する理由はありません。また、マシンが仮想化されているかどうかに依存することは、通常は悪い考えです。また、RAIDの使用を開始した場合、基盤となるハードウェアに関心があるのか​​、ソフトウェアで使用可能なパーティションに関心があるのか​​は明確ではありません。

リムーバブルではないドライブのみを表示する場合は、/sys/block/*を調べて、removableファイルに0が含まれているドライブを確認します。これには、RAID/LVMホルダーやループデバイスなどの「非ハードウェア」ブロックデバイスが含まれます。

Linuxでは、リムーバブルメディアには [〜#〜] lvm [〜#〜] を使用することをお勧めします。管理がはるかに簡単になります。 LVMを使用している場合は、pvdisplayまたはlvdisplayのいずれかで、おそらくあなたが求めている情報が表示されます(ただし、もちろん、あなたが何を求めているのかわからなかったため、はっきりとはわかりません)。 。

Psuedoscsiシステムによって管理されているデバイスのみがsdXとしてリストされます。古いブロックデバイスは/ dev/hda、/ dev/hdbなどとして表示されます。SDカードは/ dev/mmcblk0、/ dev/mmcblk1などとして表示されます。

0
DAmann