web-dev-qa-db-ja.com

リモートシステムの/ varパーティションのサイズを変更する(Linux Debian Lenny)

Sshとvncを介してのみアクセスできるサーバーで(「ライブ」CD/DVDからのブートは不可能であることを意味します)、/ varに割り当てられたパーティションを圧縮します(スペースを空けるために追加のパーティション)。それを行うための良い安全な方法は何でしょうか?

解決策(/ varのコピーを収容するのに十分なスペースが/にある場合、David Spilletの回答に基づく):

  1. / varを使用しているものは可能な限り停止します
  2. / varを読み取り専用で再マウントして、適切な測定を行いますmount -f -oremount、ro/var(私には何の効果もないようです)
  3. mkdir/vartmpを使用して、/ varを別の名前で/にコピーします。 cp -av/var/*/vartmp /
  4. / etc/fstabの/ varのエントリをコメント化します
  5. リブート
  6. mv/var/varmountで物事を移動します。 mv/vartmp/var
  7. 再起動、パーティション
  8. / etc/fstap内の/ varのエントリのコメントを外します
  9. リブート
5
user25298

ルートパーティションに/ varの内容用のスペースがある場合は、次のことができます。

  1. 可能であれば/varを使用しているものをすべて停止します
  2. / varを読み取り専用で再マウントして適切な測定を行いますmount -f -oremount,ro /var
  3. /var/mkdir /vartmp; cp -av /var/* /vartmp/を付けた別の名前でコピー
  4. mv /var /varmount; mv /vartmp /varで移動
  5. /var/etc/fstabのエントリをコメント化
  6. リブート

これで、ルートパーティションに/varがそのままではなく、そのまま配置されます。これで、必要に応じて古いパーティションのサイズを変更できます。ステップ4では、マウントポイントとして使用されていてビジー状態であっても、/varディレクトリの名前を変更できます(開いているファイルを処理すると、開いているファイルがパス+名前で参照されないため、変更が追跡されます。が、代わりにiノードによって、一度開かれます)。

/にはスペースがなく、/someotherfsにはスペースがある場合は、/のシンボリックリンクを使用してそこに移動することができます。

  1. 可能であれば、/varを使用しているものをすべて停止します
  2. / varを読み取り専用で再マウントして適切な測定を行いますmount -f -oremount,ro /var
  3. /varcp -av /var /someotherfs/varとともにコピー
  4. mv /var /varmount; ln -s /someotherfs/var /varで移動
  5. /var/etc/fstabのエントリをコメント化
  6. リブート

起動時に/someotherfs/varの前にマウントされることを確認する必要があるため、これは少し危険です。

一時的にコピーする場所がない場合は、キャッシュされたパッケージ(Debianスタイルのセットアップでは/var)などを削除することで、aptitude cleanのサイズを削減できる可能性があります。同等のyumコマンド)、他のものを移動します(たとえば、Debianはデフォルトのhttpdocsを/var/wwwに保持するため、まだそこにあり、そこに大量のデータがある場合は、別のパーティションに移動します)、/var/logから最近ではないファイルを削除します(後で参照する必要がある場合に備えて、最初にバックアップします)。

Zoredacheが言うように:何をするにしても、先に進む前にバックアップの配置に満足していることを確認してください。

注意:上記はすべてメモリからのものであり、私はどこでもテストしていません。自己責任でフォローしてください!

5
David Spillett

従来の方法は シングルユーザーモードで起動 です。そのように、/varはデフォルトではマウントされないので、好きなようにいじることができます。

1
reinierpost

コンソール(イーサネット経由のキーボードビデオマウスなど)にアクセスできる場合は、次のことができます。

  1. init 1(そしてroot-passwordを与える)
  2. 多分systemctl stop systemd-timesyncdは、使用する場合にのみ必要です
  3. umount /var
  4. e2fsck /dev/volume-where-var-is-in-your-system
  5. resize2fs /dev/volume...何にでも(私の場合は縮小したかったので-M
  6. より多くのことを行う(lvresizeまたは何でも)

その後、再起動します

0
smakks
  1. varを使用している可能性のあるサービスをすべて停止します(lsof | grep "/ var")
  2. umount/var
  3. / varを縮小
  4. / varを再マウント
  5. 1で停止したサービスを再起動します。
0
Jure1873

シングルユーザーが最も安全な方法です。

これらの手順では、Red Hat 7.xシステムでのvar LV/FSのサイズ変更について説明します

シングルユーザーに入る前にインベントリを取得します。

# df -h /var
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-var   13G  6.2G  5.9G  52% /var

# vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  vg00         1   7   0 wz--n- <39.51g <2.63g

# lvs | grep var
  var      vg00       -wi-ao---- <12.86g

使用しているプラ​​ットフォームに関連するシングルユーザーモードで起動します。

注:システムは/ sysroot経由でアクセスできます。

Vg00をアクティブ化します。

# lvm vgchange -ay vg00

LVデバイスファイルを再作成します。

# lvm vgmknodes -vv

# e2fsck -f /dev/vg00/var

安全のため、FSを8GBに、次にLVを8.5GBに削減します(FS記入してサイズを変更してから)):

# /sysroot/sbin/resize2fs -p /dev/vg00/var 8G

いくつかのサイズ変更数学:

VG PE size: PE Size 4.00 MiB

4M * 1024K = 4096K

8.5G * 1024K * 1024K = 8,912,896K

8,912,89 / 4096 = 2176 PEs

注:最初に次のエラーを受け取り、locking_typeを手動でオーバーライドする必要がありました:「読み取り専用のセットロックタイプ。書き込みロックは禁止されています。」

# grep locking_type /etc/lvm/lvm.conf
locking_type = 4

LVを下げる:

# lvm lvreduce -l 2176 /dev/vg00/var --config 'global {locking_type=1}'

サイズ変更を再実行して、LVコンテナーを8.5GBまでいっぱいにします。

# /sysroot/sbin/resize2fs /dev/vg00/var

新しいサイズを確認:

#lvm lvs

# reboot
0
XO01