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

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

私は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関連資料を持つWebサーバーとして使用しています/srv/。なぜなら、これは/私のディスク容量が足りないからです。私は/home44Gの利用可能なネットワークスペースがあることがわかりました。それは私にとって完全にうるさいです。だから私は/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

ここまで来るには何が必要ですか?

答え1

には十分なスペースがあるため、すべてのコンテンツをに/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

最後に、(symlink メソッドを使用しない場合)、/etc/fstabマウントポイントを変更するように編集します。で始まる行からに/dev/sda9 /home置き換えます。/home/srv

答え2

何かをする前に、現在の/homeが占める180MBのデータを保存する場所を見つける必要があります。現在/ dev / sda9を2G/homeと42に再パーティションすることをお勧めします/srv

次に少しトリッキーになるはずです。これはすべてシングルユーザーモードで実行するのが最善です。したがって、ルートのみログインでき、/home移動中に他の人がアクセスしようとする問題はありません。

/ varには十分なスペースがあるため、これを一時保管スペースとして使用します。 mkdir /var/tmp/oldhome

cd /home

`tar -cvf - ./| ( cd /var/tmp/oldhome && tar -xvf - )

これでどこかにバックアップしたので、2ギガと42ギガに/home再分割しました。/dev/sda9/dev/sda9/dev/sda10

パーティションを分割して新しいファイルシステムを作成した後(これを行う方法を知っているとします)/etc/fstab

どこかに次のような行が表示されます。

/dev/sda9 /home ext3 defaults 0 2

/dev/sda92つのパーティションのうちより小さいパーティションを作成したと仮定すると、行を変更せずに追加するだけです。

/dev/sda10 /srv ext3 defaults 0 2

真下。

この行を追加したら、次のように入力します。

mount /home ; mount /srv

df -h両方のパーティションがマウントされていることを確認してください。

次に、/homeのデータを置き換えます。

cd /var/tmp/oldhome

tar -cvf - ./ | ( cd /home && tar -xvf - )

マルチユーザーモードでシステムを再起動すると、すべてが正常に動作します。

答え3

迅速で悪い解決策として、使用されていないディスクのディレクトリを下の場所に再マウントし、そこに/srvいくつかの項目を移動して/srv適切なスペースを解放します。

について--bind読んでください。すべての最新のLinuxで実行されます。man mountmount --bind /some/spare/dir /busy/dir/mountpoint

あなたが持っていると仮定します/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のスペースを解放します。

関連情報