fstabの設定を間違えてRaspberryPiが起動しなくなったときの対処方法

RaspberryPi3 設定手順を書いているときに自動マウントの設定を間違えてしまい、RaspberryPiが起動しなくなるということが起こりました。/etc/fstabの設定ミスを修正すれば解決するのですが、ファイルシステムext4なので編集するにはLinuxマシンが必要です。自宅にはMacWindowsマシンしかなかったので、VirtualBoxLinuxを起動してSDカードを認識させて編集を行うことにしました。以下に手順を記載します。

環境

Linux仮想マシンにSDカードを認識させるには

VirtualBoxで動作中のLinux仮想マシンにSDカード認識させるにはrawデバイスとして認識させる必要があるらしい。rawデバイスが何のことかわからなかったので調べたところ、ファイルシステムを使用せずに直接デバイスへの書込みや読取りができる記録デバイスのことらしい。

RAWデバイスは、ファイルシステムでフォーマットされないディスク・パーティションまたは論理ボリュームです。RAWデバイスの主な利点は、ダイレクトI/Oを実行し、より規模の大きいバッファを記述できることです。ダイレクトI/Oでは、オペレーティング・システムのバッファ・キャッシュを介さず、アプリケーションからストレージ・デバイスへの書込みおよび読取りを直接実行できます。

Oracle® Database概要

Linux仮想マシンでfstabを編集する

1.パーティションを確認する

SDカードをMacに挿入してパーティションを確認してアンマウントする ※自分の環境では/dev/disk2

$ diskutil umountDisk /dev/disk2

2.VirtualBox vmdkファイルを作成する

$ sudo VBoxManage internalcommands createrawvmdk -filename ./sd-card.vmdk -rawdisk /dev/disk2

コマンド実行時にSDカードが自動でマウントされるので再度アンマウントし、権限を変更する

$ diskutil umountDisk /dev/disk2
$ sudo chmod 777 ./sd-card.vmdk

3.VMDKファイルをストレージツリーに追加する

VirtualBoxのストレージタブを選択し、HDDのアイコンをクリックして"既存のディスクを選択"を選択する。作成したVMDKファイルがストレージツリーに追加される

f:id:dev-moyashi:20180831145201p:plain

f:id:dev-moyashi:20180831145110p:plain

4.仮想マシンを起動してSDカードが認識されていることを確認する

f:id:dev-moyashi:20180831145104p:plain

5.SDカードをマウントする

仮想マシン/dev/sdb2をマウントして、fstabを編集したらアンマウントする

$ sudo mount /dev/sdb2 /mnt
$ sudo nano /mnt/etc/fstab
$ sudo umount /mnt

SDカードをRasberryPiに挿して無事起動できたら完了です。