web-dev-qa-db-ja.com

/ varを別の既存のパーティションに移動する方法は?

/ varを含み、小さすぎる/パーティションがあります。十分なスペースがある別の既存のパーティションがあります。

ここに私のdfがあります:

File system          Size. Occ. Avai. %Ful. Monté sur
/dev/sda1             5,0G  4,5G  289M  95% /
tmpfs                 242M     0  242M   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 242M     0  242M   0% /dev/shm
/dev/sda2              15G  406M   14G   3% /home

/ varフォルダーをsda1からsda2に移動するにはどうすればよいですか?

16
Jérémie

シングルユーザーモードに切り替え、/varへの書き込みプロセスが停止していることを確認します。 (lsof | grep /varで確認してください)

  • mkdir -p /home/var
  • rsync -va /var /home/var
  • mv /var /var.old#スペースを取り戻したら、/var.oldを削除できます
  • mkdir -p /var
  • mount -o bind /home/var /var
  • バインドマウントを永続的にするには、/etc/fstabを更新してください。

/etc/fstab

 /home/var /var        none    bind
19
Zoredache

次のものも使用できます。

 mkdir /home/var
 <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var>
 mv /var /var.old
 ln -s /home/var /var

これは、fstabやマウントなどをいじるよりもはるかに簡単なようです。

5
mdpc

シングルユーザーモードに変更せずに_/var_を移動する

雇用主のホスティング会社から提供された新しい仮想サーバーを引き継いだとき、ルートパーティションの通常のディレクトリであったvarhomeに追加の論理ボリュームを作成しました。仮想サーバープロバイダーは、シングルユーザーモードでサーバーにアクセスするためのKVMのようなインターフェイスを提供していなかったため、上記の回答は私のセットアップには適用されませんでした。この回答が同じような状況で他のユーザーに役立つことを願っています(LVMの詳細は保持していますが、論理ボリュームまたはディスクパーティションに新しいファイルシステムが作成されるかどうかは特に関係がないため、省略できます)。

LVMで新しい_/var_ファイルシステムを作成して使用する

新しいvarボリュームのファイルシステムを作成し、(一時ディレクトリを使用して)マウントし、現在の_/var_から新しいファイルシステムにファイルをコピーします。 rsyncを使用してファイルをコピーする場合は、_-a, --archive_オプションを使用してタイムスタンプ、所有権、モードなどを保持し、_-X, --xattrs_オプションを使用して、使用するセキュリティラベルなどの拡張属性を保持しますAppArmorおよびSELinuxによる。

_Sudo lvcreate -L 60GB -n var VolGroup00
Sudo mkfs.ext4 /dev/VolGroup00/var
Sudo mkdir /var.new
Sudo mount /dev/VolGroup00/var /var.new
Sudo rsync -raX /var/ /var.new/
_

ファイルシステムテーブルを更新する

_/var_に次の行を追加して、_/etc/fstab_の新しいマウントポイントとして使用する新しいファイルシステムを構成します。パス番号(最後のフィールド)として_0_が使用されているため、特定の回数の再起動後にファイルシステムが自動的にチェックされない(fsck)ことに注意してください(ログインするためのアクセス権がありません)シングルユーザーモードでサーバーに)。

_/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0
_

シングルユーザーモードに変更できないため、コンピューターを再起動して、この新しいボリュームを_/var_として使用します。

ルートファイルシステムからディスクスペースを回復する

マシンが再起動したら、次の手順を実行して一時ディレクトリをクリーンアップし、古い_/var_ファイルをルートファイルシステムから削除します。

  1. 一時的なマウントポイントを削除します。

    _Sudo rmdir /var.new
    _
  2. 新しいマウントポイントを作成して、ルートファイルシステムの古い_/var_ディレクトリにあるファイルへの代替パスを作成します(現在、ディレクトリにマウントされている新しい_/var_ファイルシステムによって「マスク」されています)。

    _Sudo mkdir /old-root
    Sudo mount /dev/mapper/VolGroup00-root /old-root/
    Sudo rm -rf /old-root/var/*
    Sudo umount /old-root/
    Sudo rmdir /old-root/
    _
1