Back to blog
Jan 28, 2023
2 min read

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

Macを使っているのですがラズパイで「unable to read partition as fat」となり続けたので原因を探してdiskutilを使って対処しました。

はじめに

こんにちは、こふです。

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 します。

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 で起動できました。

おわりに

これで起動して色々できることが増えました。

参考