우리는 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
첫 번째 명령은 각 파티션에서 파일 시스템 정보를 제거합니다.
두 번째 명령은 파티션 테이블을 삭제합니다.