投稿:

更新:

【M1 Mac】ラズパイで「unable to read partition as fat」となる原因を解決する【Raspberry Pi Imager】

はじめに

こんにちは。Debian をラズパイの起動に使うマイクロ SD カードに書き込んでインストールしたかったのですが、トラブルに巻き込まれた (?)ので解決策を共有します。

環境

再現性のためにハードウェア・ソフトウェアもまとめます。

対処法

結論は、diskutilsudo diskutil eraseDisk FAT32 UNTITLE MBRFormat /dev/disk4のようにしてまさしくフォーマットでき、正常にラズパイが起動できました。

原因やコマンドの詳細は順に説明します。

原因・うまく行かないエラーを探る

Raspberry Pi Imagerというソフトの FAT32 フォーマットがまさしく動かなかったと思われます。

画像は残っていないのですが、同じ状況の画像がこれです。

引用元:https://github.com/DeskPi-Team/deskpi/issues/70

M1 Mac を使っていることが 関係しないこともない かもしれません(フォーマットに CPU アーキテクチャ絡むかは不明)。

SD カードを 2 枚用意し同様に検証しても記事タイトルのエラーが出るため、これは SD カードが壊れているわけではない と判断しました。

また、ネット上のRaspberry Pi Imagerを利用した記事は WindowsIntel CPUMac の状況が多いため、M1 Mac での成功事例がありません。

まとめると関係事項は次の通りです。

  • Raspberry Pi Imagerの FAT32 フォーマットが正常に動かない
  • SD カードは 2 枚試して動かない+通常の読み取りは可能であるため問題ない
  • OS の Image は複数種類試してエラーなのでインストールする OS も関係ない
  • ラズパイは壊れていないと仮定
  • M1 Mac の Raspberry Pi Imager のフォーマットに不具合がある

diskutil で対処する

ひとまず、フォーマットを正しく行う必要があるためコマンドラインからやります。Raspberry Pi Imagerというソフトの FAT32 フォーマットがまさしく動かなかったと思われるためです。

該当するメモリを特定する

diskutil list
~~~~~~~~~~~~~~~
/dev/disk(n) (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER

大抵は物理的な外部接続のメモリが(external, physical)の欄に該当します。

その中から SIZE を見てメモリを特定してください。そのIDENTIFIERは一瞬メモして覚える必要があります。

/dev配下のどのディスクかも一瞬覚えてください。

コマンドでフォーマットする

次にコマンドから FORMAT します。ANY_NAME_IS_OKと設定した通り、名前は任意です。

sudo diskutil eraseDisk FAT32 ANY_NAME_IS_OK MBRFormat /dev/disk(n)

ディスク書き込みなので管理者権限必要です。自分で行った記録も貼り付けますね。

~/ sudo diskutil eraseDisk FAT32 UNTITLE MBRFormat /dev/disk4
Password:
Started erase on disk4
Unmounting disk
Creating the partition map
Waiting for partitions to activate
Formatting disk4s1 as MS-DOS (FAT32) with name UNTITLE
~~~~~~
Mounting disk
Finished erase on disk4

このあとRaspberry Pi Imagerで適宜 OS を選択して書き込んであげれば OK で起動できました。

おわりに

これで起動しました。色々できることが増えました…一安心ですね。

参考