ChrootはSuse 9構造システムで動作しませんか?

ChrootはSuse 9構造システムで動作しませんか?

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

関連情報