修道が別れる

修道が別れる

ファイルシステムがないすべてのディスク(mkfsファイルシステムで実行されていないすべてのディスク)をキャプチャしたいと思います。

以下を試しましたが、まだオペレーティングシステム(sda)が提供されています。

lsblkファイルシステムや他のコマンドを使用せずにすべてのディスクをキャプチャする最善の方法は何ですか?

  lsblk -f | egrep -v "xfs|ext3|ext4"
  NAME             FSTYPE      LABEL UUID                                   
  MOUNTPOINT
 fd0
  sda
 └─sda2           LVM2_member       v0593a-KiKU-9emb-STbx-ByMz-S95k-jChr0m
 ├─vg00-lv_swap swap              1beb675f-0b4c-4225-8455-e876cafc5756   
 [SWAP]
 sdg
 sdh
 sdi
 sdj
 sdk
 sr0

答え1

lsblk -o NAME,FSTYPE -dsn

これにより、パーティションパーティションホルダではなく(パーティションテーブルを持たない)ブロックデバイスのリストが印刷されます。検出されたファイルシステムの種類は2番目の列にあります。空の場合、認識されたファイルシステムがないことを意味します。

したがって、1つのコマンドで目的の出力を取得するには

lsblk -o NAME,FSTYPE -dsn | awk '$2 == "" {print $1}'

答え2

私の考えでは、最良のオプションはFDISKです。通事論:

fdisk -l | grep -i ^disk

答え3

partedユーティリティを使用すると、ファイルシステムの有無にかかわらず、すべてのディスクを一覧表示できます。

修道が別れる

次に「無料印刷」と入力してください。

パーティション化されたドライブとパーティション化されていないドライブの両方を印刷します。

ここに画像の説明を入力してください。

答え4

次の文が効果があるようです。 TYPE、PTTYPE、LABEL、またはPARTLABELを含むブロックデバイス名を除くすべてのブロックデバイス名を印刷します。最後の2つは、ラベル付きアイテムがすでに使用されている可能性が高いためです。

grep -v現在知られているファイルシステムタイプを除外するリストを使用するよりも、これはより良いアプローチであるようです。

blkid | awk -F': ' '!/ ((PT)?TYPE|(PART)?LABEL)="[^"]+"/ {print $1}'

注:結果ブロックデバイスのリストは次のとおりです。いいえ使用中のブロックデバイスに一般的なフラグがないことを除いて、いかなる方法でも使用は保証されません。彼らおそらく使用されていませんが、問題を調査するのに時間を費やすことなく、何らかの保証されたリストであると提案することはありません。

私のZFS On Linuxシステムの1つでは、次の出力が生成されます。

# blkid | awk -F': ' '!/ ((PT)?TYPE|(PART)?LABEL)="[^"]*"/ {print $1}'
/dev/sdb9

これはこのシステムにも当てはまります。 /dev/sdb9はいフォーマットされておらず、未使用のパーティションです。単一ディスクZFSプール用のディスクの末尾にある8MBのパーティション。 (これはテスト用のホームマシンです。他の作業にはミラー化されたドライブが必要ですが、まだ交換する時間がありませんでした。)


ところで、blkidランニングタイムはに比べて短いですlsblkたくさん表示しているブロックデバイスの種類を識別して識別するには、より多くの作業が必要です。

これは、数百のドライブ/ lvmメンバー/ zvolおよび他のブロックデバイスを持つサーバーでのみ目立つように見えることがあります。

たとえば、私が運営する中規模のサーバー(362のさまざまなブロックデバイスを含む)のうち、blkid実行時間は約2分でlsblk約0.09秒かかります。ブロックデバイスが39台しかない別の小規模システム(上記のホームテストボックス)では、0.01秒かかり、blkid0.16秒かかりましたlsblk

このコマンドを繰り返し実行する必要があり、時間がかかりすぎる場合は、いつでもblkdid一時的に出力をtmpfileにキャッシュできます。たとえば、キャッシュが存在しない場合、または30分より古い場合は、キャッシュファイル()を生成して入力などblkid > /path/to/blkid.cacheとして使用します。awk

関連情報