Ubuntuは動作が軽いし
フリーのアプリケーションで
何でもできるので
言うことなしなのですが
不安定でよく困らされます。

1度アップデートすると
どうにもこうにも動かなくなったので
結局元に戻したこともあるくらいです。

都度起こったエラーに対して
情報を集めて解決する
というのを繰り返しています。

おかげでLinuxに
詳しくなってはきましたが。

今回は
よくある簡単なエラーですが
起動時に
“UNEXPECTED INCONSISTENCY;
  RUN fsck MANUALLY”
というエラーメッセージが出たので
解決方法を忘れないように
書き留めておきます。

Ubuntu_Boot_Error

Contents

  1. エラーの発生とエラーメッセージ
  2. エラーの解決方法

1.エラーの発生とエラーメッセージ

ひさしぶりに
Ubuntuに新しいソフトウェアを
インストールしました。

作業中に選択画面から
操作できなくなり
電源ボタンを押して
強制的に終了しました。

おそらくこれが原因ですが
次に起動すると
次のようなエラーメッセージが

/dev/sda1 contains file system with errors, check forced.

Inodes that were part of a corrupted orphan linked list found

/dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY,
(i.e., withoout -a or -p options)

fsck exited with status code 4

The root file system on /dev/sda1 requires a manual fsck

BusyBox v.1.22.1(ubuntu 1: 1.22.0-15 ubuntu1) built-in shell (ash)

Enter 'help'  for a list of built-in commands

(initramfs)

エラーメッセージを見ると
HDD内のファイルシステムに
エラーがあると。

inode とは Linux のファイルシステム (ext) で
本体のデータとは別に
そのファイルやディレクトリを管理するデータを
保存するデータのことです。

また真っ黒な画面に上のような
エラーメッセージが表示されている場合は
initramfs の BUSYBOX シェルが起動している状態です。

Ubuntu では起動時に
各ディスクデバイスに
ルートファイルシステムを
インストールして起動します。

仮にカーネルに
すべてのディスクデバイスの
ドライバを含んでいると
ブートローダーでカーネルを起動した際に
すべてのデバイスに
ルートファイルシステムを
マウントできますが
カーネルが大きくなってしまいます。

そのため
必要なドライバを必要に応じてロードする
カーネルモジュールが用意されています。

これをデバイスに保存してしまうと
起動時はルートファイルシステムが
マウントされていないため
アクセスできなくなります。

そのため起動時に
ブートローダーにより
initramfs という
ミニルートファイルシステムを
メモリ上に展開し起動します。

つまり
上の状態はディスク障害などで
ルートファイルシステムが
マウントできなくなったときに
initramfs 内のBUSYBOX シェルが
立ち上がった状態です。

2.エラーを解決

以上の状態を解決するには
エラーメッセージに書いてある通り
下のコマンドで
手動で fsck を実行します。
fsck /dev/sda1
このコマンドを実行すると
いくつか確認されるので
enter を押していくと解決されて
無事立ち上がるようになります。

けっこう頻繁にこの状態になるので
忘れないように
しておかないといけませんね。