内容を削除したいディレクトリにはなく、誤ってsudo rm /*
このタスクを実行して、デフォルトでシステムが混乱しました。sudo rm ./*
ls
など基本コマンドが機能せず、grep
Chrome、Slack、Image Viewerなどのアプリが開きません。
インターネットで私の問題を見つけて発見しました。これ質問がありますが、そこにあるソリューションのどれも私には役に立ちませんでした。
私はArch Linuxデスクトップを使用していますが、これが発生して以来システムからログアウトしませんでした。提案どおりに再度ログインできないかと心配されるからです。ここ。また、役に立つ場合は、Arch LinuxイメージのライブUSBはありません。
システムを再び正常に戻す方法についてご協力いただきありがとうございます。ありがとうございます!
編集する:一部コマンドの出力を添付しました。
$ echo /*
/boot /dev /etc /home /lost+found /mnt /opt /proc /root /run /srv /sys /tmp /usr /var
$ echo /usr/*
/usr/bin /usr/include /usr/lib /usr/lib32 /usr/lib64 /usr/local /usr/sbin /usr/share /usr/src
また、システムを台無しにしないと、端末で実行できるコマンドである{command}echo /usr/bin/*
形式の長いディレクトリのリストが提供されました。/usr/bin/{command}
追加情報が必要な場合はお知らせください!
答え1
Arch Linuxには、次の場所に4つのシンボリックリンクがあります/
。
bin -> usr/bin
lib -> usr/lib
lib64 -> usr/lib
sbin -> usr/bin
/
これを再生成するか(Live-USBまたは緊急シェルを使用)、リンカを直接呼び出すことができる必要があります(root権限と作業ディレクトリから)。
/usr/lib/ld-linux-x86-64.so.2 /usr/bin/ln -s usr/lib lib64
これにより、実行中のシステムの基本機能が復元されます。これにより、他のシンボリックリンクを簡単に復元できます。
root権限がない場合は、再起動してください。回復シェルそしてそこで問題を解決してください。
他のコマンドが失敗するのはなぜ/usr/bin/ls
ですか?
シンボリックリンクがないと、/lib64
動的にリンクされたプログラムはパスがハードコーディングされているため/lib64/ld-linux-x86-64.so.2
(cf ldd /usr/bin/ln
)動的リンカー/ローダーを見つけることができません。
答え2
PATH変数が既存のディレクトリのみを指すように変更します。
PATH=/usr/bin:/usr/sbin
次に、terdonの回答に示すようにシンボリックリンクを再作成します。
その後、別の端末でログインしてみてください。