ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
IMG ファイル(拡張子 .img)は、ハードディスク・SSD・USB メモリ・SD カード・フロッピーディスクといった ブロックデバイスの全セクタを、先頭から末尾までそのままバイト列として保存した raw イメージファイル です。ファイルの内容物に余計なメタデータは一切含まれず、デバイスのバイト列がそのまま保存されているだけ、というシンプルな構造をしています。
ISO ファイルとよく似ていますが、ISO が 光学ディスク(ISO 9660 / UDF が前提) のイメージであるのに対し、IMG は パーティションテーブル(MBR または GPT)を含む任意のブロックデバイス を対象とできる点が異なります。1 枚の IMG ファイルの中に ブートローダー + EFI システムパーティション + ルートファイルシステム + データ領域 のように複数パーティションを含めることが普通です。
現代における代表的な用途は シングルボードコンピュータ向け OS の配布 です。Raspberry Pi OS、Ubuntu Server for Raspberry Pi、Armbian、LibreELEC、RetroPie、ESP32 / ESP8266 のファームウェアなど、SD カードや eMMC に直接書き込んで起動する OS は IMG 形式で配布されるのが普通です。Raspberry Pi 公式の Raspberry Pi Imager は IMG をダウンロード→書き込みまで一気通貫で実行する GUI ツールとして広く使われています。
IMG ファイルは内容がそのままバイト列なので 非常に巨大 になります。32 GB の SD カードを丸ごと吸い出すと(書き込み済みデータ量によらず)32 GB の IMG ファイルになります。配布時は .img.gz / .img.xz / .img.zip といった形で圧縮されることがほとんどです。空き領域が大量の 0x00 で埋まっているため、圧縮効率は非常に良くなります。
内部構造
IMG ファイルには ヘッダもメタデータも存在しません。先頭から末尾まで、ディスクと同じバイト列がそのまま入っています。典型的な 1 GB IMG の中身を見ると次のような構造をしています。
| オフセット | 内容 | 説明 |
|---|---|---|
| 0x000 - 0x1FF | MBR(Master Boot Record) | ブートコード + パーティションテーブル(最大 4 エントリ) |
| 0x200 - 0x? | パーティション 1(例: EFI System / FAT32) | ブートローダーや UEFI 用ファイル |
| 0x? - 0x? | パーティション 2(例: Linux root / ext4) | OS のルートファイルシステム |
| ... | 追加のパーティション | swap、データ領域など |
| 末尾 | 未使用領域(0x00 で埋まっていることが多い) | 配布時に圧縮で潰される |
GPT(GUID Partition Table)を使う近年の IMG は MBR の代わりに先頭に Protective MBR + GPT ヘッダ、末尾に GPT バックアップ が配置されます。Raspberry Pi OS のように MBR + FAT32 ブートパーティション + ext4 ルートという構成が組み込み界隈では今も主流です。
主な用途
- SBC(シングルボードコンピュータ)の OS インストール — Raspberry Pi / Orange Pi / Rock Pi / BeagleBone などの SD カード書き込み
- 組み込み機器のファームウェア配布 — ルーター・NAS・産業用デバイスの初期化イメージ
- USB ブートメディアの作成 — Linux ライブ環境、レスキューシステム
- ディスククローン・バックアップ — 起動可能な状態を含めた完全バックアップ。
ddで吸い出し / 書き戻し - 仮想マシン用ディスク — QEMU は
.imgをそのまま仮想ディスクとして起動できる(-drive file=disk.img,format=raw) - フォレンジック調査 — 押収媒体のビット単位コピー(
dd/dcfldd/ FTK Imager)
関連形式との比較
| 形式 | 対象 | 圧縮 | 備考 |
|---|---|---|---|
| IMG(raw) | 任意のブロックデバイス | なし | シンプル・ツール非依存 |
| ISO | 光学ディスク | なし | ISO 9660 / UDF 前提 |
| VHD / VHDX | 仮想ディスク | 差分・可変対応 | Microsoft 仮想化 |
| VMDK | 仮想ディスク | 分割・差分対応 | VMware 仮想化 |
| QCOW2 | 仮想ディスク | あり / 差分 / 暗号化 | QEMU/KVM 標準 |
| DMG | macOS イメージ | あり | Apple 独自、HFS+/APFS |
IMG は 最もプリミティブで互換性が高い 反面、サイズが大きく差分・スナップショットなどの高機能はありません。仮想マシン用途では QCOW2 や VHDX のほうが効率的です。
コマンド・ツール
SD カードへの書き込み(デバイス名は lsblk で必ず確認):
# 圧縮イメージを直接書き込み(パイプで展開)
xzcat 2024-03-15-raspios-bookworm-arm64.img.xz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
sync
# 平文 IMG の書き込み
sudo dd if=disk.img of=/dev/sdX bs=4M status=progress conv=fsync
ディスク → IMG への吸い出し(バックアップ):
# SD カードを丸ごと IMG 化(圧縮しながら)
sudo dd if=/dev/sdX bs=4M status=progress | gzip -c > sdcard-backup.img.gz
IMG 内のパーティションをマウント:
# 方法 1: losetup -P でパーティション認識
sudo losetup -fP --show disk.img
# → /dev/loop0, /dev/loop0p1, /dev/loop0p2 が現れる
sudo mount /dev/loop0p2 /mnt/root
# 方法 2: kpartx
sudo kpartx -av disk.img
sudo mount /dev/mapper/loop0p2 /mnt/root
# 後始末
sudo umount /mnt/root
sudo losetup -d /dev/loop0
注意点
ddのof=を絶対に間違えない。誤って/dev/sda(システムディスク)を指定するとシステムが即座に破壊される。lsblk -fで対象を確認する習慣を- ブロックサイズ(
bs=)は 1M〜4M 程度を指定すると速い。デフォルトの 512 バイトでは遅すぎる - SD カードの容量より大きな IMG は当然書き込めない。逆に小さい場合は末尾領域が未使用のまま残るので、書き込み後にパーティションを拡張する(
raspi-configやpartedで resize) - 圧縮 IMG(
.img.xz/.img.gz)を一度展開してから書くより、xzcat | ddやgunzip -c | ddでパイプしたほうがディスク容量を節約できる - Windows でのデバイス書き込みは GUI ツール(Raspberry Pi Imager / Rufus / balenaEtcher)を使うほうが安全。生
ddは MSYS / WSL でも動くがリスクが高い - IMG ファイルは 差分やスナップショットを持てない。VM 用途では QCOW2 / VHDX のほうがディスク効率と運用性で優れる
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?