lsblk +ディスクのみキャプチャ

lsblk +ディスクのみキャプチャ

ディスクをキャプチャしたいです。LSBLK

ここに示すように、fd0は実際に利用可能なディスクではありませんが表示されます。

この場合、私たちはできますlsblk | grepディスク| grep -v fd0

ただし、フィルタリングが必要な他のデバイスを見逃した可能性があります。grep -v

どのような他のディスクデバイスがありますか?lsblk | grepディスクそして実際のディスクではありませんか?

lsblk | grep disk 

fd0                2:0    1     4K  0 disk
sda                8:0    0   100G  0 disk
sdb                8:16   0     2G  0 disk /Kol
sdc                8:32   0     2G  0 disk
sdd                8:48   0     2G  0 disk
sde                8:64   0     2G  0 disk
sdf                8:80   0     2G  0 disk


lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0                2:0    1     4K  0 disk
sda                8:0    0   150G  0 disk
├─sda1             8:1    0   500M  0 part /boot
└─sda2             8:2    0 149.5G  0 part
├─vg00-yv_root 253:0    0  19.6G  0 lvm  /
├─vg00-yv_swap 253:1    0  15.6G  0 lvm  [SWAP]
└─vg00-yv_var  253:2    0   100G  0 lvm  /var
sdb                8:16   0     2G  0 disk /Kol
sdc                8:32   0     2G  0 disk
sdd                8:48   0     2G  0 disk
sde                8:64   0     2G  0 disk
sdf                8:80   0     2G  0 disk
sr0               11:0    1  1024M  0 rom

答え1

デバイスメジャー番号でディスクをSCSIとして識別するだけで、デバイス8パーティションは必要ない場合は、文字列 "disk"の代わりにデバイスメジャー番号を取得できます。

lsblk -d | awk '/ 8:/'

-d(または)オプションは、--no-depsデバイスパーティションが含まれていないことを示します。

最新のLinuxシステムの場合は簡単です。

lsblk -I 8 -d

ユーザーニックが指摘したように、それで十分です。

答え2

他の出力なしですべてのディスクのデバイス名を取得したいと思います。これで終わりました。

lsblk -nd --output NAME

これにより、次のような結果が生成されます。

sda
sdb

-dディスクのみを出力し、 -nヘッダー行を削除し、--output NAMEデバイス名のみがリストされていることを確認します。

答え3

私はコメントを付けるのに十分な評判を持っていないので、これは私のコメントです。

sudo lsblk -I 8,259 -d  

nvmeリストにデバイスを含めたい場合。

答え4

私に合った解決策がなかったので、私は再び使用しましたjq...

$ lsblk  -d  -J | jq '.blockdevices[] | select(.type == "disk" and  .rm == false and .ro == false) | .name +" "+.size' -r
vda 70G
vdb 20G

関連情報