/ varフォルダを新しいパーティションに移動しようとしました。私はDebian 10.7を使っていて8GBのプロセッサを持っていて、スペースを節約したいと思います。私はいくつかの方法を試しましたが、一部のデータは常に消えているようです。私が試したことは次のとおりです。
- 新しいパーティション/dev/sda7の作成
- /etc/fstab の /mnt/newvar に /dev/sda7 をマウントします。
- シングルユーザーモードで起動
- マウント/-rw -o 再マウント
- cp -arpPv /var/* /mnt/newvar(/mnt/newvar フォルダーを確認したとき /var フォルダーとサイズが同じだったのでコピーが正常に機能し、すべてのフォルダーがそこにあるようでした)
- mv /var /var.old
- mkdir /var
- /etc/fstabを編集し、/varに/dev/sda7をマウントします。
- システムを再起動してください
システムの起動時に/varにある複数のフォルダは表示されませんが、リカバリUSBから起動すると、そこから/varのすべてのフォルダが表示されます。 /mnt/newvarフォルダを削除できますか?そして/var.oldフォルダ?これにより、表示できないフォルダ/ファイルが永久に失われるようです。システムの残りの部分を読み取り専用にしてスペースを節約するために、このフォルダを新しいパーティションに移動したいと思います。以前のフォルダを削除できない場合は、他のパーティションを使用してもあまり役に立ちません。一部のフォルダが表示されない理由と、永続的なデータ損失を防ぐ方法を教えてくれる人はいますか?
答え1
でシンボリックリンクを確認できますか/var
?場合によっては、これらのリンクの宛先が特定のディレクトリパスではなく相対パスであるためです。
たとえば、/var/run/
を指す場合、/run/
これは/run
ディレクトリですが、/
リンク先../run/
はリンクの親ディレクトリにあるディレクトリで、run
親ディレクトリはそのまま残りますroot
。
/var/
ただし、これにコピーすると、/mnt/newvar/
システムがリンクが指すディレクトリを見つけたときに名前付きの親ディレクトリを見つけることになりますrun
。newvar/
/mnt
../run/
つまり、コピーに関連するすべてが/var
奇妙な動作を引き起こす可能性があるため、私の解決策を提案します。/var
インストールするときは、目的のパーティションに直接インストールしてください。その結果、/etc/fstab
次のようになります。
UUID=xxx /var ext4 defaults 0 2
xxxは目的のパーティションのUUIDであり、コマンドを使用して検索できますblkid
。
答え2
この/var
ディレクトリには複数のシンボリックリンクが含まれています。
/var/lock/
->/run/lock/
/var/run/
->/run/
cp
コマンドがシンボリックリンクをコピーしているようではありません。
たぶん再構築する必要がありますか?
数日間問題なく動作するまで、古い/varデータは削除されません。