Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #84220 > unrolled thread

Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot

Started byVincent Lefevre <vincent@vinc17.net>
First post2024-10-07 00:50 +0200
Last post2024-10-09 03:00 +0200
Articles 8 — 3 participants

Back to article view | Back to linux.debian.kernel


Contents

  Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Vincent Lefevre <vincent@vinc17.net> - 2024-10-07 00:50 +0200
    Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Vincent Lefevre <vincent@vinc17.net> - 2024-10-07 01:00 +0200
    Processed: Re: initramfs-tools: fails with "No space left on  device" due to 2 temporary initrd copies in /boot "Debian Bug Tracking System" <owner@bugs.debian.org> - 2024-10-07 01:00 +0200
    Processed: Re: Bug#1084232: initramfs-tools: fails with "No space  left on device" due to 2 temporary initrd copies in /boot "Debian Bug Tracking System" <owner@bugs.debian.org> - 2024-10-07 21:30 +0200
    Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Ben Hutchings <ben@decadent.org.uk> - 2024-10-07 21:30 +0200
      Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Vincent Lefevre <vincent@vinc17.net> - 2024-10-08 03:50 +0200
        Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Ben Hutchings <ben@decadent.org.uk> - 2024-10-08 20:20 +0200
          Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot Vincent Lefevre <vincent@vinc17.net> - 2024-10-09 03:00 +0200

#84220 — Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot

FromVincent Lefevre <vincent@vinc17.net>
Date2024-10-07 00:50 +0200
SubjectBug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot
Message-ID<JuIeB-hpHw-1@gated-at.bofh.it>
Package: initramfs-tools
Version: 0.145
Severity: normal

When updating an initrd file, update-initramfs keeps 2 temporary
copies in /boot, though its space is typically *very* limited
(456 MB by default). This means that one can keep a limited number
of kernels. With the 456 MB default size and maximum compression
(COMPRESS=lzma and COMPRESSLEVEL=9), only 3 kernels are possible.

The temporary copies should be stored on the main file system,
which is not space limited.

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 90M 2024-10-02 23:28:51 /boot/initrd.img-6.10.11-amd64
-rw-r--r-- 1 root root 90M 2024-10-06 23:43:19 /boot/initrd.img-6.11.0-rc2+
-rw-r--r-- 1 root root 67M 2024-07-19 02:11:58 /boot/initrd.img-6.7.12-amd64
-- /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.7.12-amd64 root=/dev/mapper/qaa--vg-root ro quiet

-- resume
RESUME=/dev/mapper/qaa--vg-swap_1
-- /proc/filesystems
	fuseblk
	ext3
	ext2
	ext4
	vfat

