분포를 구별하는 방법은 무엇입니까?

분포를 구별하는 방법은 무엇입니까?

나는 라즈베리 파이를 사용하고 있습니다.

다양한 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

인용하다

관련 정보