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 바인딩이고 두 번째 작업은 주로 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:~#

관련 정보