스왑 파일이 된 이유를 지우지 않고 /swapfile을 0으로 채우려면 어떻게 해야 합니까?

스왑 파일이 된 이유를 지우지 않고 /swapfile을 0으로 채우려면 어떻게 해야 합니까?

가상 게스트를 백업하기 전에 디스크 공간을 최적화하는 스크립트를 실행합니다(실제로 어떤 하이퍼바이저를 사용하는지는 중요하지 않습니다).

최신 Ubuntu 버전(예: 18.04)은 /swapfile기본적으로 파티션 대신 파티셔닝을 사용하는 것 같습니다. 그것도 좋습니다.

그러나 스왑 파일과 이를 포함하는 루트 파티션을 0으로 채우고 싶습니다.

교환이 있습니다분할$UUID스왑 파티션에서 기존 파티션을 추출하고 파티션을 0으로 만든 후 실행하여 mkswap -U $UUID해당 스왑 파티션을 다시 생성하는 방법이 항상 있기 때문에 이는 비교적 고통스럽지 않습니다 .

그러나 /swapfile어떻게 해야 할지 모르겠습니다. /swapfileUUID를 통해 설치할 수 없다는 것을 알고 있지만 /etc/fstab여전히 UUID를 유지하고 싶습니다.

따라서 계속 진행하려면 다음 중 하나가 필요하다고 생각합니다.

  1. 스왑 파티션으로 만드는 구조를 지우지 않고 스왑 파일을 0으로 채울 수 있는 방법이 필요합니다(예: 실행 방지 mkswap -U $UUID).
  2. 교환에서 기존 UUID를 검색하는 방법이 필요합니다.문서blkid( 보기 에 무엇이든 사용할 수 있는 파티션과는 반대입니다 /dev/disk/by-uuid/$UUID...)

답변1

  1. 이렇게 하면 스왑 파일을 다시 생성하는 것만큼 완전히 지워지지는 않지만 첫 번째 4KiB(엄격히 아키텍처에 따라 첫 번째 페이지)를 건너뛴 후 지우면 어떤 구조도 건드리지 않습니다. 스왑 파일을 식별합니다. .

  2. blkid스왑 파일에서도 잘 작동합니다.

    $ 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"
    

헤더 형식은 다음과 같습니다.커널에 정의됨: 이전 형식은 첫 번째 페이지 끝에 마법 같은 가치가 있었지만, 새로운 형식은 이를 1KiB의 여유 공간과 쉽게 들어갈 수 있는 여러 필드(버전, 크기, 잘못된 페이지, UUID, 태그)와 결합합니다. 첫 페이지.

관련 정보