回答:
最初に新しいパーティションを準備します(たとえば、parted
とmkfs
)。
パーティションが/ dev / sda5であるとします
新しいパーティションをマウントします。
mkdir /var2
mount /dev/sda5 /var2
現在の変数を同期します:
rsync -a /var/ /var2
/ etc / fstabにエントリを追加します
/dev/sda5 /var ext4 defaults 2 2
リブート。
古い/ varに戻る必要がある場合は、fstabのエントリをコメントアウトしてください。
/
、実行中(ただし再起動後)に、現在のシステムの他の場所にマウントできます。次に、あなたが古いで取得することができます/var
し、あなたのような場合はそれを削除
blkid -o list -s UUID
sudoで実行する必要があると思います
雇用主のホスティング会社によってプロビジョニングされた新しい仮想サーバーを引き継いだとき、ルートファイルシステムに十分な空き領域がありませんでした。幸運なことに、彼らは論理ボリュームマネージャ(LVM)を使用して仮想ディスクを細分化し、新しいボリュームを作成するのに十分な空き容量がありました。私はのために余分な論理ボリュームを作成var
し、home
そのルートファイルシステム内の通常のディレクトリされていました。仮想サーバープロバイダーは、シングルユーザーモードでサーバーにアクセスできるKVMのようなインターフェイスを提供していなかったため、Aleksanderによって概説された方法と非常によく似た方法を使用しました(この回答には、 LVM固有のコマンドに追加)。
新しいvar
ファイルシステム用の論理ボリュームを作成し、(一時ディレクトリを使用して)マウントし、現在の/var
ファイルシステムから新しいファイルシステムにファイルをコピーします。
# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
実行中のプロセスはファイルを/var
開いたままにして使用するため、ディレクトリツリーを新しいファイルシステムに単純に移動することはできません。ファイル属性と拡張属性(オプション)を保持しながら-r
、現在の/var
パーティションから新しいファイルシステムにファイルを再帰的に()コピーします-a, --archive
。慎重なユーザーは、コピーする前に最初に現在のボリュームのLVMスナップショットを作成するかもしれませんが、この質問にはあまりにも詳細なトピックです。
sudo cp -ra /var/ /var.new/
また、ファイルがでコピーすることができrsync
、そので、-a, --archive
タイムスタンプ、所有権、モード、などを保存するためのオプションとその-X, --xattrs
ようにAppArmorのとSELinuxで使用されるセキュリティラベルなどの拡張属性を保持するためのオプション:
sudo rsync -raX /var/ /var.new/
/var
次の行をに追加して、新しいファイルシステムを新しいマウントポイントとして使用するように設定します/etc/fstab
。これ0
はパス番号(最後のフィールド)として使用されるためfsck
、一定回数の再起動後にファイルシステムが自動的にチェックされないようにします()。
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
シングルユーザーモードに変更することは不可能なので、コンピューターを再起動してこの新しいボリュームをとして使用し/var
ます。
マシンが再起動すると、新しいファイルシステムがマウントされる/var
ため、一時的なマウントポイントを安全に削除できます。
sudo rmdir /var.new
古い/var
ファイルは引き続きルートパーティションのスペースを占有しますが、別のファイルシステムがマウントされ/var
ている間は簡単にアクセスできません(/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/
lvcreate
してmkfs.ext4
いるか、その理由を使用しているかを説明せずに。答えの主要なトピックではないので、新しいパーティションを作成するためのものであることがわかります。
/var
、のLiveCDから起動をインストールしたシステム上のパーティションをマウントします/
とrm -rf /var/*
。