分布を区別する方法は?

分布を区別する方法は?

ラズベリーパイを使っています。

さまざまなLinuxディストリビューションがあるようです。すべて.img形式です。私はWin32DiskImagerを使用してSDカードに書き込みます。

どのファイルが変更されたのか、どうすればわかりますか?

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です。 2 番目のパーティション 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パーティション(2番目のパーティション)をマウントするには、次のようにします。

$ 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

引用する

関連情報