.img 파일을 마운트하지 않고 찾아 볼 수 있습니까? clonezilla 파티션 스냅 샷에서 생성 한 .img 파일이 있습니다. 어떻게 든 명령을 사용하여 파일을 마운트하는 데 문제가 있습니다 mount -o loop sda5.img /mnt/
.
dmesg | tail
다음과 같은 오류가 표시됩니다.
[1325.395286] EXT4-fs (loop0) : 잘못된 형상 : 블록 수 11221248이 장치 크기를 초과 함 (11218432 블록)
누구나 마운트하지 않고 탐색하는 방법이 나이 오류의 원인을 알고 있습니까?
답변
이것이 전체 하드 드라이브의 이미지이거나 확장 파티션의 이미지 일 수있는 경우, 파티션 레이아웃과 파일에서 각 파티션의 오프셋을 알아야 마운트 할 수 있습니다.
이렇게하려면 parted
도구 가 필요합니다 . 다음 명령으로 도구를 설치할 수 있습니다.
apt-get install parted
설치 후 parted
이미지 파일 경로로 시작하십시오. parted
프롬프트가 표시됩니다 :
$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)
이 프롬프트 (앞에 접두사 (parted)
)에 다음 명령을 입력하십시오.
(parted) unit B
(parted) print
.....
Number Start End Size Type File system Flags
1 1048576B 1573912575B 1572864000B primary ntfs boot
2 1573912576B 156774694911B 155200782336B primary ntfs
3 156774694912B 171454758911B 14680064000B primary ntfs
4 171454758912B 180044693503B 8589934592B primary
(parted) q
출력의 표는 파일의 각 파티션 오프셋과 각 파티션의 파일 시스템 유형을 알려줍니다. 예를 들어 위의 예제 출력에서 첫 번째 파티션을 마운트하려면 다음 명령을 입력해야합니다.
sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition
/mnt/partition
먼저 존재 하는지 확인하십시오 .
답변
Clonezilla 스냅 샷에서 생성 된 ext4 이미지에서도 이와 동일한 문제가 발생했습니다.
실제로 나를 위해 일한 것은 truncate를 사용하여 파티션 테이블이보고하는 크기로 파일을 확장하는 것이 었습니다. 내 경우에보고 된 오류 dmesg는 다음과 같습니다.
[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
of device (18352672 blocks)
그래서 파일 길이를 다음과 같이 조정했습니다.
truncate -o -s 18482176 /path/to/partition.img
(^ 로그에서 두 숫자 중 첫 번째 숫자이며 더 큼)
그 후 마운트는 행복했고 내 데이터에 액세스 할 수있었습니다.