-- lsmod
Module                  Size  Used by
tls                   151552  0
mptcp_diag             12288  0
xsk_diag               12288  0
tcp_diag               12288  0
udp_diag               12288  0
raw_diag               12288  0
inet_diag              28672  4 tcp_diag,mptcp_diag,raw_diag,udp_diag
unix_diag              12288  0
af_packet_diag         12288  0
netlink_diag           12288  0
uinput                 20480  1
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
snd_seq               114688  7 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
ctr                    12288  1
ccm                    20480  3
nft_reject_inet        12288  1
nf_reject_ipv4         16384  1 nft_reject_inet
nf_reject_ipv6         20480  1 nft_reject_inet
nft_reject             12288  1 nft_reject_inet
rfcomm                102400  6
cmac                   12288  3
algif_hash             12288  1
algif_skcipher         12288  1
af_alg                 36864  6 algif_hash,algif_skcipher
qrtr                   57344  4
snd_hda_codec_hdmi     90112  1
bnep                   36864  2
binfmt_misc            28672  1
xt_multiport           16384  1
nft_compat             24576  1
nf_tables             372736  3774 nft_compat,nft_reject_inet,nft_reject
snd_sof_pci_intel_tgl    12288  0
snd_sof_intel_hda_common   221184  1 snd_sof_pci_intel_tgl
libcrc32c              12288  1 nf_tables
iwlmvm                602112  0
soundwire_intel        73728  1 snd_sof_intel_hda_common
soundwire_generic_allocation    12288  1 soundwire_intel
snd_sof_intel_hda_mlink    40960  2 soundwire_intel,snd_sof_intel_hda_common
soundwire_cadence      45056  1 soundwire_intel
nls_ascii              12288  1
snd_sof_intel_hda      24576  1 snd_sof_intel_hda_common
nls_cp437              16384  1
snd_sof_pci            24576  2 snd_sof_intel_hda_common,snd_sof_pci_intel_tgl
snd_sof_xtensa_dsp     16384  1 snd_sof_intel_hda_common
vfat                   20480  1
fat                   102400  1 vfat
snd_sof               364544  3 snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_hda
intel_uncore_frequency    12288  0
intel_uncore_frequency_common    16384  1 intel_uncore_frequency
mac80211             1388544  1 iwlmvm
x86_pkg_temp_thermal    16384  0
intel_powerclamp       16384  0
snd_sof_utils          16384  1 snd_sof
snd_soc_hdac_hda       28672  1 snd_sof_intel_hda_common
snd_hda_ext_core       40960  4 snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_sof_intel_hda_mlink,snd_sof_intel_hda
snd_soc_acpi_intel_match    98304  2 snd_sof_intel_hda_common,snd_sof_pci_intel_tgl
coretemp               16384  0
snd_soc_acpi           16384  2 snd_soc_acpi_intel_match,snd_sof_intel_hda_common
snd_soc_core          434176  4 soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hda
kvm_intel             413696  0
btusb                  86016  0
snd_ctl_led            24576  0
btrtl                  32768  1 btusb
btintel                57344  1 btusb
snd_hda_codec_realtek   200704  1
btbcm                  24576  1 btusb
joydev                 24576  0
btmtk                  16384  1 btusb
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
libarc4                12288  1 mac80211
snd_compress           28672  1 snd_soc_core
dell_rbtn              20480  0
kvm                  1363968  1 kvm_intel
bluetooth            1069056  40 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
snd_pcm_dmaengine      16384  1 snd_soc_core
iwlwifi               548864  1 iwlmvm
soundwire_bus         114688  3 soundwire_intel,soundwire_generic_allocation,soundwire_cadence
snd_hda_intel          61440  1
dell_laptop            32768  0
snd_intel_dspcfg       36864  3 snd_hda_intel,snd_sof,snd_sof_intel_hda_common
snd_intel_sdw_acpi     16384  2 snd_sof_intel_hda_common,snd_intel_dspcfg
ledtrig_audio          12288  3 snd_ctl_led,snd_hda_codec_generic,dell_laptop
irqbypass              12288  1 kvm
mei_hdcp               28672  0
mei_pxp                16384  0
mei_wdt                12288  0
snd_hda_codec         225280  6 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda,snd_sof_intel_hda
uvcvideo              147456  0
cfg80211             1339392  3 iwlmvm,iwlwifi,mac80211
intel_rapl_msr         20480  0
rapl                   20480  0
sha3_generic           16384  1
videobuf2_vmalloc      20480  1 uvcvideo
intel_cstate           20480  0
uvc                    12288  1 uvcvideo
jitterentropy_rng      20480  1
snd_hda_core          147456  9 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_sof_intel_hda
videobuf2_memops       16384  1 videobuf2_vmalloc
videobuf2_v4l2         36864  1 uvcvideo
snd_hwdep              20480  1 snd_hda_codec
dell_wmi               16384  0
hid_sensor_als         16384  1
videodev              372736  2 videobuf2_v4l2,uvcvideo
drbg                   49152  1
hid_sensor_trigger     20480  2 hid_sensor_als
dell_smbios            32768  2 dell_wmi,dell_laptop
snd_pcm               192512  11 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_compress,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pcm_dmaengine
intel_uncore          258048  0
ansi_cprng             12288  0
iTCO_wdt               12288  0
intel_pmc_bxt          16384  1 iTCO_wdt
hid_sensor_iio_common    20480  2 hid_sensor_trigger,hid_sensor_als
dcdbas                 20480  1 dell_smbios
ecdh_generic           16384  2 bluetooth
pcspkr                 12288  0
dell_wmi_ddv           24576  0
dell_wmi_sysman        57344  0
industrialio_triggered_buffer    12288  1 hid_sensor_trigger
firmware_attributes_class    12288  1 dell_wmi_sysman
dell_wmi_descriptor    20480  2 dell_wmi,dell_smbios
wmi_bmof               12288  0
snd_timer              53248  3 snd_seq,snd_hrtimer,snd_pcm
videobuf2_common       77824  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
iTCO_vendor_support    12288  1 iTCO_wdt
mei_me                 57344  3
kfifo_buf              12288  1 industrialio_triggered_buffer
snd                   155648  18 snd_ctl_led,snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_pcm
processor_thermal_device_pci    12288  0
watchdog               49152  2 iTCO_wdt,mei_wdt
mc                     98304  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
mei                   188416  7 mei_wdt,mei_hdcp,mei_pxp,mei_me
processor_thermal_device    20480  1 processor_thermal_device_pci
industrialio          135168  5 industrialio_triggered_buffer,hid_sensor_trigger,kfifo_buf,hid_sensor_als
ecc                    45056  1 ecdh_generic
soundcore              16384  2 snd_ctl_led,snd
processor_thermal_wt_hint    16384  2 processor_thermal_device_pci,processor_thermal_device
processor_thermal_rfim    28672  1 processor_thermal_device
rfkill                 40960  9 iwlmvm,bluetooth,dell_laptop,dell_rbtn,cfg80211
processor_thermal_rapl    16384  1 processor_thermal_device
ucsi_acpi              12288  0
intel_rapl_common      36864  2 intel_rapl_msr,processor_thermal_rapl
typec_ucsi             61440  1 ucsi_acpi
processor_thermal_wt_req    12288  1 processor_thermal_device
processor_thermal_power_floor    16384  2 processor_thermal_device_pci,processor_thermal_device
typec                 114688  1 typec_ucsi
processor_thermal_mbox    12288  4 processor_thermal_power_floor,processor_thermal_wt_req,processor_thermal_rfim,processor_thermal_wt_hint
igen6_edac             24576  0
roles                  16384  1 typec_ucsi
apple_mfi_fastcharge    16384  0
int3403_thermal        16384  0
int340x_thermal_zone    16384  2 int3403_thermal,processor_thermal_device
int3400_thermal        20480  0
intel_hid              28672  0
acpi_thermal_rel       20480  1 int3400_thermal
acpi_pad              184320  0
intel_pmc_core         81920  0
acpi_tad               20480  0
sparse_keymap          12288  2 intel_hid,dell_wmi
ac                     16384  0
hid_multitouch         32768  0
evdev                  28672  23
serio_raw              16384  0
msr                    12288  0
parport_pc             40960  0
ppdev                  24576  0
lp                     20480  0
parport                81920  3 parport_pc,lp,ppdev
efi_pstore             12288  0
configfs               69632  1
nfnetlink              20480  3 nft_compat,nf_tables
efivarfs               24576  1
ip_tables              28672  0
x_tables               57344  3 nft_compat,xt_multiport,ip_tables
autofs4                57344  2
ext4                 1130496  2
crc16                  12288  2 bluetooth,ext4
mbcache                16384  1 ext4
jbd2                  196608  1 ext4
crc32c_generic         12288  0
dm_crypt               61440  1
dm_mod                221184  11 dm_crypt
r8153_ecm              12288  0
cdc_ether              24576  1 r8153_ecm
usbnet                 65536  2 r8153_ecm,cdc_ether
r8152                 151552  1 r8153_ecm
mii                    16384  2 usbnet,r8152
hid_apple              24576  0
usbhid                 73728  0
hid_sensor_custom      28672  0
hid_sensor_hub         28672  4 hid_sensor_trigger,hid_sensor_iio_common,hid_sensor_als,hid_sensor_custom
intel_ishtp_hid        28672  0
nvme                   57344  3
nvme_core             196608  4 nvme
t10_pi                 20480  1 nvme_core
crc64_rocksoft_generic    12288  1
crc64_rocksoft         16384  1 t10_pi
crc_t10dif             16384  1 t10_pi
crct10dif_generic      12288  0
crc64                  16384  2 crc64_rocksoft,crc64_rocksoft_generic
ahci                   49152  0
libahci                61440  1 ahci
libata                471040  2 libahci,ahci
scsi_mod              331776  1 libata
scsi_common            16384  2 scsi_mod,libata
nouveau              3088384  2
i915                 3989504  51
drm_gpuvm              28672  1 nouveau
mxm_wmi                12288  1 nouveau
drm_exec               16384  1 nouveau
gpu_sched              65536  1 nouveau
drm_buddy              20480  1 i915
crct10dif_pclmul       12288  1
i2c_algo_bit           12288  2 i915,nouveau
crct10dif_common       12288  3 crct10dif_generic,crc_t10dif,crct10dif_pclmul
hid_generic            12288  0
crc32_pclmul           12288  0
drm_display_helper    233472  2 i915,nouveau
crc32c_intel           16384  4
xhci_pci               24576  0
ghash_clmulni_intel    16384  0
cec                    69632  2 drm_display_helper,i915
rc_core                73728  1 cec
drm_ttm_helper         12288  1 nouveau
xhci_hcd              356352  1 xhci_pci
i2c_hid_acpi           12288  0
sha512_ssse3           53248  1
ttm                   110592  3 drm_ttm_helper,i915,nouveau
i2c_hid                40960  1 i2c_hid_acpi
rtsx_pci_sdmmc         32768  0
sha512_generic         16384  1 sha512_ssse3
usbcore               409600  10 xhci_hcd,usbnet,usbhid,r8153_ecm,apple_mfi_fastcharge,uvcvideo,btusb,xhci_pci,cdc_ether,r8152
mmc_core              253952  1 rtsx_pci_sdmmc
drm_kms_helper        270336  4 drm_display_helper,i915,nouveau
hid                   176128  7 i2c_hid,usbhid,hid_apple,hid_multitouch,hid_sensor_hub,intel_ishtp_hid,hid_generic
intel_lpss_pci         24576  0
i2c_i801               36864  0
intel_ish_ipc          32768  0
video                  77824  4 dell_wmi,dell_laptop,i915,nouveau
intel_lpss             16384  1 intel_lpss_pci
sha256_ssse3           32768  0
drm                   778240  18 gpu_sched,i2c_hid,drm_kms_helper,drm_exec,drm_display_helper,drm_buddy,drm_ttm_helper,i915,ttm,nouveau
thunderbolt           503808  0
psmouse               208896  0
rtsx_pci              131072  1 rtsx_pci_sdmmc
sha1_ssse3             32768  0
intel_ishtp            77824  2 intel_ishtp_hid,intel_ish_ipc
i2c_smbus              16384  1 i2c_i801
idma64                 20480  0
usb_common             20480  4 xhci_hcd,usbcore,uvcvideo,typec_ucsi
vmd                    24576  0
battery                28672  1 dell_wmi_ddv
button                 24576  1 nouveau
wmi                    40960  9 dell_wmi_sysman,video,dell_wmi_ddv,dell_wmi,wmi_bmof,dell_smbios,dell_wmi_descriptor,mxm_wmi,nouveau
aesni_intel           360448  8
crypto_simd            16384  1 aesni_intel
cryptd                 28672  4 crypto_simd,ghash_clmulni_intel

