Eu tenho um script que executo para otimizar o espaço em disco antes de fazer 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 como padrão /swapfile
uma partição em vez de uma partição para esse propósito. Tudo bem também.
No entanto, gostaria de zerar o arquivo de troca junto com a partição raiz que o contém.
Com partições de troca , isso era relativamente indolor, pois sempre havia uma maneira de extrair o existente $UUID
da partição de troca e - após o preenchimento zero da partição - executar mkswap -U $UUID
para recriar a partição de troca.
No entanto, com o /swapfile
não vejo como fazer isso. Embora eu perceba que você não pode montar um /swapfile
por UUID em /etc/fstab
, eu ainda gostaria de manter o UUID.
Então eu acho que preciso de um dos seguintes para prosseguir:
- Eu preciso de um método que possa zerar o arquivo de troca sem também limpar as estruturas que o tornam uma partição de troca (ou seja, evite ter que executar
mkswap -U $UUID
) - Eu preciso de um método para recuperar o UUID existente de um arquivo de troca (em oposição a uma partição onde eu possa usar qualquer coisa
blkid
para olhar/dev/disk/by-uuid/$UUID
...)
Isso não limpará o arquivo de troca tão completamente quanto recriá-lo, mas se você limpá-lo depois de pular os primeiros 4KiB (estritamente falando, a primeira página, que depende da sua arquitetura), você não tocará em nenhuma das estruturas que identificam um arquivo de troca.
blkid
funciona bem em arquivos de troca também: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 1KiB, depois vários campos (versão, tamanho, páginas ruins, UUID, etiqueta) que cabem confortavelmente dentro da primeira página.