Debian Linux 10 バスターで initrd.img ファイル圧縮を無効にする方法

Debian Linux 10 バスターで initrd.img ファイル圧縮を無効にする方法

/boot/initrd.img起動速度を上げるためにファイル圧縮を無効にしたいと思います。私のディスクは追加の10MBを収容するのに十分な大きさです。正直なところ、最近数メガバイトのディスク容量を余裕がない人にとっては、これが基本であるべきだと思います。付属のシナリオでは、手動で有効にできます。

確認してください/etc/initramfs-tools/initramfs.conf。圧縮タイプを変更するオプションがあります。

COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ]

ただし、圧縮を無効にするオプションはありません。私はそれを試しましたが、うまくNoneいきnoneませんでした。

解決策として、私はinitrd.img-4.19.0-8-amd64手動解凍を使用しますgunzip。ただし、カーネルアップデートをインストールするたびに再度解凍する必要があります。

答え1

これを行うためのオプションはありませんが、mkinitramfsシェルスクリプトなので、再コンパイルせずに追加できます。で/usr/sbin/mkinitramfs、探しています

case "${compress}" in

オプションセットに「cat」行を追加します。

cat)   compress="cat" ;;

これにより、COMPRESS=catで指定できますinitramfs.conf

mkinitramfsパッケージから復元するたびに(アップグレードするとき)、この操作をやり直す必要があります。

答え2

最近はやりやすいとは思えず、当然の選択でもないようですinitramfs.conf

画像の読み取りと解凍に必要な合計時間は、ファイルの読み取りと解凍に要する合計時間です。最初のジョブはI / Oバインディングで、2番目のジョブは主にCPUバインディングです。

したがって、圧縮された画像の読み込みと圧縮されていない画像の読み込みとの比較は簡単ではありません。ある場合は、より小さいファイルを読み取り、解凍し、別の場合はより大きなファイルを読み込みましたが、解凍しません。

どちらが速いかをベンチマークする必要があります。推測するには、より小さなファイルを読み、解凍したと言いたいと思います。

答え3

画像COMPRESS=gzipを作成するときに警告メッセージを表示するように変更できます。無視してください。COMPRESS=catinitramfs.conf

答え4

Stephen Kittは良い提案をしましたが、現在Debian 11では動作しません。なぜなら、-cコンプレッサーバイナリを呼び出すときにフラグが使用され、ジョブが中断されるからですcat

また、良い解決策は/usr/sbin/mkinitramfs毎回編集しないことです。私にとって最もエレガントな方法は、pvコンプレッサーを次に交換することです/etc/initramfs-tools/initramfs.conf

user@s:~# time update-initramfs -c -k all
update-initramfs: /boot/initrd.img-5.10.0-18-amd64 生成
W: 不明な圧縮コマンド pv
134MiB 0:00:00 [ 220MiB / s ] [====================================>] 100%

リアル0m9、144s
ユーザー0m4 、915s
システム0m3、654s
ユーザー@s:〜#

関連情報