디스크의 파티션 테이블을 지우려면 `wipefs`에 --force가 필요합니까?

디스크의 파티션 테이블을 지우려면 `wipefs`에 --force가 필요합니까?

매뉴얼 wipefs페이지에는 다음과 같이 나와 있습니다.

-f, --force 파일 시스템이 마운트된 경우에도 강제로 지우십시오. 이는 블록 장치의 파티션 테이블 서명을 지우는 데 필요합니다..

즉, 블록 장치의 파티션 테이블 서명을 덮어쓰고 싶을 때마다 -f.

매뉴얼 페이지 뒷부분에 제공된 사용 예 중 하나는 다음과 같습니다.

wipefs --all --backup /dev/sdb 모든 서명 제거/dev/sdb 장치에서 ~/wipefs-sdb-<offset>.bak각 서명에 대한 서명 백업 파일을 만듭니다.

따라서 이 예에서는 분명히 파티션 테이블 서명을 포함하여 블록 장치에 대한 모든 서명을 다룹니다. 이전에 말한 내용에 따르면 -f.

지금은 그것을 사용해야 할지 말아야 할지 모르겠습니다 -f. 지우려고 할 때모두파티션 테이블을 포함하여 디스크의 서명에 --force이 옵션이 필요 합니까?

답변1

나는 매뉴얼 페이지의 표현이 불분명하거나 오해의 소지가 있다는 점에 동의합니다. 옵션 앞의 마지막 텍스트는 다음과 같습니다.

기본적으로 Wiefs는 전체 디스크가 아닌 장치에서 중첩된 파티션 테이블을 지우지 않습니다. 이를 수행하려면 --force 옵션을 사용하십시오.

-f여기서 그들은 포함된 옵션 아래의 텍스트와 다르게 표현된 전체 디스크가 아닌 장치에 대해 이야기하고 있습니다 .

--force는 "모든" 파티션 데이터를 지우는 데 필요하지도 충분하지도 않습니다.

아직 명확하지 않기 때문에 다음 구성표를 사용하여 파티션 테이블 데이터를 지우는 몇 가지 테스트를 수행했습니다.

  1. 장치(플래시 드라이브)에 MBR 파티션 테이블 생성
  2. 단일 파티션 생성
  3. 파티션에 vfat 파일 시스템을 배치하고 파일 시스템에 레이블을 지정합니다.
  4. wipefs다양한 매개변수를 사용하여 파티션 테이블 데이터 지우기
  5. 결과 확인: 여기에는 wipefs작업 중 출력, 장치의 출력 lsblk및 에서 장치를 연 결과가 포함됩니다 cfdisk. 또한 cfdisk기기에 동일한 파티션 테이블과 파티션을 다시 생성한 후 다시 생성된 파티션에 이전 라벨이 있는지 관찰하세요.

결론적으로:

  1. 이 간단한 파티션 구성표를 사용하고 파티션을 마운트 해제하는 경우 강제 옵션은 wipefs(파티션이 아닌) 장치에서 실행될 때 삭제되는 데이터에 영향을 미치지 않습니다. 즉, 파티션 테이블은 실행 wipefs -a /dev/sdX여부 에 관계없이 wipefs -af /dev/sdX장치에서 지워집니다 . 그러나 파티션 테이블이 에서 다시 생성되면 cfdisk이전 레이블이 발견되어 새 파티션에 적용됩니다. 따라서 파티션 테이블은 지워지지만 파티션 자체의 데이터는 지워지지 않습니다. 실행 중 출력은 wipefs이와 일치합니다.

  2. 실제 삭제모두장치의 파티션 테이블뿐만 아니라 파티션에 대한 데이터, 모든 파티션은 장치가 나열되기 전에 명시적으로 나열되어야 합니다. 매뉴얼 페이지는 텍스트의 세 번째 단락의 예에서 이에 대해 힌트를 줍니다(터미널에 복사/붙여넣는 동안 예상치 못한 일이 발생하지 않도록 sdc를 sdX로 변경했습니다).

    wipefs -a /dev/sdX1 /dev/sdX2 /dev/sdX
    

    또는 쉘이 와일드카드 표현식을 사용하여 값을 채우도록 합니다.

    wipefs -a /dev/sdX? /dev/sdX
    

    이렇게 하면 장치의 모든 파티션 데이터와 파티션 테이블 자체가 성공적으로 삭제됩니다.

관련 정보