Package: initramfs-tools Version: 0.133+deb10u1 Severity: normal X-Debbugs-CC: rossboy...@stanfordalumni.org
Dear Maintainer, * What led up to the situation? PXE booting a system with NFS root using isc-dhcp-server and tftpd-hpa, most of the options passed by the dhcp server to the client do not take effect. In particular the domain name and ntp-server arguments do not affect the final system. * What exactly did you do (or not do) that was effective (or ineffective)? Traced through the init scripts and recorded network traffic to better understand the problem. This didn't suggest any ready cures. Manually created /etc/resolv.conf with some of the values dhcp was trying to set. However, hostname --fqdn produces only the unqualified hostname. * What outcome did you expect instead? I expected that the system that finally came up would reflect the options dhcp communicated to it. Analysis: when PXE booting the DHCP server is called twice, first from the system or network card firmware (I assume) to get the initial PXE image pxelinux.0, and second from within the initrd environment. The second invocation is from klibc's ipconfig. 1) It is unclear to me if ipconfig understands the full range of possible dhcp options. Only a few are mentioned as possibilities on the command line in the long form of the interface option as addr:server:gateway:netmask:interface:proto, and only a few are written to the file mentioned next. 2) The initrd process does result in some info from dhcp being written to /run/net-<dev>.conf, which is accessible from the final client system (i.e., after the pivot). That does include the domain name (DNSDOMAIN) and search list (DNSSEARCH), but nothing about ntp servers (which are specified in dhcpd.conf in my setup). As far as I can tell, the domain and search list are not actually used in the final client system. It may be that processing the information correctly from /run/net-<dev>.conf requires changes in the basic system initialization scripts, rather than, or as well as, changes to this package. Apparently, the final client system does not start dhclient or call dhcp. I think this means that if the client is given a temporary lease it will not defend it. I have avoided that issue by using a permanent fixed IP. I do not know if an nfs root system could survive a change in its own IP address. So there may be good reasons not to have the final system start a dhcp client (aside from the obvious point that it already has an interface up with an IP assigned), but this means that using such a client to get parameters that have been missed in the initrd is not an option. I prepared this bug report inside a chroot for the system that I netboot. So this should be the environment in which new initrd's are generated. I copy those initrds manually so they are available during the PXE boot. I reviewed the changelog for the current sid version, 0.139, and did not see any changes that bore on this behavior. Stepping back, there is a basic tension between the usual way the network comes up and the way it does with an nfs root system. Usually, the final system is already active when the network interfaces come up, and lots of the startup logic can be hung off the event of the interface coming up. With nfs root, the network comes up in the initrd. This is a problem because that limited environment does not have access to the regular tools like dhcp clients and the whole systemd startup machinery. And it is a problem because, since the full system doesn't bring the interface up, all the hooks that are tied to the interface coming up never fire. -- Package-specific info: -- initramfs sizes -rw-r--r-- 1 root root 36M Sep 27 13:54 /boot/initrd.img-4.19.0-11-amd64 -rw-r--r-- 1 root root 36M Oct 19 13:46 /boot/initrd.img-4.19.0-12-amd64 -- /proc/cmdline -- /proc/filesystems -- lsmod -- /etc/initramfs-tools/modules -- /etc/initramfs-tools/initramfs.conf MODULES=most BUSYBOX=auto KEYMAP=n COMPRESS=gzip DEVICE= NFSROOT=auto RUNSIZE=10% -- /etc/initramfs-tools/update-initramfs.conf update_initramfs=yes backup_initramfs=no -- mkinitramfs hooks /etc/initramfs-tools/hooks/: /usr/share/initramfs-tools/hooks: btrfs dmsetup fsck fuse keymap klibc-utils kmod mdadm ntfs_3g plymouth resume thermal udev zz-busybox -- System Information: Debian Release: 10.6 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-12-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8) Shell: /bin/sh linked to /usr/bin/dash Init: unable to detect Versions of packages initramfs-tools depends on: ii initramfs-tools-core 0.133+deb10u1 ii linux-base 4.6 initramfs-tools recommends no packages. Versions of packages initramfs-tools suggests: pn bash-completion <none> -- no debconf information