Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-101901

Dracut produces non-reproducible initrd due to hardlink deduplication

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • rhel-9.7
    • rhel-9.6
    • dracut
    • None
    • dracut-057-101.git20250808.el9
    • No
    • Moderate
    • rhel-bootloader
    • 26
    • 2
    • Dev ack
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • None

      By default, dracut operates with both --hardlink and --reproducible enabled. However, the former can break the latter and cause non-reproducible builds.

      Specifically, some dracut modules, e.g. 95iscsi from dracut-network, generate multiple identical files dynamically. These files have very slightly different mtimes, and hardlink deduplicates based on mtime match amongst other things. Therefore, whether or not they get deduplicated depends on whether their mtimes cross a second boundary, since hardlink only has one-second granularity. This results in non-reproducible output - sometimes they get deduplicated, sometimes they don't.

      I have raised an upstream PR with a proposed fix: https://github.com/dracut-ng/dracut-ng/pull/1429

              pvalena@redhat.com Pavel Valena
              chris-riches-redhat Chris Riches (Inactive)
              Nutanix Confidential Group
              bootloader -eng-team bootloader -eng-team
              Frantisek Sumsal Frantisek Sumsal
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated: