猫の手なら貸せる

いろいろ共有できたらいいなとおもってます

Macでext4フォーマットのSDを扱う

以前Chrootで監獄を作った時、あろうことかfstabを修正し忘れてラズパイが起動しなくなったので、MicroSDext4パーティションに潜入してfstabを修正することで復旧しました。
サーバーメンテは深夜にやちゃだめ。ゼッタイ。いろいろ調べてたら半日以上かかってしまったので備忘録。

使用環境

  • MacbookAir(2019 Retina版)Mojave

試したこと

ext4fuseでMacにSDカードをマウント→❌

ext4fuseではread onlyが仕様で書き込みできないようです。 先駆者様 note.com
fuse-ext2たるものを使って云々という記事もあったのですが、インストーラーの途中でバージョン互換がないと警告が出たので、踏み切るに至りませんでした。

Ubuntu desktopをUSBブートして書き換える→❌

ちょうどRaspbianのブートディスク作成にbalenaEtherをインストールしていたので利用。書き込み成功!
うまくいくと思いきやOption+起動で表示されたEFIブートを押すも、Boot recovery assistantが起動しブートに使えないとの警告。
書き込み方がダメなのかな...PC初心者なのでコマンドコピペでブートディスクを作成しました。以下を参考。。。
shinsuke789.hatenablog.jp 難しい。 ledsun.hatenablog.com
頑張ったけどダメでした。ブートローダがどうもrEFindを使わないと認識されないみたいで。
kledgeb.blogspot.com サムネでもちょっと見えますけどrEFind、見るからに危険そうな匂い(主にLinuxペンギンのパチモン感)がしたのでTimeMachine用の外付けも無いわたしにはちょっと敷居が高すぎました。
来年のセールでTimeMachine用の外付け買います。かなりbrewやappのアンインストールでぐちゃぐちゃしてきてますけど。。。

Virtual Boxの仮想マシンにUSBをマウント→⭕️

もはや「extFS for Mac by Paragon Software(4500円くらい)」を買うしかないのか。。。とぐるぐるしていました。
まさかVMUbuntuからなら普通にアクセスできるなんて誰が想像したことか。わたしPCに無縁な猫なのでこれができるなんて思わなかったです。

Virtual Boxをインストールします。今回使ったのはVirtualBox 6.1.0。
ExtensionPackもインストールします。
www.virtualbox.org

UbuntuVMを作ります。ターミナル試したらTrialでもsudoが使えたのでインストールはなしで。
設定は適当ですが、メモリ1GBではメニューもクリックできなかったので3GBくらい確保しました。 ちょっといじるだけだったのでDesktop版ではなくサーバー版でもよかったかもしれません。

次に以下を参考にVMにUSBを認識させます。 qiita.com

一点だけ注意。今回利用したのはTranscendUSB3.0対応のカードリーダーだったので、設定はUSB2.0ではなく3.0です。(2.0だとvboxがfailメッセージを吐きます)
f:id:nkhnd:20191229191343p:plain
あと、元記事のようなフィルターは設定しなくても動作しました。
認識されるとDesktop版だと自動的にマウントされデスクトップに表示されるので、表示後dfでマウントポイントへ移動。
サーバー版だとおそらくsudo fdisk -lでデバイスを確認し、適当なディレクトリに(自分で)マウントすることになります。

ラズパイ生還

無事fstabを書き直し、ラズパイを復旧させることができました。
バックアップをRAID上に作っていたのですが、よく考えるとソフトウェアRAIDなのでラズパイが死んだらラズパイに復旧できないという。
exfatのボリュームを別で外付けして、そっちに書き込みすべきでしたね...。