Suse 9を使用してサーバーを復元する必要がありますが、機能しない非常にchroot
一般的なエラーが発生します。苦情は/bin/bash
存在しませんが、存在します。
私が使用したコマンドは次のとおりです。
mount /dev/dvg/lv00 /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
cd /
chroot /mnt
ただし、そのファイルやディレクトリがないため失敗します。
ldd
/mnt/bin/bash
必要な各ライブラリが利用可能であることを示します。
Straceはまったく役に立ちません。
/mnt/bin/bash -i
エラーなしで動作します。
助けが必要ですか?
答え1
これらのライブラリが利用可能であることを確認する必要があります/mnt
。一般的にリストされている各ライブラリのldd /mnt/bin/bash
相同体はありますか/mnt
?
/mnt/bin/bash
シェル(ldd
または/mnt/bin/bash -i
)で試している場合でも、または/lib
からライブラリをインポートできます/lib64
。
あなたがそれを使用すると、chroot /mnt
すべてがそれから来ます/mnt/*
。
一般的には(Debianが提供する)確認する必要がある4つのライブラリがあります(最初の行は含まれていません)。
linux-vdso.so.1 (0x00007ffcc8783000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f1a1000b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1a10005000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a0fe30000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1a1017f000)
この4つ(出力に応じてldd
調整されます)があることを確認する必要があります/mnt
。ほとんどはシンボリックリンクであり、それらが指すファイルも利用可能でなければなりません/mnt
。
ライブラリが存在しない場合、システムコールはエラーを返すstrace
ので、これが役に立たないことを認識する必要があります。execve