SSHアクセス権しかない場合は、ルートパーティションのCasefold ext4ファイルシステムオプションをどのように変更しますか?

SSHアクセス権しかない場合は、ルートパーティションのCasefold ext4ファイルシステムオプションをどのように変更しますか?

必須オプションでコンパイルされたバックポート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

再起動してお楽しみください!

おすすめ記事