MacOSXでISOやIMGファイルからブータブルUSBの作成手順。
毎度「macOS(今回はHigh Sierra)でどう作るんだっけ?」とググる自分に嫌気を覚えたのでメモ。
書き込みにはddコマンドを利用しますが、/dev/rdiskX
と/dev/diskX
の速度比較を行った結果、
やはり/dev/rdiskX
に軍配が上がりました。
用意するもの
- インストールメディアのISOファイル
- ISOファイルのサイズ以上の容量があるUSBメモリ
- Macのターミナルアプリ
USBを初期化する
USBメモリをMacに接続しフォーマットします。”ディスクユーティリテ”アプリから行ってもいいのですが、 スクリーンショットを取るのがめんどくさかったので今回はコマンドラインから操作しました。
デバイス名を確認します。
私の環境では、以下のように表示され、/dev/disk2
というのがわかりました。
※私はディスク容量などで判断していますが、USBをさす前・さした後の差分で確認する方法もあります。
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 250.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Macintosh HD *249.8 GB disk1
Logical Volume on disk0s2
03010883-5866-4002-BDA4-FF6EDA3E4A96
Unlocked Encrypted
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *15.6 GB disk2
1: EFI EFI 209.7 MB disk2s1
2: Microsoft Basic Data UNTITLED 15.4 GB disk2s2
MS-DOS(FAT)形式で対象(/dev/disk2
)を初期化します。
$ diskutil eraseDisk MS-DOS UNTITLED /dev/disk2
ISOファイルの書き込み
ddコマンドを利用してISOイメージをUSBに書き込むわけですが、USBをフォーマットした状態では Finder上でマウントされたままなので以下のコマンドでアンマウントします。
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
ddコマンドでISOファイルを書き込みます。なおデバイスファイル(/dev/diskN)は一般ユーザでのアクセス権がないためsudo
が必要です。
$ sudo dd if=./CentOS-7-x86_64-Minimal-1708.iso of=/dev/rdisk2 bs=1m
USBメモリを取り外す
ddの実行にはしばらくかかります。気長に待ちましょう。
USBメモリへ書き込みが完了したら、以下のコマンドで取り外せる状態にします。
$ diskutil eject /dev/disk2
念のため、diskutl list
を確認しましょう。/dev/disk2
のエントリーがなくなっているはずです。
/dev/rdiskX と /dev/diskXの速度比較
書き込み速度の比較を行うため、2つのイメージファルをUSBメモリへ書き込みを行ってみました。
- CentOS-7-x86_64-Minimal-1708.iso : 792MB(830472192bytes)
- 2017-11-29-raspbian-stretch-lite.img : 1.7GB(1858076672bytes)
CentOS-7-x86_64-Minimal-1708.isoでの比較
まずは/dev/rdiskX
から
$ time sudo dd if=./CentOS-7-x86_64-Minimal-1708.iso of=/dev/rdisk2 bs=1m
792+0 records in
792+0 records out
830472192 bytes transferred in 214.985391 secs (3862924 bytes/sec)
real 3m36.033s
user 0m0.026s
sys 0m0.995s
続いて/dev/diskX
$ time sudo dd if=./CentOS-7-x86_64-Minimal-1708.iso of=/dev/disk2 bs=1m
792+0 records in
792+0 records out
830472192 bytes transferred in 866.579114 secs (958334 bytes/sec)
real 14m28.131s
user 0m0.024s
sys 0m11.338s
rdisk
の方が4倍くらい早いですね!
2017-11-29-raspbian-stretch-lite.imgでの比較
まずは/dev/rdiskX
から
$ time sudo dd if=./2017-11-29-raspbian-stretch-lite.img of=/dev/rdisk2 bs=1m
1772+0 records in
1772+0 records out
1858076672 bytes transferred in 344.975275 secs (5386115 bytes/sec)
real 5m46.314s
user 0m0.031s
sys 0m1.859s
続いて/dev/diskX
$ time sudo dd if=./2017-11-29-raspbian-stretch-lite.img of=/dev/disk2 bs=1m
1772+0 records in
1772+0 records out
1858076672 bytes transferred in 415.503828 secs (4471864 bytes/sec)
real 6m56.569s
user 0m0.029s
sys 0m23.069s
思ったほど差は出ませんでした。
試行回数が少ないので、速度差を細かく出してはいないですが/dev/rdiskX
を指定してddコマンドを実行した方が良さそうですね。
以上で、BootableUSBの作成は完了です。