-- /etc/initramfs-tools/modules

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

-- /etc/initramfs-tools/initramfs.conf
MODULES=most
BUSYBOX=auto
KEYMAP=n
COMPRESS=lzma
COMPRESSLEVEL=9
DEVICE=
NFSROOT=auto
RUNSIZE=10%
FSTYPE=auto

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

-- /etc/crypttab
nvme0n1p3_crypt UUID=3e44a71f-0640-43d6-9a0c-08f3508572cd none luks,discard

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

/usr/share/initramfs-tools/hooks:
cryptgnupg
cryptgnupg-sc
cryptkeyctl
cryptopensc
cryptpassdev
cryptroot
cryptroot-unlock
dmsetup
fsck
fuse
intel_microcode
keymap
klibc-utils
kmod
lvm2
ntfs_3g
plymouth
resume
thermal
udev
zz-busybox


-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.7.12-amd64 (SMP w/16 CPU threads; PREEMPT)
Kernel taint flags: TAINT_WARN
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages initramfs-tools depends on:
ii  initramfs-tools-core  0.145
ii  linux-base            4.10.1

initramfs-tools recommends no packages.

Versions of packages initramfs-tools suggests:
ii  bash-completion  1:2.14.0-1

-- no debconf information

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

[toc] | [next] | [standalone]


