드라이브의 바이너리 복사본에 있는 기존 파일을 어떻게 볼 수 있나요?

드라이브의 바이너리 복사본에 있는 기존 파일을 어떻게 볼 수 있나요?

인사

저는 최근 Linux에서 압축과 복제의 개념을 연구하고 있습니다.

내가 소개받았을 때dd이 명령이 매우 유용하다는 것을 알았기 때문에 연습삼아 fat32 썸 드라이브를 파일에 조금씩 복사했습니다.

내가 순진하게 기대했던 것은 썸 드라이브 내부의 파일에 직접 액세스할 수 있다는 것이었지만, 비트 단위로 복사한 후에는 불가능했습니다. 이는 dd명령이 실제로 생성에만 사용될 수 있음을 시사합니다.다른파일 시스템 이미지.

현재 비트 단위 복사본에서 파일을 읽을 수 있는 명령을 찾고 있습니다. 그러한 명령이 존재합니까?

답변1

이 작업을 수행하는 경우 cp /dev/sdb1 file.img(또는 동일 dd하지만 여기에서 사용하는 것은 dd특히 기본 블록 크기의 경우 비생산적임) 장치의 첫 번째 파티션의 원래 내용을 sdb에 복사합니다 file.img. file.img해당 내용은 VFAT 형식의 파일 시스템이 됩니다. 이미지(예:iso이미지에는 ISO9660 유형 파일 시스템의 이미지가 포함되어 있으므로 파일에 액세스하려면 ustar/pax 파일 형식을 이해할 수 있어야 하는 것처럼 그 안의 파일에 액세스하려면 VFAT 파일 시스템을 이해해야 합니다. 아카이브에 tar.

/dev/sdb1Linux 커널은 /dev/sdb1디렉터리에 마운트한 후 파일에 액세스할 수 있는 방법인 VFAT 파일 시스템을 이해합니다.

블록 장치를 사용하여 일반 파일 내에 포함된 파일 시스템을 마운트할 수도 있습니다 loop.

sudo losetup -f --show file.img

f블록 장치처럼 작동하지만 일반 파일로 지원되는 루프 장치(해당 경로의 첫 번째 ree 장치 사용 show)가 생성됩니다.

그런 다음 를 사용하여 설치할 수 있습니다 sudo mount /dev/loopXX /some/directory.

이미지를 수정할 계획이 없다면 -r명령에 루프 장치를 추가하거나 읽기 전용으로 마운트하거나 에 옵션을 전달하여 -o ro루프 장치 자체를 읽기 전용으로 만들어야 할 것입니다.-rlosetup

요즘에는 다음 옵션을 통해 직접 수행할 수 있습니다 mount.losetup-o loop

sudo mount -o loop file.img /some/directory

-o loop최신 버전에서는 일반 파일을 마운트하려고 하면 루프 마운트를 원한다고 가정하므로 이를 건너뛸 수도 있습니다 .

sudo mount file.img /some/directory

VFAT 파일 시스템을 이해하는 다른 것들은 GNU 이며 / MS-DOS/Windows 명령( , , ... ) 접두사 (Microsoft/MS-DOS용) mtools를 사용하여 VFAT 형식 디스크의 파일이나 디스크 이미지에 액세스할 수 있습니다.COMMAND.COMCMD.EXEdirtypecopym

mdir -i file.img

에 포함된 VFAT 파일 시스템 루트의 내용이 나열됩니다 file.img.

관련 정보