Mac OS標準の環境で、LinuxなどのブータブルUSBを作成する方法。
VMWare ESXiはUSBにコピペで可能でありますが、Linuxなどについて、公式サイトのISOからダウンロードしてブータブルUSBを作成する手法がちょっとググった感じだとあまりヒットしなかったので、作業メモとしてまとめておきます
公式サイトからダウンロードしたISOファイルをMacで扱える形式に変換する(hdiutil)
おおよそ大体のサイトはiso
形式のファイルのため、これをMacOSが扱えるimg
ファイルに変換します。もちろんiso
ファイルもMacOSは認識しますが、ブータブルUSBにするためには一度img
に変換する必要があります。
今回はDebianの公式リポジトリにあるDebian12.0(Stable)版debian-12.0.0-amd64-DVD-1.iso
を利用します。
1
| hdiutil convert -format UDRW debian-12.0.0-amd64-DVD-1.iso -o debian-12.0.0-amd64.img
|
上記を実行すると以下のようになります。
1
2
3
4
5
6
7
8
9
10
11
| Driver Descriptor Map(DDM: 0)を読み込み中…
Debian 12.0.0 amd64 1 (Apple_ISO: 1)を読み込み中…
Apple(Apple_partition_map: 2)を読み込み中…
Debian 12.0.0 amd64 1 (Apple_ISO: 3)を読み込み中…
EFI(Apple_HFS: 4)を読み込み中…
Debian 12.0.0 amd64 1 (Apple_ISO: 5)を読み込み中…
...............................................................................
経過時間: 4.033s
速度: 929.4Mバイト/秒
節約率: 0.0%
created: debian-12.0.0-amd64.img.dmg
|
debian-12.0.0-amd64.img.dmg
と、なぜかimg
形式を指定したのにimg.dmg
に変換されています
作成したファイルをUSBに書き込む(diskutil)
diskutil
コマンドを利用して、(本体のSSDを上書きしないように)USBデバイスを確認します。その後、USBデバイスに対して書き込みを行います
1
2
3
4
5
6
7
8
9
10
| diskutil list
##略
##
/dev/disk4 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *15.5 GB disk4
1: Apple_partition_map 32.3 KB disk4s1
2: Apple_HFS Install OS X El Capitan 15.4 GB disk4s3
|
external, physical
(外部、物理)デバイスであることがポイントです。
今回は、El CapitanをインストールするためのブータブルUSBとして利用していたUSBを利用することにしました。ちなみにBuffaloのこのシリーズ16GBかつ、最小のUSBが最近は1000円程で購入できる、尚且つ飛び出ない(重要)、この端末からあまり飛び出ないシリーズは非常に使い勝手が良いです。
さて、/dev/disk4
がUSBディスクであることを確認しました。df
コマンド(オプションh
を指定してみやすく表示を)利用すると、
1
2
3
4
| df -h|grep disk4
#結果
/dev/disk4s3 14Gi 5.8Gi 8.5Gi 41% 718 4294966561 0% /Volumes/Install OS X El Capitan
|
となっています。まずはこれに対してUSBの初期化をします
USBディスクを初期化する
diskutil
を利用してMS-DOS
で初期化し、UNTITLED
という名前を付け直します.いわゆるDOS起動モードのUSBとしてフォーマットするわけです。
1
| diskutil eraseDisk MS-DOS UNTITLED /dev/disk4
|
(論理的に)アンマウントする
物理的に抜くのではなくOSが認識している領域からアンマウントします。続く処理でこちらに対して、物理的に同じデータを流し込むためです。
1
2
3
4
| diskutil unmountDisk /dev/disk4
#結果
Unmount of all volumes on disk4 was successful
|
dd コマンドで USB メモリーに書き込む
アンマウントして物理的に接続されており、デバイスとしては認識されているUSBに対して、dd
コマンドでブロック単位でイメージを書き込みます。
ちなみに、/dev/rdisk4
の、rdiskuを指定しないと、めちゃくちゃ時間かかります。UNIX(Mac)からみた時に
- disk - ランダムアクセスデバイス
- rdisk - シーケンシャルアクセスデバイス
という違いがありますが、dd
コマンドはブロック単位のコピーコマンドであるため、ランダムアクセスが発生しません。通常、デバイスを利用するときはランダムアクセスをするdisk
の方がI/Oが優れていますが、dd
コマンドに限ってはrdisk
でのデバイス操作が圧倒的に早いです。
ちなみに、disk
で以下の操作をすると、1時間以上必要としました(笑
しばしば忘れるので、備忘録として…実行時の環境macOS 10.14.6 Mojave準備iTerm2などのコンソールが利用できること対象ISOイメージはカレントディレクトリにあるものとし…
1
2
3
4
5
6
| sudo dd if=./debian-12.0.0-amd64.img.dmg of=/dev/rdisk4 bs=1m
#結果
3748+1 records in
3748+1 records out
3931095040 bytes transferred in 580.784440 secs (6768596 bytes/sec)
|
書き込みが終了すると、「(Macが)認識できないフォーマットなので 初期化しますか?」のポップアップが上がってきますが、**ここで初期化してしまうと、元に戻ってしまうので、注意しましょう。**無視です。無視。
あとは最後にUSBデバイスをMacから外し、実際にインストールしたい端末にさして、起動すると、Linuxなり、Proxmoxなりがインストール可能となっています。
Proxmox VEのブータブルUSBを作る手順
基本的に上記と同じです。参考までに作業ログを残しておきます
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| ❯ hdiutil convert -format UDRW proxmox-ve_8.0-2.iso -o proxmox-ve_8.0-2.img
Driver Descriptor Map(DDM: 0)を読み込み中…
PVE (Apple_ISO: 1)を読み込み中…
Apple(Apple_partition_map: 2)を読み込み中…
PVE (Apple_ISO: 3)を読み込み中…
Gap0(ISO9660_data: 4)を読み込み中…
HFSPLUS_Hybrid(Apple_HFS: 5)を読み込み中…
......................................................................................................................................................................
Gap1(ISO9660_data: 6)を読み込み中…
......................................................................................................................................................................
経過時間: 2.175s
速度: 523.7Mバイト/秒
節約率: 0.0%
created: proxmox-ve_8.0-2.img.dmg
❯ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk0
1: Apple_APFS_ISC Container disk1 524.3 MB disk0s1
2: Apple_APFS Container disk3 994.7 GB disk0s2
3: Apple_APFS_Recovery Container disk2 5.4 GB disk0s3
/dev/disk3 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +994.7 GB disk3
Physical Store disk0s2
1: APFS Volume Macintosh HD 9.6 GB disk3s1
2: APFS Snapshot com.apple.os.update-... 9.6 GB disk3s1s1
3: APFS Volume Preboot 9.7 GB disk3s2
4: APFS Volume Recovery 1.6 GB disk3s3
5: APFS Volume Data 827.9 GB disk3s5
6: APFS Volume VM 5.4 GB disk3s6
/dev/disk4 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *8.1 GB disk4
1: Apple_partition_map 4.1 KB disk4s1
2: Apple_HFS 9.7 MB disk4s2
❯ diskutil eraseDisk MS-DOS UNTITLED /dev/disk4
Started erase on disk4
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk4s2 as MS-DOS (FAT) with name UNTITLED
512 bytes per physical sector
/dev/rdisk4s2: 15334112 sectors in 1916764 FAT32 clusters (4096 bytes/cluster)
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=32 hds=255 hid=411648 drv=0x80 bsec=15364096 bspf=14975 rdcl=2 infs=1 bkbs=6
Mounting disk
Finished erase on disk4
❯ diskutil unmountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
❯ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk0
1: Apple_APFS_ISC Container disk1 524.3 MB disk0s1
2: Apple_APFS Container disk3 994.7 GB disk0s2
3: Apple_APFS_Recovery Container disk2 5.4 GB disk0s3
/dev/disk3 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +994.7 GB disk3
Physical Store disk0s2
1: APFS Volume Macintosh HD 9.6 GB disk3s1
2: APFS Snapshot com.apple.os.update-... 9.6 GB disk3s1s1
3: APFS Volume Preboot 9.7 GB disk3s2
4: APFS Volume Recovery 1.6 GB disk3s3
5: APFS Volume Data 827.9 GB disk3s5
6: APFS Volume VM 5.4 GB disk3s6
/dev/disk4 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *8.1 GB disk4
1: EFI EFI 209.7 MB disk4s1
2: Microsoft Basic Data UNTITLED 7.9 GB disk4s2
❯ sudo dd if=./proxmox-ve_8.0-2.img.dmg of=/dev/rdisk4 bs=1m
1139+1 records in
1139+1 records out
1194483712 bytes transferred in 200.517462 secs (5957006 bytes/sec)
|