4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linux でディスクのマウントに失敗しても起動してほしい時は fstab に nofail オプションを付けるとよさげ?

Last updated at Posted at 2020-04-27

そもそもこの記事を書くに至ったきっかけ

やらかした

自宅で運用している Raspberry Pi につないだ USB HDD を一個減らしたんだけど、fstab をいじるのを忘れた。

結果起きたこと

SSH でログイン不可能な状況に!
通常ヘッドレスで運用してるのだけど、慌ててディスプレイを繋いでエラーを見てみたら、何やら emergency mode とやらに入っている。
キーボードを繋いでキーを押しても同じエラーメッセージをぐるぐるしてて、ディスプレイとキーボードを繋いでも復旧作業できず。

対応したこと

起動不能になった Raspberry Pi の micro SD を引っこ抜いて、別の Raspberry Pi に USB カードリーダー経由で接続。
んで、適当なディレクトリにマウントして、起動不能になった Raspberry Pi の fstab を以下のように変更。

fstab変更前
/dev/sdb1 /mnt/hoge ext4 defaults 0 0
fstab変更後
/dev/sdb1 /mnt/hoge ext4 defaults,nofail 0 0

これで元のマシンに micro SD を差し込んで起動しなおしたところ、マウント時のエラーを無視して復活。
あとから何が起きたものかと、fdisk -l で見てみたら、/dev/sdb1 に今までつながってたドライブが /dev/sda1 に引っ越してた。

調べて分かったこと

どうやら、fstab に書かれているドライブが見つからなかったりエラーがあったりすると、Linux はあっさり起動を諦めて emergency mode に入るらしい?
(ディストリビューションによって違うのかもしれませんが、やらかし起点の取り急ぎ調査なので、詳しい方いたら教えてください。)

ベストプラクティス

Linux において、取り付け取り外しが行われる類のディスクを fstab でマウントするときは、nofail オプションを付けとくとよさげ。

多分、クラウド上の仮想マシンとかでも、仮想 VHD をマウントする設定を fstab に書いた後にクラウド側の管理操作で取り外して、うっかり OS をリブートしてしまったら同じような状況に陥る気がする。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?