ラズベリーパイを使っています。
さまざまな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