Por que pvremove tem uma “força” duplicada na página man?

6
> 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: Por que os dois "f" s?

    
por pepite 30.01.2017 / 13:03

2 respostas

10

É um interruptor de segurança, como a opção --please-destroy-my-drive em hdparm . Por padrão, o programa se recusará a fazer algo assim (já que provavelmente resultará em algo quebrado), mas tem uma opção para substituir, para pessoas que realmente realmente sabem o que estão fazendo (pelo menos, em sua imaginação). / p>

Explicação conforme fornecida pelo próprio programa (além da manpage que você já citou)

# 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.

Realmente não quer fazer isso e até pede confirmação depois de usar -ff (se correu no modo interativo).

Por que --force duas vezes, não seria suficiente? O LVM usa --force em outros lugares para ações um pouco menos críticas, então é provável que você capture pessoas que já têm o hábito de usar um único --force com outros comandos do LVM.

    
por 30.01.2017 / 13:39
6

O segundo f e --force são opcionais:

pvremove -f

não é o mesmo que

pvremove -ff

(e os respectivos equivalentes pvremove --force e pvremove --force --force ).

O tratamento de erros difere dependendo do número de opções --force . Por exemplo, por padrão, pvremove não removerá um volume que ainda não seja um PV; um único --force é suficiente para desabilitar essa verificação. Um único --force também desativa a solicitação (para casos básicos). Remover um PV que está realmente em uso requer duas opções --force .

    
por 30.01.2017 / 13:43

Tags