From Fedora Project Wiki
Description
This is to verify that it is possible to boot Anaconda and install the system by direct kernel+initrd boot. That can be achieved either by using PXE boot or by booting the kernel directly in a virtual machine.
Setup
- You will need
vmlinuz
andinitrd.img
files. Those are located in the(arch)/os/images/pxeboot
directory of the tree for the Fedora compose you wish to test. - You will need a remote location containing Anaconda's
LiveOS/
directory (containing the installer) and optionally also a package repository. Development composes are usually available at dl.fedoraproject.org/pub/alt/stage/ (doesn't contain package repository). If you have a local mirror, you can make it accessible over any protocol supported by inst.repo boot option. - Option 1: Set up a PXE server.
- This is not an easy task and requires some administrator knowledge. You can read the appropriate section in the Installation guide for Fedora 40.
- The custom pxelinux config file can look like this:
default vesamenu.c32 prompt 1 timeout 600 label linux menu label ^Install Fedora menu default kernel fedora/vmlinuz append initrd=fedora/initrd.img inst.repo=https://dl.fedoraproject.org/pub/alt/stage/41_Beta-1.1/Server/x86_64/os/
- Option 2: Boot kernel directly in a virtual machine.
- Prepare a virtual machine that can boot kernel+initrd pair directly, e.g. using
virt-manager
(virt-manager has a Direct kernel boot field where you can specify the kernel, initrd and any boot options).
- Prepare a virtual machine that can boot kernel+initrd pair directly, e.g. using
How to test
- Boot the system via PXE, or using a virtual machine with appropriate inst.repo boot argument (it has to point to the same compose you used for retrieving
vmlinuz
andinitrd.img
). - Proceed with installation.
Expected Results
- The system boots (using PXE or direct kernel boot in a virtual machine) and it downloads anaconda installer from the specified remote location.
- The installer starts correctly.
- If the remote location contains a DNF repository, that repository is used for installation. This can be checked by examining the
/tmp/packaging.log
file. Example output:09:35:25,625 INF packaging: added repo: 'anaconda' - https://dl.fedoraproject.org/pub/alt/stage/31_Beta-1.1/Server/x86_64/os 09:35:25,647 DBG dnf: repo: downloading from remote: anaconda 09:35:27,161 INF packaging: enabled repo: '' - ['https://dl.fedoraproject.org/pub/alt/stage/31_Beta-1.1/Server/x86_64/os'] and got repomd 09:35:27,163 DBG dnf: repo: using cache for: anaconda 09:35:27,163 DBG packaging: repo anaconda: _sync_metadata success from ['https://dl.fedoraproject.org/pub/alt/stage/31_Beta-1.1/Server/x86_64/os'] 09:35:27,165 DBG dnf: repo: using cache for: anaconda 05:35:50,985 DBG dnf: anaconda: using metadata from Tue 20 Aug 2019 02:34:29 AM EDT.
- The installation completes and the new system initiates boot properly