LoginSignup
20

More than 5 years have passed since last update.

Linux でシステムディレクトリ を誤って move してしまったときの対処

Last updated at Posted at 2015-11-16

概要

Linux でシステムディレクトリを誤って /tmp などに move してしまった場合の対処を示します。想定するシチュエーションと発生する事象を説明し、具体的な対処方法を記します。

シチュエーション

あなたは、root 権限でシステムにログインし、システムディレクトリ(例として /lib)を誤って /tmp などの下に move してしまいました。

このとき以下のような状況に陥ります。
* ありとあらゆるコマンド実行でエラーが発生する
* ls, cd, mv, cpなど基本的なコマンドが実行できない

回復するには、対象ディレクトリを元のパスに move し直すことですが、コマンド実行でエラーが発生するので戻せません。

対処

(1) 環境変数 LD_LIBRARY_PATH に move 先のフルパスを追加する
LD_LIBRARY_PATH はライブラリファイルの実体を管理します。よって、本パスに該当するパスが指定されれば解決。とはいえ、テキスト処理系のコマンドを実行するのに必要なファイルが移動してしまっていると使えません。

(2) ld-linux を実行する
古式ゆかしい対処。

# /tmp/lib/ld-linux.so.2 --library-path /tmp/lib/ /tmp/bin/{実行バイナリ}

(3) busybox を利用する
もっともスマートな方式。標準Unixのコマンド機能を単一のバイナリで実行できる busybox を使います。

# /bin/busybox mv /tmp/lib/ /

補足

本件は、過去に筆者が実際に経験しました。受託開発で納品する本番機で、しかもアプリケーションの総合テスト真っ盛りの中でやらかしました。事の重大さに気づいたのは、深夜にひとりきり。真夏なのにあれほど背筋が凍ったことはありません。解決するまでの2時間は生きた心地がしませんでした。

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
20