MacでブータブルUSBの作成に挑戦した話

こんにちは。[CYBIRD Advent Calendar 2024](https://qiita.com/advent-calendar/2024/cybird) 24日目担当の[@cy-seiyan](https://qiita.com/cy-seiyan)です。
イケメンシリーズにてクライアントサイド・サーバサイドの二刀流エンジニアをしております。
23日目は[@cy-yamaken](https://qiita.com/cy-yamaken)さんによる[「今更ながらPythonを学習してみました」](https://qiita.com/cy-yamaken/private/cd8db70727b2ca7d87c2)でした。

## きっかけ
プライベートで使用しているPC(2015年モデルのMacBookAir)が約9年選手になり大分ガタが来ていた＆AAAタイトルのゲームとか色んな事が出来るデスクトップPCが欲しいと思い、PCパーツを購入して自作した事と元々持っていたWindows11パッケージ付属のブータブルUSBが行方不明になってしまい自作したPCにOSを入れる事が出来ずヘコんでいたところMacでブータブルUSBを作成する術があると聞き、挑戦しました。

## WindowsのOSイメージとUSBを用意
容量が16GB程度のUSBを用意しMicrosoft公式からWindows11のディスクイメージファイル(ISO)をダウンロードする。

https://www.microsoft.com/ja-jp/software-download/windows11

## BootCampでUSBにOSイメージを入れようとしたが手詰まりになる
MacにはBootCampというとても便利なアプリケーションが存在するので当初、BootCampを使用しUSBにOSイメージを入れようとしたのですが、何故かUSBをインストール先に指定できず調査を行ったが解決方法が解らなくて手詰まりの状態に陥りました。
その他の方法としてサードパーティのアプリケーション(有償)をインストールし、それを使用しブータブルUSBを作成する方法もあるらしいのですが、あまり費用を掛けたくなかった為、色々調べてみたらMac標準のターミナルからブータブルUSBを作成する方法があるとの事でそっちを試す事にしました。

## USBメモリのディスク確認
USBメモリをPCのUSBポートに挿入して、接続されているディスクの一覧を以下コマンドで確認する事が出来ます。

```
$ diskutil list
```

コマンドを実行すると以下のような感じで出力されます。

```
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI ⁨EFI⁩                     209.7 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         250.8 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +250.8 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume ⁨Macintosh HD - Data⁩     166.7 GB   disk1s1
   2:                APFS Volume ⁨Preboot⁩                 785.8 MB   disk1s2
   3:                APFS Volume ⁨Recovery⁩                624.3 MB   disk1s3
   4:                APFS Volume ⁨VM⁩                      2.1 GB     disk1s4
   5:                APFS Volume ⁨Macintosh HD⁩            15.3 GB    disk1s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.3 GB    disk1s5s1

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *62.9 GB    disk2
   1:             Windows_FAT_32 ⁨NO NAME⁩                 34.4 GB    disk2s1
                    (free space)                         28.6 GB    -
```

USBメモリの容量からどのディスクがUSBメモリに該当するのかを判断する必要があり今回、私が用意したUSBメモリは64GBの代物なのでdisk2が該当します。

因みにこのdiskutil listというコマンドはbash側で用意されているコマンドで他にもディスクの修復やファイルシステムの検証等のコマンドがあるのですが、詳しい内容については[コチラ](https://renoji.com/IT.php?Contents=ShellScript_Bash/Cmd_diskutil.html)に。

## USBメモリを初期化
対象となるディスクをMS-DOS形式で初期化を行う。

```
diskutil eraseDisk MS-DOS UNTITLED /dev/disk2
```

## ディスクをアンマウントする
フォーマットするとマウントされたままで、一度アンマウントする必要があります。

```
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
```

## ISOイメージをUSBもといディスクに書き込む
ddコマンドを使ってISOイメージを書き込みます。
実行する際、sudoを使用してスーパーユーザ権限で書き込む必要があります。

```
$ sudo dd if=./Win11_23H2_Japanese_x64v2(USBに書き込むISOファイルのファイル名).iso of=/dev/disk2 bs=1m
Password:
6407+1 records in
6407+1 records out
6719094784 bytes transferred in 1502.587028 secs (4471684 bytes/sec)
```

## USBメモリの取り出し
書き込みが終わったらUSBメモリもといディスクを取り出す。

```
$ diskutil eject /dev/disk2
Disk /dev/disk2 ejected
```

これでブータブルUSBの完成。
あとは自作したPCにUSBを挿してライセンスキー入力すれば全て完了だ！と思い込んでいました。

## Windowsセットアップの画面でエラー発生

OSイメージが入ったUSBを自作したPCに挿してOSのインストールを始めたのですが、ドライバーの読み込み周りでエラーが発生しました。

![c1fa0efc-c403-466f-9209-1399b655eeef.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294447/9aded10c-36ec-2156-b824-d5e5313c6886.jpeg)
![12550a78-b8ff-4aa7-84bb-d67f9533d75f.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294447/9be44eb5-b64a-5249-362e-fcd99efadbab.jpeg)

この事象が起きる原因の調査＆ブータブルUSBの再作成を行っても同様の現象が発生し完全に詰んでしまい、どうする事も出来なくなり諸々調べていく中、Windowsのマシンでやった方が早いとの事で泣く泣くUSBを携え近所のネットカフェのWindowsPCでブータブルUSBを作成する事にし、[コチラ](https://news.mynavi.jp/techplus/article/20211018-2161746/)の記事を参考にし試したところ無事、Windows11のインストールが出来ました。

## まとめ
diskutilのコマンドを使ってWindowsのOSイメージを書き込んでブータブルUSBの作成に失敗しましたが、WindowsだからなのかOSイメージの書き込みに使用した私用PCのMacが悪いのか諸々調べてこれだ！という結果にたどり着く事が出来ませんでした。しかしbash側が用意しているディスク関連のコマンドとコマンドからブータブルUSBの作成方法について知る事が出来ました。
ただ今回はWindowsでしたがCentOSやFedora等、LinuxディストリビューションであればブータブルUSBを作る事とインストールする事が出来るかもしれないのでいつかLinux系OSで試してみたいと思っております。


明日の[CYBIRD Advent Calendar 2024](https://qiita.com/advent-calendar/2024/cybird) 25日目は@dave_cさんの「UUID、ULID、SQID、Snowflake IDのユニークIDの選び方」です。
お楽しみに！