web-dev-qa-db-ja.com

pvremoveのmanページに「force」が重複しているのはなぜですか?

> man pvremove
PVREMOVE(8)            System Manager's Manual           PVREMOVE(8)

NAME
       pvremove — remove a physical volume

SYNOPSIS
       pvremove    [--commandprofile    ProfileName]    [-d|--debug]
       [-h|--help]    [-t|--test]     [-v|--verbose]     [--version]
       [-f[f]|--force   [--force]]   [--reportformat   {basic|json}]
       [-y|--yes] PhysicalVolume [PhysicalVolume...]

DESCRIPTION
       pvremove wipes the label on a device  so  that  LVM  will  no
       longer recognise it as a physical volume.

OPTIONS
       See lvm(8) for common options.

       -ff, --force --force
          Force the removal of a physical volume belonging to an
          existing volume group.  Normally vgreduce(8) should be
          used  instead  of  this  command.  You cannot remove a
          physical volume which in use by  some  active  logical
          volume.

       -y, --yes
          Answer yes to all questions.

SEE ALSO
       lvm(8), pvcreate(8), pvdisplay(8), vgreduce(8)

Sistina SoftwaLVMUTOOLS 2.02.166(2)-RHEL7 (2016-09-28)   PVREMOVE(8)

Q:なぜ2つの "f"なのですか?

6
pepite

これは、hdparm--please-destroy-my-driveオプションのような安全スイッチです。デフォルトでは、プログラムはそのようなことを拒否します(何かが壊れる可能性があるため)が、(少なくとも、想像力において)自分が何をしているか本当に本当に知っている人のために、上書きするオプションがあります。

プログラム自体が提供する説明(すでに引用したマンページに加えて)

# pvremove /dev/loop0
  PV /dev/loop0 is used by VG foobar so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)

# pvremove --force /dev/loop0
  PV /dev/loop0 is used by VG foobar so please use vgreduce first.
  (If you are certain you need pvremove, then confirm by using --force twice.)

# pvremove --force --force /dev/loop0
  WARNING: PV /dev/loop0 is used by VG foobar
Really WIPE LABELS from physical volume 
    "/dev/loop0" of volume group "foobar" [y/n]? y
  WARNING: Wiping physical volume label from /dev/loop0 of volume group "foobar"
  Labels on physical volume "/dev/loop0" successfully wiped.

本当にそれをしたくなく、-ffを使用した後に確認を求めます(インタラクティブモードで実行した場合)。

なぜ--forceが2回あるのかについては、1回では十分ではないでしょうか。 LVMは他の場所で--forceを使用して、それほど重要でないアクションを実行します。そのため、他のLVMコマンドで単一の--forceを使用する習慣をすでに持っている人々を捕まえることになるでしょう。

10
frostschutz

2番目のfおよび--forceはオプションです。

pvremove -f

と同じではありません

pvremove -ff

(および対応するpvremove --forceおよびpvremove --force --force)。

エラー処理は、--forceオプションの数によって異なります。たとえば、デフォルトでは、pvremoveはまだPVではないボリュームを削除しません。そのチェックを無効にするには、単一の--forceで十分です。単一の--forceもプロンプトを無効にします(基本的な場合)。実際に使用されているPVを削除するには、2つの--forceオプションが必要です。

6
Stephen Kitt