为什么 pvremove 在手册页中有重复的“force”?

为什么 pvremove 在手册页中有重复的“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)

问:为什么是两个“f”?

答案1

这是一个安全开关,有点像--please-destroy-my-drive中的选项hdparm。默认情况下,程序将拒绝执行此类操作(因为它可能会导致某些内容损坏),但对于那些真正知道自己在做什么的人(至少在他们的想象中),它有一个覆盖选项。

程序本身提供的解释(除了您已经引用的联机帮助页之外)

# 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两次,一次还不够吗? LVM--force在其他地方用于不太重要的操作,因此它可能是为了吸引那些已经习惯将单个--forceLVM 与其他 LVM 命令一起使用的人。

答案2

第二个f--force是可选的:

pvremove -f

不等于

pvremove -ff

(以及各自的等价物pvremove --forcepvremove --force --force)。

错误处理因选项数量而异--force。例如,默认情况下pvremove不会删除还不是 PV 的卷;单个--force就足以禁用该检查。 Single--force还禁用提示(对于基本情况)。删除实际正在使用的 PV 需要两种--force选择。

相关内容