ディスクをキャプチャしたいです。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