Estou usando parted
para particionar um arquivo /dev/mapper/luks_device
. Eu sei que tenho que usar kpartx
para carregar os mapeamentos de partição posteriormente (com referência a este thread ). No entanto, ao criar a partição parted
por mkpart swap 1 500
, recebo o seguinte erro como de costume.
(parted) mkpart swap 1 500
Error: Partition(s) 1 on /dev/mapper/luks_device have been written, but we have been
unable to inform the kernel of the change, probably because it/they are in use. As a
result, the old partition(s) will remain in use. You should reboot now before making
further changes.
Ignore/Cancel?
O que significa Ignorar e Cancelar ? Quais são suas diferenças? Mesmo se eu digitar "Cancelar", a partição ainda será criada.
O Parted faz essa pergunta quando a tabela de partições já está gravada no disco (e a gravação foi bem-sucedida), então a partição existe e a única coisa que resta é dizer ao kernel para reler a tabela de partições. Essa é uma syscall simples (
BLKRRPART
) e falhou, então o parted só pode informá-lo sobre isso agora.A única diferença entre a resposta Ignore e Cancel neste caso é se a chamada retorna com sucesso (caso você escolha Ignore ) ou falha (caso você escolha Cancel ). Portanto, a pergunta não faz sentido no modo interativo porque você não está verificando o código de retorno, mas pode fazer sentido no modo em lote ou ao usar libparted em vez de parted.
No modo batch, o código de retorno do comando é definido de acordo com sua escolha.
Para Ignorar retorna 0
E para Cancel retorna 1:
As informações ausentes : Talvez seja necessário atualizar /etc/fstab. é também uma diferença visível. Ele simplesmente não é impresso pelo parted quando o comando é considerado malsucedido.
Nota: No exemplo acima tentei remover uma partição em uso para obter o mesmo erro que você obteve, é uma situação diferente mas o comportamento é o mesmo, a mensagem de erro vem da mesma função libparted para confirmar as alterações no disco .