ケースがコンソールなしのリモートサーバーの場合、再起動中にinitramfsを使用してファイルシステムを縮小できます。rootをマウントする前に、resize2fsをinitramfsに追加して実行する必要があります。
Debian / Ubuntuの例:
/ etc / initramfs-tools / hooks / resizefs(実行可能ファイル):
#!/bin/sh
set -e
PREREQS=""
prereqs() { echo "$PREREQS"; }
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/e2fsck
copy_exec /sbin/resize2fs
exit 0
/ etc / initramfs-tools / scripts / local-premount / resizefs(実行可能ファイル)
#!/bin/sh
set -e
PREREQS=""
prereqs() { echo "$PREREQS"; }
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
/sbin/e2fsck -yf /dev/sda1
/sbin/resize2fs /dev/sda1 5G
/sbin/e2fsck -yf /dev/sda1
ここで、update-initramfsを実行し、再起動し、サイズを確認し、これらのスクリプトを削除して、update-intiramfsを再度実行します。
dracut(Fedora、CentOS)の場合、同じロジック(/usr/lib/dracut/modules.d)を使用します。
これは、rootfsの暗号化または移動に非常に便利で、新しいパーティションに使用可能な空きスペースがありません。