わずかに古いシステムで、およそ2年前のものです。 CentOSの実行
私は/var
大量のスペースを使用していて、それはすべて良いことです...したがって、スペースを削除することは答えではありません。
移動する簡単で安全な方法はありますか/var
OSをトーストせずに新しくマウントされたディスクにコピーしますか?ディスクを追加して適切にフォーマットする方法を知っていますが、実際に移動しようとしたことがありません/var
以前に新しい目的地へ。
私はServer Faultや他のWebサイトに関する記事を読んだことがありますが、これについての正確な対処方法については、あいまいです。通常、プロセスの停止などを提案します。ただし、これを安全に行う方法や、データを移動してすべてをマウントする前にすべてを正しく停止したことを確認する方法については詳しく説明しません。
これをすでにチェックしました:
MySQLをひどく台無しにするようなことをしたくなかった。ありがとう!
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos6-centos6_root
47G 41G 4.0G 92% /
tmpfs 3.9G 500K 3.9G 1% /dev/shm
/dev/vda1 276M 199M 64M 76% /boot
/dev/vdb1 197G 119G 68G 64% /home
/dev/vdd1 197G 95G 93G 51% /home2
/dev/vde1 99G 8.1G 86G 9% /home3
/usr/tmpDSK 2.0G 40M 1.8G 3% /tmp
# cat /etc/fstab
/dev/vg_centos6/centos6_root / ext4 usrjquota=quota.user,jqfmt=vfsv0 1 1
/dev/vda1 /boot ext3 defaults 1 2
/dev/vdb1 /home ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
/dev/vdd1 /home2 ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
/dev/vde1 /home3 ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/mapper/vg_centos6-lv_swap swap swap defaults 0 0
/usr/tmpDSK /tmp ext3 defaults,noauto 0 0
私が見ることができるものから、/var
は間違いなくルートパーティションにあります。私はそれを変えたいと思っています。
良いことは、システムがおそらくVMデバイスファイルのノード名(/dev/vdb
など)でわかるように)であることです。これにより、使用する必要がなくなるため、手順が簡単になります。 iSCSIストレージなどの特殊なツール(例:iscsi-initiator-utils
)。
CentOSは 最小インストール メディアを提供します。このメディアには、私たちの目的にとって最も重要なツールであるrsync
が含まれています。 CentOS 6を使用していて、64ビットシステムを使用している場合は、 this のように mirror を選択して、最小限のCD ISOイメージをダウンロードできます。次に、サイズが400 MB未満の here から最小限のISOをダウンロードできます。追加の手順に関するガイドラインは次のとおりです。
スペアディスクを準備します。新しいディスクをVMに接続し、通常どおりにフォーマットします。これを行う方法を知っていることはすでに書いています。
レスキューモードで起動します。 VMを正常にシャットダウンし、最小限のISOを起動します。提供されているインストールオプションの1つはRescue installed systemです。これを選択すると、 /var
ディレクトリに書き込むプロセスのないCDです。これにより、古いディスクから新しいディスクにデータを転送するための安全な環境が提供されます。メニューに移動する前にナビゲートする必要があるいくつかのメニューがあります。シェルプロンプト。括弧内の項目は、私にとって最も意味のあるものです。適切と思われるものを選択してください。
データを転送します。新しい/var
データを格納する新しいディスク上のデバイスノードが/dev/vdc1
で、/var
ディレクトリを保持している古いルートパーティションが/dev/vda2
であるとします。一時的なマウントポイントを作成し、データをコピーします。
mkdir /mnt/var /mnt/var_old
mount /dev/vda2 /mnt/var_old
mount /dev/vdc1 /mnt/var
rsync -a /mnt/var_old/ /mnt/var/
古い/ varを移動します。古い/var
ディレクトリを移動して、新しい空のマウントポイントを作成します。
mv /mnt/var_old/var /mnt/var_old/var.old
mkdir /mnt/var_old/var
fstabを編集します。新しいディスク上のファイルシステムが/etc/fstab
にマウントされるように/var
をセットアップします。上記のデバイスノードを指定して、次のようなエントリを/mnt/var_old/etc/fstab
に追加します。
/dev/vdc1 /var ext4 defaults 1 2
再起動。シェルプロンプトでexit
と入力し、VMの再起動を選択します。次に、最小限のCDではなく、通常のOSインストールを起動します。
すべてが順調に進んだ場合、古い/var
データは/var.old
に存在し、/var
はそのすべてのデータを含み、使用できる状態になります。必要に応じて、通常の操作の数日後に/var.old
を削除することもできます。
新しいパーティションを/mnt
の下にマウントし、その後rsync --progress /var /mnt
を実行します。これがすでに行われている場合は、umount /mnt
を編集して、新しいvarパーティションとreboot
を編集します/etc/fstab
私はpdpの答えが本当に好きですが、Centos 7のLVMでは、知らない人のためにこれらの手順を追加したいと思います。
レスキューメディアを起動します。シェルに脱出。
ボリュームグループをスキャン:lvm vgscan -v
すべてのボリュームグループをアクティブ化:lvm vgchange -a y
論理ボリュームのリスト:lvm lvs –all
この情報とボリュームがアクティブになると、ボリュームをマウントできるようになります:mount /dev/volumegroup/logicalvolume /mountpoint
これは http://jim-zimmerman.com/?p=587 にある手順のコピーです
また、rsyncがターゲットディレクトリを作成する方法にも注意してください。/old/varを/ new/varにコピーすると/ new/var/varが作成され、CentOSが満足するように新しいvarを再構築する必要があったため、簡単な頭痛の種となりました:)