私のサーバーで利用可能なスワップスペースを4 GBから16 GBに増やそうとしていますが、現在XFS +何これを不可能にしなさい。
ブートパーティションとLVM2パーティション(インストールのデフォルト)を持つオペレーティングシステム(CentOS 7)をホストするSSDがあります。 LVM2パーティション内には、LVM2パーティション全体を占めるroot
3つの仮想パーティションがあります。繰り返しますが、デフォルトのインストールでは、これらのファイルシステムタイプはXFSです。home
swap
home
私の単純な願いは、使用率の低いパーティションを縮小してswap
パーティションのスペースを作ることです。これで、XFSパーティションを縮小することが不可能であることがわかったので、メインドライブをバックアップし、パーティションを削除し、バックアップから復元してより小さいサイズに復元するウサギの穴に落ちました。
これで問題は、ホームディレクトリまたはパーティションを解放できないことです。 GUIを終了してログアウトした後、ターミナルからrootに再ログインした後、最初はホームディレクトリをアンマウントできませんでした。上記の項目は開いていませんが、使用中の項目がlsof
あります。fuser
送った
umount -f home
これは家族を取り除くのに効果があるようです。これで、コメントなしでホームを自由に設置して取り外すことができますが-f
、疑わしいです。しかし今は頑張っています。
lvremove /dev/centos/home
返されるメッセージは次のとおりです。
Logical volume centos/home in use.
ここでは多くの質問と回答を見てきましたが、その中には次のものはありません。
- NFSサービス
- ファイルを開く
- プライマリ名とセカンダリ名を使用してファイルを開く
- アクティブフラグ(これを試しましたが、
lvchange -an -v /dev/centos/home
ボリュームが使用中であると主張しました)
何が使用されているかを暗示しているようなものが見つかりませんhome
。コンピュータの再起動に頼らない解決策を得ることができれば理想的でしょう。
ベストアンサー1
umount -f
残念ながら、VFSではいくつかの項目だけが削除されました。いいえ実際に削除しています。これ以上どこにも表示されなくなりますが、/proc/mounts
まだインストールされています。このインストールで何がまだ使用されているかを確認するための明確な方法はありません(またはlsof
存在しなくなったパス名を使用すると、他の操作が失敗するためにまだ残っている場合)。実際に削除すると問題が解決します。
losetup
cat /proc/mdstat
、、dmsetup table
...で使用されているデバイスやファイルなどの一部を手動で確認し、/proc/*/{maps,cwd,exe,fd/*}
問題のデバイスへの参照を確認できます(インストールパス自体はもう存在しません)。しかし、それがすべてを扱うことはできないかもしれません。
そのような参照(たとえば、実行中のプロセスの開かれたファイル記述子)が見つかると、ファイルにアクセスして必要な方法で変更できるため、ファイルシステムがまだマウントされていて完全に機能していることを証明できます。見えない。
この遅延除去があるかどうかを確認するためにいくつかのコードを使用しました。このコードは他のデバイス名用にハードコードされています。
isbusy() {
grep -E '^/dev/mmcblk(0p3|1p1) ' /proc/mounts || \
grep -E '^([^ ]+ ){3}b3:0[39] ' /proc/*/maps || \
find /proc/[0-9]*/exe /proc/[0-9]*/cwd /proc/[0-9]*/fd -exec stat -tL {} + \
| grep -E '^([^ ]+ ){6}b30[39]'
}
しかし、それは完全ではありません。