디스크 이미지 파일 시스템 유형 확인

디스크 이미지 파일 시스템 유형 확인

디스크 이미지의 파일 시스템 형식을 확인하는 방법은 무엇입니까?

해당 명령을 사용하여 확인할 수 있다는 것을 알고 있지만 file해당 동작을 자동화하고 싶습니다.

$ file img.raw
img.raw:   data

$ file img.ext4
img.raw:   Linux rev 1.0 ext4 filesystem data, UUID=346712e7-1a56-442b-a5bb-90ba4c6cc663 (extents) (64bit) (large files) (huge files)

$ file img.vfat
img.vfat:  DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 16, reserved sectors 16, root entries 512, Media descriptor 0xf8, sectors/FAT 256, sectors/track 32, heads 64, sectors 1024000 (volumes > 32 MB) , serial number 0x4b5e9a12, unlabeled, FAT (16 bit)

특정 이미지 디스크가 해당 형식으로 포맷되어 있는지 확인하고 싶습니다.

예를 들어 checkfs <image> <format>이미지에 "형식" 파일 시스템이 포함되어 있으면 0을 반환하고, 그렇지 않으면 다른 값을 반환합니다.

비슷한 작업을 수행하고 반환 코드를 확인하려고 생각했지만 file <image> | grep <format>vfat filesystems 의 출력에 "vfat"가 표시되지 않습니다 file.

이를 수행하기 위한 스크립트를 작성할 수도 있지만 디스크 이미지의 파일 시스템 형식을 가져올 수 있는 도구를 찾을 수 없습니다.

또한 다음 도구를 사용해 보았습니다: fdisk, parteddf.

디스크 이미지 파일 시스템 형식을 확인하고 가장 일반적으로 사용되는 파일 시스템 형식과 작동할 수 있는 도구가 있습니까?

답변1

드디어 나에게 필요한 것을 찾았다

  • blkid -o value -s TYPE <image>fs 유형을 반환합니다. 원시 데이터인 경우 아무것도 반환되지 않습니다.

편집하다:

@psusi가 언급했듯이 parted기계로 구문 분석 가능한 출력이 있습니다. 사용하기 쉽지는 않지만 blkid유용하다고 생각합니다.

  • parted -m <image> print | tail -n +3 | awk -F ":" '{print $(NF-2)}'각 파티션의 파일 시스템 유형이 인쇄됩니다.

tail -n +3처음 두 줄을 건너뛰고
awk -F ":" '{print $(NF-2)}'fs 유형, 즉 끝에서 시작하여 마지막에서 세 번째 요소를 가져오는 데 사용됩니다.

관련 정보