root@pve-virt-01:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 250G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part /boot/efi
└─sda3 8:3 0 249.5G 0 part
├─pve-swap 253:0 0 8G 0 lvm [SWAP]
├─pve-root 253:1 0 62.3G 0 lvm /
├─pve-data_tmeta 253:2 0 1.6G 0 lvm
│ └─pve-data 253:4 0 160G 0 lvm
└─pve-data_tdata 253:3 0 160G 0 lvm
└─pve-data 253:4 0 160G 0 lvm
sdb 8:16 0 32G 0 disk
sdc 8:32 0 32G 0 disk
sdd 8:48 0 32G 0 disk
sde 8:64 0 32G 0 disk
lvm/zfs/ext4で使用されていないすべてのデバイスを見たいです。これを達成する方法を知っていますか?未使用のすべてのディスクを使用できるようにスクリプトに使用したいのですがsgdisk
、これは使用済みのディスクを選択しないようにする必要があることを意味します。
未使用のすべてのblkデバイスを一覧表示したいと思います。
編集する:
出力は次のようになります。
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
ベストアンサー1
それ自体とそのサブデバイスにマウントポイントがないデバイスを印刷したいようです。
lsblk
そして以下を使用してJSONを出力しますjq
。
lsblk --tree -o PATH,MOUNTPOINT -J | jq -r '.blockdevices[]
| del(select(.mountpoint!=null or .children[]?.mountpoint!=null))
| .path // empty'