起こったことのまとめ

起こったことのまとめ

オペレーティングシステムはCentos 6.5 64ビットです。

tarファイルをダウンロードしましたが、解凍mvしたいです。

私は解凍し、予期せず(rootとして)実行しましたが、mv folder/* /*代わりにmv folder/* .bashがいくつかのファイルを上書きできないと言った後、他のファイルに対する権限を要求しました。 Ctrl-cを押して終了します。

ターミナルセッションを開いたままログアウトしましたsu

shell現在、ほとんどのコマンドにアクセスできず、lsどのディレクトリにもアクセスできませんsu

Webサーバーとサービスがまだ実行されているようです。実行できるコマンドはほとんどなく、これがそのうちの1つであり、実行しようとするとcdエラーが発生します。cd/etc/binno directory found

編集する/bin、、、、)で見つからないフォルダがすべてディレクトリetcに移動されたことを確認し、試した結果、次のようになりました。 lib64rootsbin/var/var/bin/su-bash: /var/bin/su: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

答え1

システムにインストールbusyboxされている場合は、それを使用して回復できます。

busybox多くの標準ユーティリティが組み込まれたバイナリファイルです。mv、などshls

Pavelの答えに対するあなたの意見を見ると、すべてが終わったようです/var。これ/var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /により、ほとんどのシステムが再実行されます。のような一部のディレクトリはロー/tmpでも存在するため、/var/tmp単に移動することはできません。文句を言う人がmv彼らを悩ませないことを願っています。

 

ルートシェルの入手

また、ルートシェルが失われてライブラリエラーがsu発生したと言われました。ld-linux以下を使用できます。

LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su

注:この方法を試した後は機能しません。su(およびその他)の複数のファイルが必要なためです。まだ遠いなら今回は成功する可能性が大きい。/etcpasswdpam.d/etc

 

ビジボックスなし

busyboxが利用できない場合は、次の同じld-linuxトリックを使用できますsu

LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /

 

ライブCDから

説明で説明したように、ルートシェルを失うと問題が発生します。既定では、この問題を解決するにはルートアクセスが必要です。これを達成する唯一の方法は、同じユーティリティを使用するか、権限を昇格するかsusudoこの時点ではどちらも機能しません)、すでにrootとして実行されている他のプログラムをハイジャックすることです(実行中のプログラムによって異なりますが不可能)。 。

この場合、唯一のオプションはLive CDです。ライブCD(またはライブUSBなど)から起動したら、ルートボリュームをマウントし、影響を受けたディレクトリを/var元のディレクトリに戻します/


起こったことのまとめ

folder/*folder/fooと同じものに拡張されますfolder/bar
/*そのようなものに拡張されます/bin /lib32 /lib64 /etc /home /root /var/var最後の項目なので参考にしてください。
したがって、シェルがこれらのすべてのglobを拡張すると、次のコードが実行されます。

mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var

リストの最後の項目と同様に、/varすべての項目がリストに移動されました。


/var/bin/suエラーが発生する理由/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

Linuxのほぼすべてのバイナリはld-linuxld-linuxシステムでは にあります/lib64/ld-linux-x86-64.so.2。このディレクトリが移動されたため、動的にリンクされた実行可能ファイルは機能しなくなりました。

busyboxが動作する理由は、busyboxが静的に接続されているためです。使用されませんld-linux

答え2

mv folder/* ./*また間違っています。実行するコマンドの意味についてさらに注意する必要があります。 3つ以上の引数を持つコマンドは、mv最後の引数を除くすべての引数を受け入れ、そのコマンドが指すパスを最後の引数で指定されたディレクトリに移動します。

すべてのディレクトリを移動する(隠しディレクトリを除く)フォルダ現在のディレクトリに移動するには、次のものを使用する必要があります。

mv folder/* .

オペレーティングシステムが破損しています。シェルと組み込みコマンドは引き続き機能します。 Live CDを起動してディレクトリを再度移動する必要があります。再起動しなくても問題を解決できるように、ファイルを移動/名前変更するbash組み込みコマンドがわかりません。詳細については、Patrickの回答を参照してください。

答え3

誤って/usrを/usr_oldに移動しましたが、すべてが中断されました。幸いなことに、プロンプトに留まり、次のコマンドを実行してusrフォルダを復元できました。

LD_LIBRARY_PATH=/usr_old/lib64 /usr_old/lib64/ld-linux-x86-64.so.2 /usr_old/bin/mv /usr_old /usr

答え4

重要 ここにありますが、正常に動作しないとコマンドをmv実行できず、ルート()にフォルダがなくなった場合、まず、あれば修正されるまで終了しないでください。回復できません。リモートで接続している場合は、切断するとサーバーを離れることはできません。実行中のほとんどのサービスは問題ありません。 Patrickが提案した多くの解決策の1つを試してみてください。しかし、私のように問題が発生した場合は、物理的なアプローチが必要になります。shell/SUSUsshreboot

コンピュータから再起動しました。予想通りカーネルパニックが発生しました。

私はそれが非常に簡単な修正だと思いました。 livecdを接続して構造モードに入るのは簡単です。その後、ルートディレクトリをマウントする必要があります。ただし、単純なインストールコマンド以上が必要です。

これは多くの人のように私もlvmファイルシステムを持っていて、このような構造を処理しなければならなかったのは今回が初めてだからです。私が何をすべきかを調べるためにオンラインで検索する必要がありました。この情報をこの記事に含めました。これが私のトラブルシューティングプロセスです。

1) Centos_6.4_min CDを挿入します。

2) GUI インターフェイスで何をしたいか尋ねて Rescue を選択します。

3) Rescue は現在システムをマウントしようとしますが、Linux パーティションがないと表示されます。

shell4) オプションが表示されたら、Enter を選択します。

この時点で私はシステムをインストールするために多くの方法を試しましたが、運がありませんでした。 (lvmのため)次の手順を実行する必要があると確信しています。

5) 私の本をスキャンし、

lvmdiskscan

6) lvscan を実行すると、「Inactive」と表示されたすべての列が表示されます。

lvscan

7) デバイスモジュールをロードします。

modprobe dm-mod

8) 既存ボリュームをアクティブボリュームに変更

vgchange -ay

9)lvscan再度実行すると、すべてのプロジェクトが「アクティブ」と表示されます。

10) マウントポイントを作成し、論理パーティションをマウントします。

mkdir /mnt/root

mount /dev/VolGroup00/LogVol00 /mnt/root

11)フォルダを後ろに移動します(他のフォルダが必要な場合があります)。

mv /var/{bin,etc,lib64,mnt,root,sbin} /

12)reboot

13)成功!

関連情報