gpt 파티션 테이블을 지우고 이전 파티션에서 마운트 정보를 잊게 만드는 방법

gpt 파티션 테이블을 지우고 이전 파티션에서 마운트 정보를 잊게 만드는 방법

우리는 256MB RAM과 4GB eMMC를 갖춘 Beaglbone 블랙 기반 맞춤형 보드를 가지고 있습니다.

소프트웨어를 새로 고치기 위한 스크립트가 보드에 있습니다.
스크립트는 다음 명령을 사용하여 gpt 파티션 테이블을 지웁니다.

#Delete primary gpt (first 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=17
#Delete secondary gpt (last 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 seek=3735535 bs=1024 count=17

파티션은 삭제되지만 스크립트는 동일한 수의 파티션에서 eMMC를 다시 파티션합니다. 그런 다음 (e2fsprogs 버전 1.42.13)을 사용하여 각 파티션을 포맷하려고
시도합니다 .mkfs.ext4

이제 파티션을 포맷하면 mkfs.ext4파티션에 파일 시스템이 있고 과거 특정 날짜에 마운트됐다고 불평하며 계속해야 할지 묻는다.

/dev/mmcblk0p15 contains a ext4 file system labelled 'rootfs'
        last mounted on /mnt/rfs_src on Fri Feb 16 13:52:18 2018
Proceed anyway? (y,n)

이전 버전의 IE에서는 e2fsprog에서는 이런 일이 발생하지 않았으며 1.42.8
동일한 스크립트가 작동했습니다.

릴리스 노트에서 일부 구조에 추가된 e2fsprog-1.42.13것을 볼 수 있습니다 .last mounted

이제 문제는 last mounted파티션에서 이 정보를 어떻게 제거할 것인가 하는 것입니다.

시도했지만 wipfs -a동일한 동작이 발생합니다. eMMC를 0으로 만드는 방법 중 하나이지만 시간이 많이 걸립니다.

어떤 제안/포인터가 있습니까?

답변1

~에서mkfs.ext4다음에 대한 매뉴얼 페이지:

   -F     Force mke2fs to create a filesystem, even if the specified
          device is not a partition on a block special device, or if
          other parameters do not make sense.  In order to force mke2fs
          to create a filesystem even if the filesystem appears to be in
          use or is mounted (a truly dangerous thing to do), this option
          must be specified twice.

-F문제를 우회하고 무인으로 계속 실행되도록 하려면 스크립트에 옵션을 추가하기만 하면 됩니다 . mkfs.ext4설명에서는 "또는 다른 매개변수가 의미가 없는 경우"라는 것이 명확하지 않습니다. 다시 확인했는데 하나만 필요하므로 -F마운트된 파일 시스템이 실수로 포맷되는 것을 방지할 수 있습니다.

마지막으로 설치된 디렉토리는 이것과 아무 관련이 없다고 생각합니다. 단지 더 많은 안전 기능을 추가했을 뿐입니다. 마찬가지로 일부 최신 버전의 대화형 fdisk 또는 gdisk는 그 반대 작업을 수행합니다. 즉, 새 파티션을 생성할 때 이전 파일 시스템의 존재를 감지하면 삭제 서명을 제공합니다.

답변2

@frostschutz 덕분에 그의 제안이 효과가 있었습니다.
완전성을 위해 이것을 답변으로 추가하고 있습니다.

다음 명령을 사용하면 나에게 효과적이었습니다.

wipefs -a /dev/mmcblk0p[0-9]*
wipefs -a /dev/mmcblk0

첫 번째 명령은 각 파티션에서 파일 시스템 정보를 제거합니다.
두 번째 명령은 파티션 테이블을 삭제합니다.

관련 정보