確認せずに論理ボリュームを削除する

確認せずに論理ボリュームを削除する

論理ボリュームを削除するための自動化されたスクリプトを作成していますが、これを行う方法を100%確信できません。-fフラグを使用する必要があるように見えますが、lvremove文書があまりにも混乱していて快適に感じることはできません。

-f|--強制...

さまざまな検査、検証、保護を上書きします。注意して使用してください。

「さまざまな確認、検証、保護」とは何ですか?私にとっては、ボリュームの削除を確認する以外に何も避けているようです。

答え1

最大のリスクは、まだ使用中のボリュームを削除することです。つまり、dmsetup infoゼロでないとマークされている場合Open count

# dmsetup info SSD-root | grep Open
Open count:        1

ただし、この場合、ジョブはlvremove直接拒否されます。

# lvremove SSD/root
  Logical volume SSD/root contains a filesystem in use.

--forceそれでも削除を拒否しても(自宅で試してはいけません)。

# lvremove --force --yes --verbose SSD/root
    Device dm-33 (253:33) appears to be mounted on /.
  Logical volume SSD/root contains a filesystem in use.

これはインストールされていない場合でも機能し、そうでない場合は使用している場合でも機能します。

# lvcreate -n test -L100M SSD
# losetup --find --show /dev/SSD/test
# time lvremove SSD/test
  Logical volume SSD/test is in use.
real    0m4.816s
user    0m0.008s
sys 0m0.005s

実際、これは非常に遅いです(このlvremove呼び出しは5秒かかります!)。なぜなら、マウントポイントをどこでも検索しますが、見つからず、開いている数を再確認するからです。それで、「まあ、これはインストールされていませんが、なぜまだ開いているのでしょうか?」と同じです。

--forceしたがって、通常のボリュームでは、ここで使用することが実際に危険な状況を強制しないことはかなり安全であると思います。マンページでは、例のセクションで強制使用を提案します。ただし、スナップショット、キャッシュ、その他の特殊ボリュームに何が起こるかをテストしていません。

答え2

マニュアルページlvremoveも提供されています--yes

インタラクティブに確認メッセージを表示するのではなく、常に答えが「はい」と仮定してください。

--forceこれにより、ボリュームをプログラムで削除できますが、指定されていないすべての小切手や残高の使用を防ぐことができます。

(私は削除防止の問題を解決していないことを知っています--force。あなたの基本的な要件を満たすと思う代替案を提供しました。本当に知りたい場合は、この答えを受け入れる必要はないと思います--force。)

関連情報