#84222

FromVincent Lefevre <vincent@vinc17.net>
Date2024-10-07 01:00 +0200
Message-ID<JuIoh-hpKN-1@gated-at.bofh.it>
In reply to#84220
Control: retitle -1 initramfs-tools: update-initramfs fails with "No space left on device" due to 2 temporary initrd copies in /boot

On 2024-10-07 00:39:23 +0200, Vincent Lefevre wrote:
> When updating an initrd file, update-initramfs keeps 2 temporary
> copies in /boot, though its space is typically *very* limited
> (456 MB by default). This means that one can keep a limited number
> of kernels. With the 456 MB default size and maximum compression
> (COMPRESS=lzma and COMPRESSLEVEL=9), only 3 kernels are possible.

The error:

[...]
Processing triggers for initramfs-tools (0.145) ...
update-initramfs: Generating /boot/initrd.img-6.11.0-rc2+
lzma: (stdout): Write error: No space left on device
E: mkinitramfs failure cpio 141
E: mkinitramfs failure lzma -9 1
update-initramfs: failed for /boot/initrd.img-6.11.0-rc2+ with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

[toc] | [prev] | [next] | [standalone]


#84223 — Processed: Re: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2024-10-07 01:00 +0200
SubjectProcessed: Re: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot
Message-ID<JuIoh-hpKN-3@gated-at.bofh.it>
In reply to#84220
Processing control commands:

