Como posso zerofill o / swapfile sem anulando o que o torna um arquivo de swap?

8

Eu tenho um script que executo para otimizar o espaço em disco antes de fazer o backup de um convidado virtual (realmente não importa muito qual hipervisor é usado).

As versões modernas do Ubuntu (por exemplo, 18.04) parecem usar o /swapfile ao invés de uma partição para o propósito. Tudo bem também.

No entanto, eu gostaria de zerofill o arquivo de swap junto com a partição raiz que o contém.

Com as partições swap isso foi relativamente fácil, pois sempre havia uma maneira de extrair o $UUID existente da partição swap e - depois de zerofilar a partição - executar mkswap -U $UUID para recriar o dito partição swap.

No entanto, com o /swapfile , não vejo como fazer isso. Embora eu saiba que você não pode montar um /swapfile pelo UUID em /etc/fstab , eu ainda quero manter o UUID.

Então, eu acho que preciso de um dos seguintes procedimentos para seguir:

  1. Eu preciso de um método que possa preencher o arquivo de swap sem também limpar as estruturas que fazem dele uma partição de troca (ou seja, evite executar mkswap -U $UUID )
  2. Eu preciso de um método para recuperar o UUID existente de um arquivo de troca (ao contrário de uma partição em que posso usar qualquer coisa de blkid para olhar em /dev/disk/by-uuid/$UUID ...)
por 0xC0000022L 20.08.2018 / 15:38

1 resposta

15
  1. Isso não limpará o arquivo de troca tão completamente quanto recriá-lo, mas se você limpá-lo depois de pular o primeiro 4KiB (estritamente falando, a primeira página, que depende da sua arquitetura), você ganhou ' t toque em qualquer uma das estruturas que identificam um arquivo de troca.

  2. blkid funciona bem em arquivos de troca também:

    $ mkswap swap
    Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
    no label, UUID=7916b81f-1faa-4b7d-84ef-b0bf2f75dbbc
    
    $ blkid swap
    swap: UUID="7916b81f-1faa-4b7d-84ef-b0bf2f75dbbc" TYPE="swap"
    

O formato do cabeçalho é definido no kernel : o formato antigo tem um valor mágico no final da primeira página, o novo formato combina isso com uma área livre de 1 KiB, então um número de campos (versão, tamanho, páginas ruins, UUID , label) que se encaixam confortavelmente dentro da primeira página.

    
por 20.08.2018 / 15:46

Tags