web-dev-qa-db-ja.com

ファイルシステムを持たないすべてのディスクをキャプチャする方法

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

私は以下を試しましたが、それでもOS(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
5
yael
lsblk -o NAME,FSTYPE -dsn

これにより、それ自体がパーティションのホルダーではない(パーティションテーブルがない)ブロックデバイスのリストが出力されます。検出されたファイルシステムタイプは2番目の列にあります。空白の場合、認識されたファイルシステムはありません。

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

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

次のワンライナーは機能しているようです。 TYPE、PTTYPE、LABEL、またはPARTLABELを持つものを除くすべてのブロックデバイス名を出力します。ラベルの付いたものがすでに使用されている可能性が高いという理由で、最後の2つ。

これは、現時点で既知のファイルシステムタイプのリストを除外するためにgrep -vを使用するよりもはるかに優れたアプローチのように思われます。

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

注:これによって生成されるブロックデバイスのリストは[〜#〜] not [〜#〜]使用されないことが保証されていますが、一般的なものはありません。使用中のブロックデバイスが持っている使用済みマーカー。それらはおそらく使用されていませんが、問題の調査にかなり多くの時間を費やすことなく、それがあらゆる種類の保証されたリストであることを示唆することすら非常に消極的です。

Linuxボックス上のZFSの1つで、次の出力が生成されます。

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

これはそのシステムにとって正しいことです。/dev/sdb9 [〜#〜] is [〜#〜]フォーマットされていない未使用のパーティション。これは、シングルディスクZFSプールで使用されるディスクの最後にある8MBのパーティションです(これはテスト用のホームマシンであり、他の目的でミラードライブが必要でしたが、まだ交換できていません)。


ところで、blkidlsblkよりも実行にかなり時間がかかります。それはlotそれが見ているブロックデバイスの種類を特定しようとするより多くの作業を行います。

これはおそらく、数百のドライブ/ lvmメンバー/ zvolおよびその他のブロックデバイスを備えたサーバーでのみ顕著です。

たとえば、私の中規模サーバーの1つ(さまざまな種類の362ブロックデバイスを使用)では、blkidの実行に約2分かかりますが、lsblkの実行には約0.09秒かかります。 39ブロックデバイスしかない別のはるかに小さいシステム(上記のホームテストボックス)では、blkidは0.16秒かかり、lsblkは0.01秒かかります。

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

0
cas

私の意見では、最良のオプションはFDISKです。構文:

fdisk -l | grep -i ^disk

ファイルシステムがあるかどうかに関係なく、partedユーティリティを使用してすべてのディスクを一覧表示できます。

須藤は別れた

次に、「printfree」と入力します。

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

enter image description here

0
AshishKumar