> retitle -1 initramfs-tools: update-initramfs fails with "No space left on device" due to 2 temporary initrd copies in /boot
Bug #1084232 [initramfs-tools] initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot
Changed Bug title to 'initramfs-tools: update-initramfs fails with "No space left on device" due to 2 temporary initrd copies in /boot' from 'initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot'.

-- 
1084232: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084232
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [next] | [standalone]


#84235 — Processed: Re: Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2024-10-07 21:30 +0200
SubjectProcessed: Re: Bug#1084232: initramfs-tools: fails with "No space left on device" due to 2 temporary initrd copies in /boot
Message-ID<Jv1AB-JG-7@gated-at.bofh.it>
In reply to#84220
Processing control commands:

> tag -1 moreinfo
Bug #1084232 [initramfs-tools] initramfs-tools: update-initramfs fails with "No space left on device" due to 2 temporary initrd copies in /boot
Added tag(s) moreinfo.

-- 
1084232: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084232
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [next] | [standalone]


#84236

FromBen Hutchings <ben@decadent.org.uk>
Date2024-10-07 21:30 +0200
Message-ID<Jv1AB-JG-5@gated-at.bofh.it>
In reply to#84220

[Multipart message — attachments visible in raw view] — view raw

Control: tag -1 moreinfo

On Mon, 2024-10-07 at 00:39 +0200, Vincent Lefevre wrote:
> Package: initramfs-tools
> Version: 0.145
> Severity: normal
> 
> When updating an initrd file, update-initramfs keeps 2 temporary
> copies in /boot,

I don't believe this is the case.  A successful run of
"update-initramfs -u" will do:

1. Hard-link initrd.img-<version> to initrd.img-<version>.dpkg-bak
2. Create new initramfs as initrd.img-<version>.new
3. Move initrd.img-<version>.new to initrd.img-<version>
4. Remove initrd.img-<version>.dpkg-bak (unless backup_initramfs is
   enabled)

There is 1 temporary copy created in step 2, and after step 4 there are
0 temporary copies.

