必須オプションでコンパイルされたバックポート6.1 Linuxカーネルを持つDebian 11サーバーのext4で、大文字と小文字を区別しないファイルシステム機能(casefold)を有効にする必要があります。
サーバーには2GBのスワップパーティションとファイルシステム用の大規模なext4パーティションがあり、このパーティションでも起動します。物理/仮想ホスト自体ではないルートとしてのみSSHアクセス権があるため(仮想)、USBスティックまたはCDROMメディアにアクセスできません。
ウォレット機能を有効にする最速の方法は何ですか? une2fsはファイルシステムがすでにマウントされているため、これは望ましくありません。
アイデア:スワップ領域を削除し、その中に小さな回復システムをインストールし、その回復システムで再起動し、ルートパーティションのファイルシステムオプションを変更し、アクティブパーティションで再起動し、スワップ領域を復元します。ただし、これを達成するには、必須のune2fsコマンドを実行する追加のLinuxシステムを準備する必要があります。
もっと良い方法がありますか?再起動後に回復システムを使用し、必要なネットワーク設定を事前設定できますか?
ベストアンサー1
@MarcusMüllerのおかげでこれを行うことができました。秘密はinitrdイメージにtune2fsを追加し、起動中に呼び出すことです。
スクリプトの生成initramfs-utils
:
cat > /usr/share/initramfs-tools/scripts/local-premount/ext4_casefold << 'EOF'
#
# ext4_casefold
#
# initrd script to add the casefold option to the root filesystem
#
DEVICE=/dev/sda2
prereqs()
{
. /usr/share/initramfs-tools/hook-functions
copy_exec /usr/sbin/tune2fs usr/sbin/tune2fs
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
echo "Adding casefold option to $DEVICE"
sleep 5
/usr/sbin/tune2fs -O casefold $DEVICE
echo "If everything went well, we added the casefold option to $DEVICE"
sleep 5
EOF
実行可能にする:
chmod a+x /usr/share/initramfs-tools/scripts/local-premount/ext4_casefold
initrd を再構築します。
update-initramfs -u
RAMディスクの内容に実際にtune2fsが含まれていることを確認してください(オプション)。
INIT_RD_IMAGE=initrd.img-6.1.0-0.deb11.7-amd64
rm -rf /root/initrd
mkdir /root/initrd
cp /boot/$INIT_RD_IMAGE /root/$INIT_RD_IMAGE.gz
gunzip /root/$INIT_RD_IMAGE.gz
cd /root/initrd
cpio -id < /root/$INIT_RD_IMAGE
再起動してお楽しみください!