[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#626446: initramfs-tools: [Patch] Option to enable xz compression for initrd



Package: initramfs-tools
Version: 0.98.8
Severity: wishlist
Tags: patch

Since the linux kernel (e.g. linux-image-2.6.38-2-686) on Debian Sid has enabled XZ initrd option, i.e. CONFIG_RD_XZ=y, it would be great to have an option to use XZ initrd. This is specially useful to Debian live, the size could be smaller.
Attached please find the patch to enable it.
My 2 cents.

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 11M May 12 11:58 /boot/initrd.img-2.6.39-rc6-686-pae
-- /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.39-rc6-686-pae root=UUID=de8a2656-f7f2-4401-a4c7-3ca819181c9b ro

-- resume
RESUME=/dev/sda5
-- /proc/filesystems
	btrfs
	ext3
	fuseblk
	ext2
	ext4
	reiserfs
	xfs
	jfs
	msdos
	vfat
	ntfs
	minix
	hfs
	hfsplus
	qnx4
	ufs

-- lsmod
Module                  Size  Used by
ufs                    60850  0 
qnx4                   12992  0 
hfsplus                70149  0 
hfs                    44669  0 
minix                  26769  0 
ntfs                  165605  0 
vfat                   16989  0 
msdos                  12822  0 
fat                    44149  2 vfat,msdos
jfs                   138429  0 
xfs                   528900  0 
reiserfs              178367  0 
ext4                  275132  0 
jbd2                   55701  1 ext4
crc16                  12327  1 ext4
ext2                   53488  0 
ipt_MASQUERADE         12530  2 
iptable_nat            12800  1 
nf_nat                 17733  2 ipt_MASQUERADE,iptable_nat
nf_conntrack_ipv4      13649  3 iptable_nat,nf_nat
nf_conntrack           42383  4 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4
nf_defrag_ipv4         12443  1 nf_conntrack_ipv4
iptable_filter         12488  0 
ip_tables              16998  2 iptable_nat,iptable_filter
x_tables               17969  4 ipt_MASQUERADE,iptable_nat,iptable_filter,ip_tables
fuse                   55666  1 
loop                   17777  0 
ext3                  102125  1 
jbd                    40818  1 ext3
mbcache                12810  3 ext4,ext2,ext3
raid10                 25831  0 
raid456                51462  0 
async_raid6_recov      12459  1 raid456
async_pq               12503  2 raid456,async_raid6_recov
raid6_pq               86733  2 async_raid6_recov,async_pq
async_xor              12390  3 raid456,async_raid6_recov,async_pq
xor                    21454  1 async_xor
async_memcpy           12363  2 raid456,async_raid6_recov
async_tx               12510  5 raid456,async_raid6_recov,async_pq,async_xor,async_memcpy
raid1                  25752  0 
raid0                  16828  0 
multipath              12832  0 
linear                 12665  0 
md_mod                 80556  6 raid10,raid456,raid1,raid0,multipath,linear
dm_mirror              17249  0 
dm_region_hash         13072  1 dm_mirror
dm_log                 13269  2 dm_mirror,dm_region_hash
dm_mod                 56401  2 dm_mirror,dm_log
btrfs                 459447  0 
zlib_deflate           21186  1 btrfs
crc32c                 12576  1 
libcrc32c              12394  1 btrfs
sg                     21385  0 
sd_mod                 35060  3 
crc_t10dif             12332  1 sd_mod
sr_mod                 17418  0 
cdrom                  34631  1 sr_mod
ata_generic            12439  0 
ata_piix               21079  2 
uhci_hcd               21850  0 
mptspi                 17666  0 
mptscsih               22263  1 mptspi
floppy                 47893  0 
libata                132100  2 ata_generic,ata_piix
ehci_hcd               34885  0 
mptbase                51867  2 mptspi,mptscsih
scsi_transport_spi     19032  1 mptspi
usbcore               103321  3 uhci_hcd,ehci_hcd
scsi_mod              134414  7 sg,sd_mod,sr_mod,mptspi,mptscsih,libata,scsi_transport_spi
pcnet32                31012  0 
mii                    12595  1 pcnet32

-- /etc/initramfs-tools/modules

-- /etc/kernel-img.conf
# Kernel image management overrides
# See kernel-img.conf(5) for details
do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no

-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto

-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no

-- /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
unused devices: <none>

-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:

/usr/share/initramfs-tools/hooks:
btrfs
busybox
dmraid
dmsetup
keymap
klibc
lvm2
mdadm
thermal
udev


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.39-rc6-686-pae (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages initramfs-tools depends on:
ii  cpio                          2.11-7     GNU cpio -- a program to manage ar
ii  findutils                     4.4.2-1+b1 utilities for finding files--find,
ii  klibc-utils                   1.5.21-1   small utilities built with klibc f
ii  module-init-tools             3.12-1     tools for managing Linux kernel mo
ii  udev                          168-2      /dev/ and hotplug management daemo

Versions of packages initramfs-tools recommends:
ii  busybox                       1:1.18.4-2 Tiny utilities for small and embed

Versions of packages initramfs-tools suggests:
ii  bash-completion               1:1.3-1    programmable completion for the ba

-- no debconf information
diff -uNr initramfs-tools-0.98.8/conf/initramfs.conf initramfs-tools-0.98.8.new/conf/initramfs.conf
--- initramfs-tools-0.98.8/conf/initramfs.conf	2010-08-26 03:32:27.000000000 +0800
+++ initramfs-tools-0.98.8.new/conf/initramfs.conf	2011-05-12 09:49:57.000000000 +0800
@@ -36,7 +36,7 @@
 KEYMAP=n
 
 #
-# COMPRESS: [ gzip | bzip2 | lzma | lzop ]
+# COMPRESS: [ gzip | bzip2 | lzma | lzop | xz ]
 #
 
 COMPRESS=gzip
diff -uNr initramfs-tools-0.98.8/mkinitramfs initramfs-tools-0.98.8.new/mkinitramfs
--- initramfs-tools-0.98.8/mkinitramfs	2011-01-28 22:09:09.000000000 +0800
+++ initramfs-tools-0.98.8.new/mkinitramfs	2011-05-12 09:49:27.000000000 +0800
@@ -149,6 +149,8 @@
 
 [ "${compress}" = lzop ] && compress="lzop -9"
 
+[ "${compress}" = xz ] && compress="xz -9 --check=crc32"
+
 if [ -d "${outfile}" ]; then
 	echo "${outfile} is a directory" >&2
 	exit 1

Reply to: