スペースを解放しようとして、何の手がかりもなく /usr/lib64/ を "/srv/maraba_ssd_scratch/apelin/root_files/usr_lib64" に移動しました。次にやろうとしていたのは、lib64 が /srv/maraba_ssd_scratch/apelin/root_files/usr_lib64 を指すように usr にシンボリックリンクを作成することでしたが、すぐに ELF の問題に遭遇しました。
最大の問題は、これらすべてを実行するために sudo を使用していたことです。他の投稿に基づいてコマンドを発行する方法を理解し、次のように実行できます。
$ LD_LIBRARY_PATH=/srv/maraba_ssd_scratch/apelin/root_files/usr_lib64 /srv/maraba_ssd_scratch/apelin/root_files/usr_lib64/ld-linux-x86-64.so.2 /usr/bin/echo a
a
bash: /usr/bin/basename: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
ただし、/usr/lib64 を復元するには、ルート権限が必要です。sudo を試しましたが失敗しました。
LD_LIBRARY_PATH=/srv/maraba_ssd_scratch/apelin/root_files/usr_lib64 /srv/maraba_ssd_scratch/apelin/root_files/usr_lib64/ld-linux-x86-64.so.2 /usr/bin/sudo /usr/bin/ln -s /srv/maraba_ssd_scratch/apelin/root_files/usr_lib64 lib64
/usr/bin/sudo: error while loading shared libraries: /usr/bin/sudo: cannot open shared object file: Permission denied
bash: /usr/bin/basename: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
su を試してもエラーが発生します:
$ LD_LIBRARY_PATH=/srv/maraba_ssd_scratch/apelin/root_files/usr_lib64 /srv/maraba_ssd_scratch/apelin/root_files/usr_lib64/ld-linux-x86-64.so.2 /usr/bin/su root
su: Module is unknown
bash: /usr/bin/basename: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
su エラーは /etc/pam.d/su ファイルに関連している可能性があると思います:
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
bash: /usr/bin/basename: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
pam_rootok.so は移動された lib64 ディレクトリにあります。
ライブ ディスクを使用したブート以外に、何かアイデアはありますか? 私は busybox を持っていません。
PS: vncserver 経由で GUI を使用できます。GUI からルート コマンドを呼び出す方法はありますか? CentOS 7、Gnome2。