Arranque el Aprovisionador Simplificado

Arranque desde el Simplified Proviioner ISO

  • Si usted está usando dispositivos físicos como una unidad CD-ROM:

    • Copie el Simplified Provisioner ISO descargado a un CD-ROM

    • Utilice el CD-ROM para arrancar el dispositivo IoT dedee él.

  • Si está usando Máquinas Virtuales, puede usar el comando virt-install para arrancar desde el Simplified Provisioner ISO.

    # virt-install --connect qemu:///system \
                   --name "fedora-iot-device" \
                   --os-variant "fedora-40" \
                   --boot uefi,loader.secure=false \
                   --vcpus 1 --memory 3072 \
                   --network network=default,model=virtio \
                   --disk pool=default,size=30 \
                   --cdrom Fedora-IoT-provisioner-40.*.iso

Arrancar Simplified Provisioner desde un Dispositivo Flash USB

  • Copie el archivo de imagen ISO al dispositivo flsh USB (Necesitará un dispositivo flash USB de al menos 8 Gb)

  • Conecte el dispositivo flsh USB al puerto del ordenador que desea arrancar.

  • Boot the device from the USB flash drive.

Boot the Simplified Provisioner from UEFI HTTP Boot

  • Copy the contents of the Simplified Provisioner ISO to a directory

    mount Fedora-IoT-provisioner-40.*.iso /mnt
    cp -r /mnt Fedora-40-IoT-Simplified-Provisioner
    cd Fedora-40-IoT-Simplified-Provisioner
  • Modify the grub.cfg file in EFI/BOOT directory and replace all the instances of linux and initrd with linuxefi and initrdefi respectively.

    sed -i -e 's|linux /|linuxefi /|' \
           -e 's|initrd /|initrdefi /|' \
           EFI/BOOT/grub.cfg
  • Use an HTTP Server to serve the contents over the network, e.g.:

    python3 -m http.server 9080
    firewall-cmd --add-port=9080/tcp
  • The correct URL to perform UEFI HTTPBoot depends on the ISO architecture (x86_64 or aarch64)

Booting Physical Servers

  • If using a physical server please check the manual or Management UI interface to see if the system supports UEFI HTTPBoot and follow the steps in the manual to boot it manually or in an automated way from the boot URL (see above)

Booting Virtual Machines

  • Use the virt-install command (or any other tool that supports booting UEFI VMs) to boot a VM. E.g.:

    virt-install --connect qemu:///system \
                 --name "fedora-iot-device" \
                 --os-variant "fedora-40" \
                 --boot uefi,loader.secure=false \
                 --vcpus 1 --memory 3072  \
                 --network network=default,model=virtio \
                 --disk pool=default,size=30 \
                 --import
  • Press "[Esc]" key repeately to enter the UEFI management interface

  • Select "Device Manager" and press "[Enter]"

  • Select "Network Device List" and press "[Enter]"

  • Select the MAC address corresponding to the interface you wan to use to perform UEFI HTTPBoot and press "[Enter]"

  • Select "HTTP Boot Configuration" and press "[Enter]"

  • Select "Boot URI" and press "[Enter]"

  • Enter the HTTPBoot URL (see above) (e.g.: http://192.168.122.1:9080/EFI/BOOT/BOOTX86.efi) and press "[Enter]"

  • Press "[F10]" key to save the changes and then press "[Y]" to confirm the action

  • Press "[Esc]" four times until you return to the main screen

  • Select "Boot Manager"

  • Select "UEFI HTTP" and press "[Enter]"

  • The VM should perform the UEFI HTTPBoot.

It’s also possible to perform the same steps in an automated way by modifying the UEFI vars after creating the virtual machine. For that we will need to install the qemu-img and python3-virt-firmware packages:

dnf install -y python3-virt-firmware qemu-img
  • Create an unitialized and stopped virtual machine (make sure it supports UEFI), e.g.:

    virt-install --connect qemu:///system \
                 --name "fedora-iot-device" \
                 --os-variant "fedora-40" \
                 --boot uefi,loader.secure=false \
                 --vcpus 1 --memory 3072  \
                 --network network=default,model=virtio \
                 --disk pool=default,size=30 \
                 --import --noautoconsole --noreboot
  • Connect the QCOW2 containing the VM’s UEFI variables to an NBD disk so we can modify them inplace:

    modprobe nbd
    qemu-nbd --connect /dev/nbd0 /var/lib/libvirt/qemu/nvram/fedora-iot-device_VARS.qcow2
  • Use the virt-fw-vars tool to modify the UEFI variables and configure the VM to boot from the HTTP URL, e.g.:

    virt-fw-vars --input /dev/nbd0 --set-boot-uri http://192.168.122.1:9080/EFI/BOOT/BOOTX64.EFI
  • Disconnect the NBD device:

    qemu-nbd --disconnect /dev/nbd0
  • Start the VM:

    virsh --connect qemu:///system \
          start fedora-iot-device
  • The VM should perform an UEFI HTTPBoot from the configured URL