私はこのLinuxでのマウント/マウント解除についてあまり詳しくないので、ここで私の質問を説明します。
df -h
を使用すると、次の概要が得られます。
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 323M 306M 0 100% /
tmpfs 502M 0 502M 0% /lib/init/rw
udev 497M 116K 497M 1% /dev
tmpfs 502M 0 502M 0% /dev/shm
/dev/sda9 47G 181M 44G 1% /home
/dev/sda8 368M 12M 338M 4% /tmp
/dev/sda5 8,3G 1,1G 6,8G 14% /usr
/dev/sda6 2,8G 433M 2,2G 17% /var
私はこのマシンを、すべてのWeb関連のものが/srv/
の下にあるWebサーバーとして使用しています。これは/
の一部なので、ここではディスク領域が不足しています。 /home
に44Gの利用可能なWebスペースがあることを確認しました。これは、私の場合はまったくナンセンスです。したがって、/home
を独自のパーティション(/
の一部)としてではなく、/srv
を独自のパーティションとして使用して、/home
によって消費されるスペースを取得したいと考えています。したがって、その後はdf -h
は次のようになります(/home
は/srv
に置き換えられます):
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 323M 306M 0 100% /
tmpfs 502M 0 502M 0% /lib/init/rw
udev 497M 116K 497M 1% /dev
tmpfs 502M 0 502M 0% /dev/shm
/dev/sda9 47G 181M 44G 1% /srv
/dev/sda8 368M 12M 338M 4% /tmp
/dev/sda5 8,3G 1,1G 6,8G 14% /usr
/dev/sda6 2,8G 433M 2,2G 17% /var
ここに来るには何をしなければならないのですか?
/home
には十分なスペースがあるため、/srv
から/home
にすべてのものを移動してから、(オプションで)/home
にあったものをルートパーティションに移動します。
数分のダウンタイムを気にしない場合の最も簡単な解決策は、/srv
を大きなパーティションに移動して、シンボリックリンクすることです。
mv /srv /home
ln -s /home/srv /
/home
を本当にルートパーティションに移動する場合は、いくつかの名前変更が必要です。 /home/srv
または/srv/srv
という名前のディレクトリがないと思います。
mv /srv home
mkdir /srv
mount --move /home /srv
mv /srv/acme … /home/
mv /srv/srv/* /srv
rmdir /srv/srv
最後に(シンボリックリンク方式を使用していない場合)/etc/fstab
を編集してマウントポイントを変更します。/dev/sda9 /home
で始まる行で、/home
を/srv
に置き換えます。
何かを行う前に、/ homeが現在使用している180メガバイトのデータを保持する場所を見つける必要があります。現在の/ dev/sda9を、たとえば、_/home
_の2つのギグと_/srv
_の42ギグに再パーティション化することをお勧めします。
次は少し注意が必要です。これはすべてシングルユーザーモードで実行するのが最善です。そのため、rootのみがログオンし、移動中に誰かが_/home
_にアクセスしようとして問題が発生することはありません。
/ varには十分なスペースがあるため、これを一時的な保持スペースとして使用します:_mkdir /var/tmp/oldhome
_
_cd /home
_
`tar -cvf-./ | (cd/var/tmp/oldhome && tar -xvf-)
_/home
_を_/dev/sda9
_の2ギグと_/dev/sda9
_の42ギグに再パーティションしている間に、_/dev/sda10
_をどこかにバックアップしました。
新しいファイルシステムの再パーティション化と作成が完了したら(これを行う方法を知っていると想定します)、_/etc/fstab
_を編集する必要があります。
どこかにあなたはの線に沿って何かを言っている線を見るでしょう
_/dev/sda9 /home ext3 defaults 0 2
_
_/dev/sda9
_を2つのパーティションのうち小さい方にしたと仮定すると、その行を変更せずにそのままにしておくことができます。追加する必要があるだけです
_/dev/sda10 /srv ext3 defaults 0 2
_
直下。
これらの行を追加したら、次のように入力します
_mount /home ; mount /srv
_
_df -h
_で確認して、両方のパーティションがマウントされていることを確認します。
次に、/ homeからのデータを置き換えます。
_cd /var/tmp/oldhome
_
tar -cvf - ./ | ( cd /home && tar -xvf - )
マルチユーザーモードでシステムを再起動すると、すべてが機能するはずです。
迅速ではあるがあまり美しくはない解決策として、使用頻度の低いディスクの1つにあるディレクトリを/srv
の下のあるポイントに再マウントし、そこに何かを移動して/srv
の適切な領域を少し空けることができます。
--bind
のman mount
をご覧ください。つまり、mount --bind /some/spare/dir /busy/dir/mountpoint
のようになります。最新のLinuxで動作します。
/srv/some/stuff
があるとします。
mkdir /home/offload/some/stuff
—これは44Gの空き領域パーティションにありますmv /srv/some/stuff /srv/some/previous-stuff
—一時的に、名前を解放しますmount --bind /home/offload/some/stuff /srv/some/stuff
—いくつか/ものが別のパーティションにあります!mv /srv/some/previous-stuff/* /srv/some/stuff
—元の名前で元に戻し、/ srvのスペースを解放します。