アプリ版:「スタンプのみでお礼する」機能のリリースについて

VMでCentOS5.5をインストールしています。
Filesystemはこのようになっています。
[root@localhost]# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/sda2 3.8G 3.3G 347M 91% /
/dev/sda5 14G 197M 13G 2% /home
/dev/sda1 46M 24M 20M 55% /boot
tmpfs 501M 0 501M 0% /dev/shm

その中に、
[root@localhost ConnectDB]# du -hs /usr
2.8G /usr

/usrが大き過ぎるため、Filesystemがそのその使えなくなるので、
/usrを/homeにmountしたいですが、どうすればいいでしょうか?

A 回答 (4件)

> /usrを/homeにmountしたいですが、どうすればいいでしょうか?



表現としておかしい気がしますが、おそらくやりたいことは、
/usrの中身を何らかの方法で/homeに移し、/の容量を少しでも空けられないかということですよね。

通常、Linuxも含めたUnix系のOSは/のみをmountした状態で起動します。
逆に言うと、/に入っていないファイルは一切参照できません。
そして、起動プロセスの途中で/以外のディレクトリもmountされます。

/usrの内容を/homeに移すということは、/以外がmountされる前に/usrがあると思って書いたスクリプトがあると動かなくなるということです。/usrのどのファイルが/以外がmountされる前に使われているのかは地道に調べるしかありませんが、それ以外を/homeに移して、そこにシンボリックリンクを張れば、その分/の容量は減り、/の容量不足は改善すると思います。一番ラッキーなパターンだと/usrがそもそも/以外がmountされる前には使われていないという状況で、その場合はたとえば次の操作で終了でしょう。
% mv /usr /home/usr
% ln -s /home/usr /usr

もし、/usr/localが起動時に全く参照されていないとわかったら、こんな感じでしょうか。
% mkdir /home/usr
% mv /usr/local /home/usr/local
% ln -s /home/usr/local /usr/local

実際に何が使われていて、何が使われていないかは調べてみないとわからないので、ちゃんとご自身で調べてから移動させてください。調べると言っても、/etc/rc.d/rc.sysinit で使われているコマンドに/usr以下のものを使っているものがないか地道に調べれば大丈夫だと思いますが。シンボリックリンクやライブラリーの依存関係にも注意してください。

余談ですが、Unix系のOSではいくつかパーティションを切って/や/homeなどを別のパーティションに入れることが伝統的には推奨されてきましたし、WindowsでもC:\に全部の容量まとめるのではなく複数のパーティションを切ってD:\やE:\を作ることが推奨されてきたと思います。しかし、自分はパーティション分けは時代遅れだと思っています。
パーティションを分けるメリットは次の3つだと思いますが、個人で使っている場合、そのどれもあまり意味が無いと思うからです。
1. 衝撃などでHDDが破損した場合にその被害を部分的に押さえることができる
2. OSの再インストールなどの時に別パーティションにあるデータを残せる
3. 容量制限がかけられる

1については、今時のHDDは昔よりも密度が高く、昔よりも精密度が上がっていると思うので、衝撃などで破損した場合は一部ではなく全部が壊れることになると思います。だから、別のパーティションだから無害と言うことは全くなく、破損時のデータ保全としてパーティション分けは全く使えないのではないでしょうか。
2についても、そもそもOSの再インストールが必要な機会は滅多に無いと思います。多くのOSで前のOSからのアップグレードの仕組みが用意されていますし、パッケージ管理システムなども昔より厳密なので、謎動作をするOSを安定させるために再インストールしてまっさらにすると言うことも滅多にないのではないでしょうか。
3については、個人で使っていて容量制限は無いと思いますので。
自分はずっと/とswapしか作らなくなりましたが、今のところ何も困ったことはないです。むしろ、/homeにはまだ容量があるのに/usrはカツカツなんて状況がなくなって快適になりました。3の理由が必要な場合も、ZFSやbtrfs(将来的に)という選択肢で何とかなるようになるのではないでしょうか。


というわけで、/usrが/etc/rc.d/rc.sysinitで使われないなら/usrを/homeにmvして、シンボリックリンクを張りましょう。あるいは、/しかない構成の別のVMを作って、現行と同一パッケージを入れた上で/varや/homeを移動します。
    • good
    • 0

インストールのやり直した方が早いと思いますけど。


GPartedなどのパーティション操作ソフトでパーティションを変更するとか
加えて仮想ディスクサイズを増やすとか他にも手段はありそうな。
    • good
    • 0

>/usrを/homeにmountしたいですが、どうすればいいでしょうか?



なんというか、ちょっと無理では……。

/homeの下に保存用のディレクトリを作って/usrの配下のどこぞのディレクトリの中身をコピー、
あとはシンボリックリンクにしてしまう。
とかでしょうかねぇ。
# うまくいくかは不明……。

VMってコトは仮想マシンですよね?
仮想ディスクファイルでsdbでも作成してそっちにマウントする方がいいような気もしますが。
    • good
    • 0

とりあえずマニュアルを読んでみては?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!