すべてを傷つけずに/usr/libを移動してください。

すべてを傷つけずに/usr/libを移動してください。

以下を使ってこのディレクトリを移動したいと思います。

sudo mv /usr/lib /tmp/bad_files/
sudo mkdir /usr/lib
sudo mv /tmp/bad_files/lib/* /usr/lib/

なぜこれを行うべきですか?

ファイルシステムに関連する問題があり、fsck以下を使用して問題を解決することはできません。http://talk.radxa.com/topic/949/how-to-fsck-nandこれは不思議だと思う人のために)私はFSを欺きたいので、私は使用できないすべてのファイルをいくつかのダンプディレクトリ(読み取れないので破損した場所ではない場所)に移動します。

試してみましたが、問題の単一のファイルだけを移動することはできません。

/usr/lib → sudo mv ./libpostfix-tls.so.1 /tmp/bad_files/
mv: cannot stat ‘./libpostfix-tls.so.1’: Input/output error

apt-get install -- reinstall問題のあるファイルは元のパッケージを使用して再インストールします。

ただそれをしてはいけませんか?

もし私がするなら

sudo strace mv ./libpostfix-tls.so.1 /tmp/bad_files/

mvコマンド自体が使用されているのを見て、これは/usr/libOSがシャットダウンするのを心配します。

...
open("/usr/lib/locale/C.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 3
...

だから私の質問は:このフォルダを安全に移動できますか?オペレーティングシステムとデバイス情報:

Distributor ID: Linaro
Description:    Linaro 14.04
Release:        14.04
Codename:       trusty
/dev/mtdblock1 on / type ext4 (rw)

答え1

メンテナンスのためにシステムをシャットダウンできない場合、実際に使用しているシステムファイルを移動することは可能であれば非常に困難です。メンテナンスのためにシステムをシャットダウンできる場合は、2つの方法を考えることができます。

構造システムの開始

リカバリディスクやgpartedなどの他のシステムから起動し、ルートパーティションをマウントし、提案どおりに/ usrを移動する必要があります。これが実際に実行されている間に独自のファイルを移動して元のシステムを妨げないようにするために、私が見ることができる最も安全な方法です。

同じシステム:シングルユーザーモード+ LD_LIBRARY_PATH

何らかの理由で起動する他のシステムがない場合でも、次の方法で同じシステムから起動できます。

  1. 入るにはシステムを再起動してください。シングルユーザーモード(ほとんどのLinuxディストリビューションでは実行レベル1)

  2. コピー/usr/lib/* 次の安全な場所cp /usr/lib/* /tmp/tmplib/

  3. これを指すようにLD_LIBRARY_PATHを設定します。 bashシェルがあると仮定すると、次のようになります。export LD_LIBRARY_PATH=/tmp/tmplib

  4. 試した方法でファイルを移動します。

婦人声明:ライブシステムでこれを試す機会がなかったので、それを考慮して常にすべてのファイルをバックアップしてください。

関連情報