Azure Linux version
Azure Linux 4.0
Deployment / platform
KVM VM (PXE network boot)
Is your feature request related to a problem? Please describe.
I'm deploying Azure Linux 4 VMs via PXE using the live installer ISO. The only option to fetch the squashfs over the network is HTTP (root=live:http://...), which downloads the entire ~831 MB image into RAM. This means VMs need 4 GB RAM just for installation.
I tried using NFS (root=live:nfs://server:/path/squashfs.img) which would mount the squashfs directly without loading it all into RAM, but it doesn't work. The initrd has the NFS kernel module (nfs.ko.xz) but is missing the dracut NFS userspace scripts (nfs-lib.sh, nfs_to_var).
Looking at the dracut arguments used to build the initrd:
--add ' dmsquash-live livenet pollcdrom ' --omit ' multipath '
The nfs module is not included. In url-lib.sh, the NFS handler is conditionally registered only if nfs_to_var exists — which it doesn't.
Describe the solution you'd like
Add nfs to the dracut --add list when building the live installer initrd. This would enable NFS-based squashfs mounting for PXE deployments and cut the RAM requirement in half.
Describe alternatives you've considered
Currently working around it by using HTTP and allocating 4 GB RAM to the build VM. It works but wastes resources for what's a temporary installation VM.
Additional context
The livenet module and curl are already included for HTTP support. Adding NFS alongside would make the live installer more flexible for network-based deployments without adding much size to the initrd.
Azure Linux version
Azure Linux 4.0
Deployment / platform
KVM VM (PXE network boot)
Is your feature request related to a problem? Please describe.
I'm deploying Azure Linux 4 VMs via PXE using the live installer ISO. The only option to fetch the squashfs over the network is HTTP (root=live:http://...), which downloads the entire ~831 MB image into RAM. This means VMs need 4 GB RAM just for installation.
I tried using NFS (root=live:nfs://server:/path/squashfs.img) which would mount the squashfs directly without loading it all into RAM, but it doesn't work. The initrd has the NFS kernel module (nfs.ko.xz) but is missing the dracut NFS userspace scripts (nfs-lib.sh, nfs_to_var).
Looking at the dracut arguments used to build the initrd:
--add ' dmsquash-live livenet pollcdrom ' --omit ' multipath 'The nfs module is not included. In url-lib.sh, the NFS handler is conditionally registered only if nfs_to_var exists — which it doesn't.
Describe the solution you'd like
Add nfs to the dracut --add list when building the live installer initrd. This would enable NFS-based squashfs mounting for PXE deployments and cut the RAM requirement in half.
Describe alternatives you've considered
Currently working around it by using HTTP and allocating 4 GB RAM to the build VM. It works but wastes resources for what's a temporary installation VM.
Additional context
The livenet module and curl are already included for HTTP support. Adding NFS alongside would make the live installer more flexible for network-based deployments without adding much size to the initrd.