• Has anyone gotten a subset of this: https://askubuntu.com/questions/1235723/automated-20-04-server-installation-using-pxe-and-live-server-image working with FOG yet? I’m currently only trying to tackle making it liveboot. I haven’t tested an autoinstall yet, since that is new to me with 20.04, I’m used to preseeds.

    I get as far as an initramfs shell telling me “Unable to find a live file system on the network”

    my initial parameters:
    kernel tftp:///${fog-ip}/os/ubuntu/20.04/casper/vmlinuz
    initrd tftp:///${fog-ip}/os/ubuntu/20.04/casper/initrd
    imgargs vmlinuz initrd=initrd ip=dhcp root=/dev/nfs boot=casper netboot=nfs nfsroot=/${fog-ip}:/images/os/ubuntu/20.04/ locale=en_US.UTF-8 quiet splash ip=dhcp rw
    boot || goto MENU

    any help is greatly appreciated!

    I updated my paramaters to closely match what was listed in the above link and got it to work to boot to a live disk.

    kernel tftp://${fog-ip}/os/ubuntu/20.04/casper/vmlinuz
    initrd tftp://${fog-ip}/os/ubuntu/20.04/casper/initrd
    imgargs vmlinuz initrd=initrd ip=dhcp url=http://${fog-ip}/os/20.04/ubuntu-20.04-live-server-amd64.iso locale=en_US.UTF-8 quiet splash ip=dhcp rw
    boot || goto MENU

  • @pacman366 This is great, thank you! I had some other projects to work on, so I hadn’t touched this in a while. Where did you get your vmlinuz and initrd files from? Did you extract from the iso?

  • @londonfog I’ve also gotten autoinstall to work with the following imgargs

    imgargs vmlinuz initrd=initrd root=/dev/ram0 ramdisk_size=1800000 ip=dhcp url= net.ifnames=0 autoinstall ds=nocloud-net;s= ro
 is my fog servers ip address, emphasis on this string

    autoinstall ds=nocloud-net;s=

    That part of the sting tells subiquity were to find the user-data and the meta-data files. has the yaml containing all the autoinstall parameters, is just a blank file. Both files need to exist in order for subiquity to perform an autoinstall. subiquity is also extremely strict about the formatting of the yaml within the user-data file. I found this out when attempting to copy/paste another user-data example from the internet only to crash the live installer. I had to hand write all the parameters in user-data in order for it all to work. this is what my user-data file looks like.

        - storage
        geoip: true
        preserve_sources_list: false
        - arches: [amd64, i386]
          uri: http://us.archive.ubuntu.com/ubuntu
        - arches: [default]
          uri: http://ports.ubuntu.com/ubuntu-ports
      identity: {hostname: 69changeme69, password:  PASSWORD HASH,
        realname: companyadmin, username: companyadmin}
      keyboard: {layout: us, toggle: null, variant: ''}
      locale: C
          eth0: {dhcp4: true, dhcp-identifier: mac}
        version: 2
        allow-pw: true
        authorized-keys: []
        install-server: true
        - ubuntu-desktop
        - landscape-client
        - openjdk-8-jdk
        - libpwquality-tools
        - wpasupplicant
        - python
        - python-dbus
        - python-argparse
        - | cat <<EOT >> /target/lib/systemd/system/postinstall.service
        - systemctl daemon-reload
        - wget -P /target/opt/
        - chmod +x /target/opt/postinstall.sh
        - echo 'companyadmin ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/companyadmin
      version: 1

    This installs mostly automatic. I have mine set to prompt for partitioning. Hope this helps

  • Moderator

    @pacman366 said in 20.04 autoinstall:


    I haven’t had a chance to work on this yet. But I did help someone get a HP server update iso to pxe boot. It was a problem but we got it to work via pxe to nfs. The point is that url= reminded me of that experience. In that case we had to provide the uri in a format similar to this url=nfs://${fog-ip}/images/os/ubuntu/20.04/ it kind of replaced the url=http:// protocol with the nfs uri url=nfs:// I don’t know if that is what ubuntu did here or not.

  • @pacman366 this is pretty similar to how I’ve gotten it to “work” Have you tried setting up the autoinstall method? I just started to attempt this today, and no luck so far.

  • I wasn’t able to get 20.04 to pxe boot using the traditional nfs methods outlined in these forums. I did get it booting with the new 20.04 approach. I copied ubuntu-20.04-live-server-amd64.iso to /var/www, mounted the iso, copied the kernel and initrd from the iso to /tftpboot/os/ubuntu/Server20.04/ and create the following menu entry using these parameters

    kernel tftp://${fog-ip}/os/ubuntu/Server20.04/vmlinuz
    initrd tftp://${fog-ip}/os/ubuntu/Server20.04/initrd
    imgargs vmlinuz initrd=initrd root=/dev/ram0 ramdisk_size=1800000 ip=dhcp url= ro

    One note when using this method, it only works on systems with >= 4G ram because it loads the whole iso into ram. Otherwise it works pretty well for me. Desktop and Mint variants of 20.04 also boot using this method.

  • @george1421 said in 20.04 autoinstall:


    I wonder if it will be different though, maybe not initially, but soon. See below:

    http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/ points to a legacy version. And if you click it, you go here: http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/ to which it mentions this will no longer be supported in the future and mentions the new version stating: now supports all Server hardware platforms, unattended autoinstall, offline installation, network-gapped install, PXE and HTTP boot, RAID, LVM, LUKS, among other things.

  • Moderator

    @londonfog I haven’t tried 20.04 yet, but here is the solution for 19.10. I don’t expect 20.04 to be to much different.


    The NFS route is what you want. Also be aware that you need the netboot version of the kernel and initrd and not the ones off the iso image.