目次

MacでDebianやProxmoxのブータブルUSBを作成する


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時間以上必要としました(笑

MacでISOを焼いてブート可能なUSBを作る - Qiita

しばしば忘れるので、備忘録として…実行時の環境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)