Step 1 does have a fallback to copying if hard-linking fails.  That
could happen if your /boot uses VFAT or some other un-Unix-like
filesystem, but that's not supported by Debian.  But maybe there's some
other reason it can fail?

> though its space is typically *very* limited
> (456 MB by default). This means that one can keep a limited number
> of kernels. With the 456 MB default size and maximum compression
> (COMPRESS=lzma and COMPRESSLEVEL=9), only 3 kernels are possible.
> 
> The temporary copies should be stored on the main file system,
> which is not space limited.
[...]

The initramfs must be replaced atomically, otherwise we can end up with
a previously working image being deleted or replaced with a truncated
image.  So there has to be 1 temporary copy.

Ben.

-- 
Ben Hutchings
I'm not a reverse psychological virus.
Please don't copy me into your signature.

[toc] | [prev] | [next] | [standalone]


#84240

FromVincent Lefevre <vincent@vinc17.net>
Date2024-10-08 03:50 +0200
Message-ID<Jv7wl-4DO-1@gated-at.bofh.it>
In reply to#84236
On 2024-10-07 21:23:40 +0200, Ben Hutchings wrote:
> Control: tag -1 moreinfo
> 
> On Mon, 2024-10-07 at 00:39 +0200, Vincent Lefevre wrote:
> > Package: initramfs-tools
> > Version: 0.145
> > Severity: normal
> > 
> > When updating an initrd file, update-initramfs keeps 2 temporary
> > copies in /boot,
> 
> I don't believe this is the case.  A successful run of
> "update-initramfs -u" will do:
> 
> 1. Hard-link initrd.img-<version> to initrd.img-<version>.dpkg-bak
> 2. Create new initramfs as initrd.img-<version>.new
> 3. Move initrd.img-<version>.new to initrd.img-<version>
> 4. Remove initrd.img-<version>.dpkg-bak (unless backup_initramfs is
>    enabled)
> 
> There is 1 temporary copy created in step 2, and after step 4 there are
> 0 temporary copies.
> 
> Step 1 does have a fallback to copying if hard-linking fails.  That
> could happen if your /boot uses VFAT or some other un-Unix-like
> filesystem, but that's not supported by Debian.  But maybe there's some
> other reason it can fail?

Indeed, with 3 installed kernels:

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p2  456M  295M  137M  69% /boot

So there isn't enough space for a 4th kernel + a temporary copy
(90 MB each at maximum compression + 9 MB for the vmlinuz file).

> > though its space is typically *very* limited
> > (456 MB by default). This means that one can keep a limited number
> > of kernels. With the 456 MB default size and maximum compression
> > (COMPRESS=lzma and COMPRESSLEVEL=9), only 3 kernels are possible.
> > 
> > The temporary copies should be stored on the main file system,
> > which is not space limited.
> [...]
> 
> The initramfs must be replaced atomically, otherwise we can end up with
> a previously working image being deleted or replaced with a truncated
> image.  So there has to be 1 temporary copy.

The temporary copy could be on the main file system. The goal is
anyway to keep *at least* an additional working kernel in /boot
in case the rebuild of the kernel gets broken (which cannot be
detected until booting on this kernel). So, if anything goes wrong
(either at install time or when booting on the rebuilt kernel), it
is possible to boot on the working kernel to fix things.

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

[toc] | [prev] | [next] | [standalone]


#84247

FromBen Hutchings <ben@decadent.org.uk>
Date2024-10-08 20:20 +0200
Message-ID<JvmYp-eR2-1@gated-at.bofh.it>
In reply to#84240

[Multipart message — attachments visible in raw view] — view raw

