つい先ほど気づいたのですが、/homeにマウントするはずのパーティションが/varにマウントされていることに気づきました。
お恥ずかしいのですがどうやらlinuxインストールの際に間違えて指定してしまったようなのです。
現在、
$df
ファイルシステム 1k-ブロック 使用中 空き 使用% マウント場所
...
/dev/hdb3 2862084 518444 2198252 20% /var
となっているところを
$df
ファイルシステム 1k-ブロック 使用中 空き 使用% マウント場所
...
/dev/hdb3 2862084 518444 2198252 20% /home
と直したいのです。
これを直すにはどうしたらよいのでしょう?
どうかアドバイスいただけたらと思います。よろしくお願いします。
どなたもレス付けて無いようなので仕方なくですが。。。
うーーん、非常に厳しい状況ですね。
他のマウント構成がどうなっているのか部分的記述しか無いので、判断しにくい
のですが /varパーティションには重要な(/var/log,/var/spool/mail等)データ
が既にあり、homeディレクトリも恐らく/usrパーティションの/usr/home辺りに
存在しているかと思われます。
Linuxのパーティション&ディレクトリ構造はツリー型ですから、インストール時
の領域設定で領域配分等を充分考慮しておかないと、後で融通が難しくなるのです。
ですから、いつも領域配分で悩むわけです。
マウントを変えるだけ!。。。なら簡単にできますがファイル構成の整合性が取れ
なくなってしまいますからダメですし、仮に何も割り付けていない空き領域があって
新たに/homeパーティションを作ろうとしても既に/usr/homeがあるはずですから
作れないです。
私もやったこと無いので方法が無いわけではないのですが、再インストールのリス
ク覚悟なら、ある事はありますけど。。。難易度が高くお奨めできません。
ところで/varを/homeに変えるということですが、現在ある/varはどうするのですか?
どういう目的で変えるのか主旨が判りません。
> どなたもレス付けて無いようなので仕方なくですが。。。
>
> うーーん、非常に厳しい状況ですね。
> 他のマウント構成がどうなっているのか部分的記述しか無いので、判断しにくい
> のですが /varパーティションには重要な(/var/log,/var/spool/mail等)データ
> が既にあり、homeディレクトリも恐らく/usrパーティションの/usr/home辺りに
> 存在しているかと思われます。
> Linuxのパーティション&ディレクトリ構造はツリー型ですから、インストール時
> の領域設定で領域配分等を充分考慮しておかないと、後で融通が難しくなるのです。
> ですから、いつも領域配分で悩むわけです。
>
> マウントを変えるだけ!。。。なら簡単にできますがファイル構成の整合性が取れ
> なくなってしまいますからダメですし、仮に何も割り付けていない空き領域があって
> 新たに/homeパーティションを作ろうとしても既に/usr/homeがあるはずですから
> 作れないです。
> 私もやったこと無いので方法が無いわけではないのですが、再インストールのリス
> ク覚悟なら、ある事はありますけど。。。難易度が高くお奨めできません。
>
> ところで/varを/homeに変えるということですが、現在ある/varはどうするのですか?
> どういう目的で変えるのか主旨が判りません。
レスありがとうございます。
現在の構成は次の通りです。
ファイルシステム 1k-ブロック 使用中 空き 使用% マウント場所
/dev/hda2 19591888 1699400 16897264 10% /
/dev/hda1 124427 12506 105497 11% /boot
/dev/hdb1 1035660 229992 753060 24% /tmp
/dev/hdb3 2862084 530096 2186600 20% /var
/homeに容量を大きく取ったhdb3をマウントするはずでしたがが間違えて/varにマウントするようにしてしまいました。
そのため/homeに多くの容量を与えたかったのが/varに与えてしまっているのです。
現在の/varは/の下に置きたいと思っているのですが・・・。
今のところ、シングルユーザーモードで
1./homeと/varをtarでバックアップを取る。
# tar cf /tmp/home.tar /home
# tar cf /tmp/var.tar /var
2./dev/hdb3をアンマウント。
# umount /dev/hdb3
3./dev/hdb3をフォーマット。
# mkfs -t ext3 /dev/hdb3 ; fsck /dev/hdb3
4./mnt/homeを作り、ここに/dev/hdb3をマウント。
# mkdir /mnt/home
# mount /dev/hdb3 /mnt/home
5./mnt/homeにhome.tarを展開
# tar xf /tmp/home.tar /mnt/home
6./homeディレクトリを作る。
# mkdir /home
7./etc/fstabと修正して/dev/hdb3が/homeにマウントされるようにする。
# emacs /etc/fstab
8.マウントし直す。
# umount /dev/hdb3
# mount -a
9./にvar.tarを展開
# tar xf /tmp/var.tar /
このあと、不必要な/mnt/home以下を削除してリブート。
これでいけそうな気はするのですが怖くてできてません。これで正しいのでしょうか?
あ、1.の後にもともとの/homeと/varを消しておくことが必要ですね。訂正します。
どうでしょう?やってみればいいのでしょうがシステムにかかわるので手を出しにくくあります。
ここはおかしいというのがあれば言っていただければ幸いです。
申し訳ありませんが今日、出勤日なので早く寝ないと。
改めて後日と言うことで。。。
やり方としては、ほぼ同じです。しばしお待ちを。。。
> 申し訳ありませんが今日、出勤日なので早く寝ないと。
> 改めて後日と言うことで。。。
> やり方としては、ほぼ同じです。しばしお待ちを。。。
U-mexさん、よろしくお願いします。
重箱のスミをつつくようなどんな細かいことでも言っていただけたらと思います。むしろそういった凡ミスが怖いので・・・。
おまたせしました。
> 現在の/varは/の下に置きたいと思っているのですが・・・。
> 今のところ、シングルユーザーモードで
> 1./homeと/varをtarでバックアップを取る。
> # tar cf /tmp/home.tar /home
> # tar cf /tmp/var.tar /var
1.でtar の pオプションを追加するとパーミッションも再帰的にしてくれます。
# tar cpf /tmp/home.tar /home
# tar cpf /tmp/var.tar /var
> 2./dev/hdb3をアンマウント。
> # umount /dev/hdb3
> 3./dev/hdb3をフォーマット。
> # mkfs -t ext3 /dev/hdb3 ; fsck /dev/hdb3
> 4./mnt/homeを作り、ここに/dev/hdb3をマウント。
> # mkdir /mnt/home
> # mount /dev/hdb3 /mnt/home
4.は一時的に作るためなのでしょうか?あまり意味が無いような気がしますが。
# mkdir /home2
# mount -t ext3 /dev/hdb3 /home2
このようにすれば、6.の作業は要らないでしょう。
> 5./mnt/homeにhome.tarを展開
> # tar xf /tmp/home.tar /mnt/home
/home2を作ったので、ここに展開する。
# tar xf /tmp/home.tar /home2
> 6./homeディレクトリを作る。
> # mkdir /home
上記の理由で不要。その代わりに/homeから/home2へシンボリックリンクを張ります。
# ln -s /home2 /home
あと、/varが無くなっているので作る。
# mkdir /var
tar.tarを /varに展開する。
# tar xf /tmp/var.tar /var
> 7./etc/fstabと修正して/dev/hdb3が/homeにマウントされるようにする。
> # emacs /etc/fstab
起動時に/dev/hdb3がマウントされるように編集。(viコマンドで編集。)
# vi /etc/tstab
> 8.マウントし直す。
> # umount /dev/hdb3
> # mount -a
> 9./にvar.tarを展開
> # tar xf /tmp/var.tar /
上記は不要ではないでしょうか。あっ、一応
# mount -a
をやっておきましょうか。
> このあと、不必要な/mnt/home以下を削除してリブート。
> これでいけそうな気はするのですが怖くてできてません。これで正しいのでしょうか?
取りあえず、/homeはいつでも消せるので残しておいて動作確認やリブート。
この説明で理解できますでしょうか?
急いで書いたので、細かいところでディレクトリ指定とか移動とかが省いてたり
してると思うのですが。。。
でもやはり怖いので、テストマシンで同じような構成を構築させて実験を行ったほうが
得策だと思います。
追加補足って言うか、ふと思ったのですけど一時的に /varが無い状態が出来てしまい
その時 /varディレクトリに書き込みが生じた時、どのような症状になるのか判らない
んですよね。
私は、この一連の方法を行ったことが無いので保証も出来ません。
やはりテストマシンで実験してみるか、或いは思い切って再インストールしたほうが
無難のような気がしてきました。
こんばんは。教えていただいたことを参考に実際にやってみました。
結果からいうと教わった、また考えていた通りにはいきませんでした。
まず、tar cpf /tmp/var.tar /varでは/var/run/ndcなどがバックアップできず(この辺はあとから作ることも可能かと思いましたが)、また、/varをアンマウントしようかとするとbusyだからダメだと言われました。
いうわけで今は一時あきらめているところです。
どうにか打開策はあるのでしょうか?
もしダメならとりあえずだましだましやって今度再インストールするときにでもきちんとしようかとも思っています(どうせ初心者なのでまたすぐ再インストールすることがでてくると思いますので)。