コマンド備忘録
OS イメージなどの .img ファイルが手元にあり、それを SD カードに焼きこむ方法。
デバイスの検出
SD カードをリーダー/ライター等に差し込むと、カーネルがイベントを記録する。 dmesg
コマンドでイベントログを見れるので、ログ末尾のほうに記録されているはずのデバイス割り当てログを確認してデバイスを調べる。
$ sudo dmesg
[20466.141180] sd 0:0:0:0: [sda] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
[20466.143163] sda: detected capacity change from 0 to 62333952
[20466.144469] sda: sda1 sda2
ドライブは、マシンから検出された順に sda, sdb, sdc … のようなアルファベットの順が付与されたドライブ名が割り当てられる。また、そのドライブに複数のパーティションがある場合、 sda1, sda2, … のように数字が振られてパーティションが区別される。
この段階で /dev
を確認すると、検出されたドライブが存在することを確認できる。
デバイス詳細の閲覧
fdisk
コマンドを利用して、デバイスの詳細について確認できる。
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 8.21 GiB, 8810098688 bytes, 17207224 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
Disklabel type: dos
Disk identifier: 0x92a5a1c0
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M c W95 FAT32 (LBA)
/dev/sda2 1050624 17207223 16156600 7.7G 83 Linux
イメージの焼きこみ
dd
コマンドを使用して、イメージファイルをデバイスに書き込む。
書き込む際、既存のファイルシステムに対して書き込むわけではない (すでにあるものを破壊してデバイス先頭から書き込む) ので、デバイスをマウントする必要はない。パーティションも無視する。
(書き込み先のデータはすべてロストする)
$ sudo dd if=sd-blob-b01.img of=/dev/sda bs=8M status=progress
8810098688 bytes (8.8 GB, 8.2 GiB) copied, 1694 s, 5.2 MB/s
1050+1 records in
1050+1 records out
8810098688 bytes (8.8 GB, 8.2 GiB) copied, 1693.8 s, 5.2 MB/s