次のように、パーティション間にスペースが分散されたサーバーがあります。
GSSJMB02:~ # df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d0p5 25G 5.9G 18G 25% /
udev 3.9G 144K 3.9G 1% /dev
/dev/cciss/c0d0p9 64G 129M 61G 1% /apps
/dev/cciss/c0d0p1 244M 12M 219M 6% /boot
/dev/cciss/c0d0p10 16G 129M 15G 1% /home
/dev/cciss/c0d0p7 5.0G 618M 4.1G 13% /opt
/dev/cciss/c0d0p8 9.9G 228M 9.2G 3% /var
GSSJMB02:/gsn/sw 25G 5.9G 18G 25% /mnt/nfs/gsn/sw
GSSJMB02:/gsn/nodes 25G 5.9G 18G 25% /mnt/nfs/gsn/nodes
ここでは、ファイルシステムには/dev/cciss/c0d0p5
必要以上のスペースがあります。そして、ファイルシステムには/dev/cciss/c0d0p9
使用できないスペースがたくさんあります。/dev/cciss/c0d0p5
一部を引いてスペースを増やすことはできますか/dev/cciss/c0d0p9
?
答え1
バックアップ、再パーティショニング、mkfs、リカバリなしで可能少なくともc0d0p [56789](パーティション番号がディスクレイアウトに従って順番に指定されていると仮定)。
これを行うために多くの労力を費やすには、lvmをインストールして構成し、パーティションの代わりに論理ボリュームを使用することにもう少し努力してください。これにより、次回にボリュームを増減する必要があるときに、より柔軟性が得られます。ファイルシステム(または2番目のディスクを追加する場合)。
(また、最近の人々がなぜ小さなディスクに小さなパーティションをたくさん作るのか理解するのは難しいです。以前はこれは一般的な慣行でしたが、ディスクも小さくなりました。
したがって、短い答えは「いいえ」です。
ただし、/apps(たとえば/apps/stuff)にディレクトリを作成し、+symlinkファイルを/から/apps/stuffに移動することはできます。たとえば、
mkdir /apps/stuff
mv /usr/share/doc /apps/stuff
ln -s /apps/stuff/doc/ /usr/share/
起動時に必要なファイルまたはディレクトリ(すべて/ etc、/ bin、/ sbinを含む)を移動しない限り、すべてが機能し続けます(再起動するか、少なくとも一部を終了して再起動する必要があるかもしれません)。移動したファイルはプロセスによって開いたままになります。
ところで、所有者、グループ、権限が保存されている限り、通常はファイルをコピーするのがmvよりも優れています。たとえば、「then」という古いツールを使用しcp -a
たりファイルをコピーしたりすると、そのファイルを削除(または一時的に邪魔にならない場所に移動)してシンボリックリンクを作成します。完了したら、すべてが正常に動作するかどうかをテストします。その場合は、ルートファイルシステムから元のファイルを削除します。例えばrsync
cd /path/to/src ; tar cf - . | (cd /path/to/dest ; tar xf -)
mkdir /apps/stuff
rsync -ax /usr/share/doc /apps/stuff
mv /usr/share/doc /usr/share/doc.bak
ln -s /apps/stuff/doc/ /usr/share
# do your testing now
rm -rf /usr/share/doc.bak
ここでは、rsyncでソースパラメータの末尾/を維持することが重要です(つまり、/usr/share/doc
代わりに使用/usr/share/doc/
)。それ以外の場合、rsyncは/usr/share/doc/のすべての内容を/apps/の代わりに/apps/stuffにコピーすると思います。物事/文書