web-dev-qa-db-ja.com

マウントポイントを変更する方法

私はこの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

ここに来るには何をしなければならないのですか?

6
acme

/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 - )

マルチユーザーモードでシステムを再起動すると、すべてが機能するはずです。

2
Shadur

迅速ではあるがあまり美しくはない解決策として、使用頻度の低いディスクの1つにあるディレクトリを/srvの下のあるポイントに再マウントし、そこに何かを移動して/srvの適切な領域を少し空けることができます。

--bindman 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のスペースを解放します。
2
9000