別のパーティションをフォーマットしたいです/usr/
。だからルートパーティションに移動したいと思います。走ってみよう
rsync -avzr /usr/ /usr1/
その後、私は、例えば、動作するかどうか試してみましたが、/usr1/usr/bin/mv
結果は大丈夫でした。だからumount -l / usrを実行しました。
目的は古い usr ドライブを交換することです。ところが何か間違っていて、再実行してみると実際に存在して実行可能なので不思議だと思いまし/usr1/usr/bin/mv
た。bash: /usr1/usr/bin/mv: No such file or directory
私は何が間違っていましたか?これを行うより良い方法はありますか?
答え1
/usr
可能であれば再インストールしてください。そうでない場合は、リカバリ環境から起動する必要があります。
私はあなたが説明するコマンドを実行しているとは思わない。私の考えでは、ソースから末尾のスラッシュを逃した可能性が高いと思います。
rsync -avzr /usr /usr1/ # DO NOT RUN THIS
これは/usr
ディレクトリ名にコピーされるため、/usr1
介入を削除してこの問題を解決する必要/usr/bin/mv
があります。/usr1/usr/bin/mv
/usr
以下の手順に従ってこれを行うことができます。いつでも私が説明したものと異なるものが表示された場合は、直ちに中止し、あなたが行ったこととどんなメッセージが返されたのか(あなたの質問に)報告してください。
cd /usr1 # No output
ls # You should see only 'usr' and 'lost+found'
mv usr/* . # Notice the important trailing dot. No output
rmdir usr # No output
cd /
今すぐ削除して再インストールしてみてください。
umount /usr
mount --bind /usr1 /usr
これがうまくいけば、古いデバイスがあるデバイスからインストールするのではなく、古いデバイスがあるデバイスからインストール/etc/fstab
するように更新し、簡単にシステムを再起動できます。/usr
/usr1
/usr
答え2
最新のLinuxシステムでは、ほとんどの実行可能ファイルは共有ライブラリを使用します。コマンドで使用される内容を確認してください。
ldd /usr/bin/mv
特に重要なのは動的ローダーです/lib64/ld-linux-x86-64.so.2
。パスは実行可能ファイルにハードコードされており、そのパスでローダーが利用可能であることを確認する必要があります。
他のライブラリの場合は、次のものを使用できますLD_LIBRARY_PATH
。
export LD_LIBRARY_PATH=/usr1/lib64
動的ローダーが利用できない場合は、GLIBCローダーを実行可能ファイルとして呼び出すことができます。他のローダーはサポートすることもサポートしない場合もあります。
したがって、これを使用して実行可能ファイルを呼び出すことができます。
LD_LIBRARY_PATH=/usr1/lib64 /usr1/lib64/ld-linux-x86-64.so.2 /usr1/usr/bin/mv
システムパスを調整する必要があります。
答え3
この咀嚼はあなたがしなければならないことですただUSBスティックからインストールを起動し、そのツールを使用するなど、リカバリ環境で作業を実行します。少なくともFedoraインストールメディアをこの方法で使用できます。ディストリビューションで利用できない場合は、ある種の回復イメージを提供できます。
あなたが作った混乱を診断して修正することも同様です。