しばしば忘れるので、備忘録として…
実行時の環境
macOS 10.14.6 Mojave
準備
- iTerm2などのコンソールが利用できること
- 対象ISOイメージはカレントディレクトリにあるものとして、予めcdしておくこと
USBメモリのフォーマット
USBメモリを接続し、ディスクの一覧を取得します。
$ diskutil list
今回は16GBのメモリを接続したので、対象のディスクは /dev/disk2
となります。
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 251.0 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 250.7 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +250.7 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 47.7 GB disk1s1
2: APFS Volume Preboot 46.3 MB disk1s2
3: APFS Volume Recovery 510.5 MB disk1s3
4: APFS Volume VM 3.2 GB disk1s4
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *15.9 GB disk2
1: Windows_FAT_32 15.9 GB disk2s1
対象ディスクを MS-DOS
形式でフォーマットします。
$ diskutil eraseDisk MS-DOS UBUNTU /dev/disk2
仕様上、マウントポイントとするボリューム名を省略できません。
今回は ubuntu 20.04 のイメージを焼くので、適当に UBUNTU
とします。
(ちなみにディスクユーティリティのデフォルトは UNTITLED
なので、この辺はお好みで…)
出力例…
Started erase on disk2
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk2s2 as MS-DOS (FAT) with name UBUNTU
512 bytes per physical sector
/dev/rdisk2s2: 30522224 sectors in 1907639 FAT32 clusters (8192 bytes/cluster)
bps=512 spc=16 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=30552064 bspf=14904 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk2
ISOイメージの書き込み
ddを使うので、対象ディスクは先にアンマウントしておきます。
アンマウントしないと Resource busy
と怒られてしまいます。
$ diskutil unmountDisk /dev/disk2
ddは sudo で実行する必要があります。
$ sudo dd if=./ubuntu-20.04-live-server-amd64.iso of=/dev/rdisk2 bs=16m
ofオプションについて
/dev/rdisk2 と指定しています。
両者の違いは、
- disk … 通常のランダムアクセス
- rdisk … シーケンシャル(順次)アクセス
ということです。ddでランダムアクセスをしてしまうと激遅になります…
bsオプションについて
転送バイト数を指定しますが、デフォルトは512バイトです。
効率が悪いはずなので、ある程度上げます。
USB2.0 の実効上の最大転送速度が 40MB/s くらいなので、その半分弱程度…ということで適当に 16m
としています。
どうしても遅ければ環境に合わせた検証が必要なはずですが……
出力例…
56+1 records in
56+1 records out
952107008 bytes transferred in 28.497026 secs (33410750 bytes/sec)
私の環境では、950MBで30秒弱でした。
結果を見ると、転送速度は自動調整されているみたいですね。。
USBの取り出し
完了したら、USBは取り出します。
$ diskutil eject /dev/disk2
エラー表示も出ると思うので、そちらの画面のボタンから取り出しても大丈夫です。
Fin ❤︎