나는 라즈베리 파이를 사용하고 있습니다.
다양한 Linux 배포판이 있는 것 같습니다. 모두 .img 형식입니다. 저는 Win32DiskImager를 사용하여 SD 카드에 굽습니다.
어떤 파일이 변경되었는지 어떻게 알 수 있나요?(누군가가 이 이미지는 distro X에서 만든 것이므로 dist를 사용할 수 있다고 합니다. 배포가 악성인가요?
Windows 7의 차이점을 알고 싶습니다. 하지만 배포판은 항상 Linux입니다.
답변1
.img 파일은 전체 디스크의 이미지 파일입니다. 따라서 2개 이상의 파티션을 포함할 수 있습니다. 디스크 이미지인 경우 예를 들어 디스크 관리 도구를 사용하여 fdisk
여기에 포함된 파티션 유형을 확인할 수 있습니다.
Archlinux-hf-2013-06-06.img의 내용
$ fdisk -l archlinux-hf-2013-06-06.img
Disk archlinux-hf-2013-06-06.img: 1960 MB, 1960837120 bytes
64 heads, 32 sectors/track, 1870 cylinders, total 3829760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004f23a
Device Boot Start End Blocks Id System
archlinux-hf-2013-06-06.img1 * 2048 186367 92160 c W95 FAT32 (LBA)
archlinux-hf-2013-06-06.img2 186368 3667967 1740800 83 Linux
따라서 출력을 보면 .img 파일에 2개의 파티션이 있음을 알 수 있습니다. 첫 번째는 FAT32 유형 파티션인 rchlinux-hf-2013-06-06.img1입니다. 두 번째 파티션 archlinux-hf-2013-06-06.img2는 Linux 파티션입니다.
2개의 파티션(2048 및 186368)의 시작 섹터를 확인하세요. 나중에 이러한 정보가 필요합니다. 또한 특정 섹터에 포함된 바이트 수(512바이트)도 확인하세요.
파티션 설치
Linux 파티션을 마운트하려면 먼저 시작 위치를 바이트 단위로 계산해야 합니다. 따라서 다음 계산을 수행하십시오.
part1: 2048 sectors * 512 bytes/sector = 1048576 bytes
part2: 186368 sectors * 512 bytes/sector = 95420416 bytes
따라서 Linux 파티션(두 번째 파티션)을 마운트하려면 다음을 수행하십시오.
$ sudo mount -o loop,offset=95420416 archlinux-hf-2013-06-06.img /mnt/
노트:FAT32 파티션을 마운트하려면 다음 명령을 사용할 수 있습니다.
$ sudo mount -t vfat -o loop,offset=1048576 archlinux-hf-2013-06-06.img /mnt/
이제 내용을 볼 수 있습니다:
$ ls /mnt|columns -c 4
bin boot dev etc
home lib lost+found media
mnt opt proc root
run sbin srv sys
tmp usr var
제거
작업을 마친 후 파티션을 마운트 해제하려면 다음 명령을 실행하십시오.
$ sudo umount /mnt
.img 파일의 내용 비교
여기에 아이디어가 있습니다. 2개의 .img 파일을 마운트한 다음 각 .img 파일에 포함된 2개의 디렉터리 트리를 재귀적으로 비교할 수 /mnt1
있습니다 /mnt2
.
2개의 .img 파일을 설치한 후 다음과 같은 명령을 실행하여 비교할 수 있습니다.
$ diff -qr /mnt1 /mnt2
그러면 파일과 해당 파일이 두 디렉터리 트리에서 다르거나 누락되었는지 여부가 출력됩니다.
kpartx - 파티션을 마운트하는 대체 방법
위의 계산을 하기에는 너무 게으른 경우 파티션을 사용하여 쉽게 마운트/마운트 해제할 수 있는 루프백 장치에 매핑 fdisk
할 수 있습니다 . kpartx
명령은 다음과 같습니다:
.img 파일 마운트 #1
$ sudo kpartx -av your-image1.img
add map loop0p1 (252:5): 0 117187 linear /dev/loop0 1
add map loop0p2 (252:6): 0 3493888 linear /dev/loop0 118784
$ sudo mount /dev/mapper/loop0p2 /mnt1
.img 파일 마운트 #2
$ sudo kpartx -av your-image2.img
add map loop1p1 (252:5): 0 117187 linear /dev/loop1 1
add map loop1p2 (252:6): 0 3493888 linear /dev/loop1 118784
$ sudo mount /dev/mapper/loop1p2 /mnt2