On Tue, 2024-10-08 at 03:41 +0200, Vincent Lefevre wrote:
> On 2024-10-07 21:23:40 +0200, Ben Hutchings wrote:
> > Control: tag -1 moreinfo
> > 
> > On Mon, 2024-10-07 at 00:39 +0200, Vincent Lefevre wrote:
> > > Package: initramfs-tools
> > > Version: 0.145
> > > Severity: normal
> > > 
> > > When updating an initrd file, update-initramfs keeps 2 temporary
> > > copies in /boot,
> > 
> > I don't believe this is the case.  A successful run of
> > "update-initramfs -u" will do:
> > 
> > 1. Hard-link initrd.img-<version> to initrd.img-<version>.dpkg-bak
> > 2. Create new initramfs as initrd.img-<version>.new
> > 3. Move initrd.img-<version>.new to initrd.img-<version>
> > 4. Remove initrd.img-<version>.dpkg-bak (unless backup_initramfs is
> >    enabled)
> > 
> > There is 1 temporary copy created in step 2, and after step 4 there are
> > 0 temporary copies.
> > 
> > Step 1 does have a fallback to copying if hard-linking fails.  That
> > could happen if your /boot uses VFAT or some other un-Unix-like
> > filesystem, but that's not supported by Debian.  But maybe there's some
> > other reason it can fail?
> 
> Indeed, with 3 installed kernels:
> 
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/nvme0n1p2  456M  295M  137M  69% /boot
> 
> So there isn't enough space for a 4th kernel + a temporary copy
> (90 MB each at maximum compression + 9 MB for the vmlinuz file).

OK.   But 'apt autoremove' should normally remove one of the old
kernels.

And I don't see how this answers my question about the claim of 2
temporary copies.

> 
> > > though its space is typically *very* limited
> > > (456 MB by default). This means that one can keep a limited number
> > > of kernels. With the 456 MB default size and maximum compression
> > > (COMPRESS=lzma and COMPRESSLEVEL=9), only 3 kernels are possible.
> > > 
> > > The temporary copies should be stored on the main file system,
> > > which is not space limited.
> > [...]
> > 
> > The initramfs must be replaced atomically, otherwise we can end up with
> > a previously working image being deleted or replaced with a truncated
> > image.  So there has to be 1 temporary copy.
> 
> The temporary copy could be on the main file system. The goal is
> anyway to keep *at least* an additional working kernel in /boot
> in case the rebuild of the kernel gets broken (which cannot be
> detected until booting on this kernel). So, if anything goes wrong
> (either at install time or when booting on the rebuilt kernel), it
> is possible to boot on the working kernel to fix things.

Unfortunately there is currently nothing with that global view of which
kernel and initramfs images are known good.

Also, if we delete an initramfs before rebuilding it, we should remove
that kernel/initramfs from the boot menu until it's been rebuilt, but
there's currently no mechanism to do that.

I do see a need here for a proper re-think of the way we manage kernel
and initramfs images in /boot, but this is not something that can be
done through a quick fix in initramfs-tools.

Ben.

-- 
Ben Hutchings
It is easier to write an incorrect program
than to understand a correct one.

[toc] | [prev] | [next] | [standalone]


#84248

FromVincent Lefevre <vincent@vinc17.net>
Date2024-10-09 03:00 +0200
Message-ID<Jvtdv-iyy-5@gated-at.bofh.it>
In reply to#84247
On 2024-10-08 20:12:11 +0200, Ben Hutchings wrote:
> On Tue, 2024-10-08 at 03:41 +0200, Vincent Lefevre wrote:
> > Indeed, with 3 installed kernels:
> > 
> > Filesystem      Size  Used Avail Use% Mounted on
> > /dev/nvme0n1p2  456M  295M  137M  69% /boot
> > 
> > So there isn't enough space for a 4th kernel + a temporary copy
> > (90 MB each at maximum compression + 9 MB for the vmlinuz file).
> 
> OK.   But 'apt autoremove' should normally remove one of the old
> kernels.

Only if the user reboots *immediately* to switch to the new kernel.
This may be unwanted if there is onging work.

> And I don't see how this answers my question about the claim of 2
> temporary copies.

I've said that there was actually only one temporary copy. Still,
this gives a limitation of 3 permanent kernels (with a 4th slot
temporarily for an upgrade).

Given that there are more bugs related to new kernels (screen blanking
issues, broken bluetooth), this makes things difficult.

-- 
Vincent Lefèvre <vincent@vinc17.net> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.kernel


csiph-web