Fedora Server remote interactive installation guide

Peter Boy, Kevin Fenzi, Jan Kuparinen, Jiri Konecny Version F44 Last review: 2026-04-28
This method is best suited to servers with limited or no direct console access, but which still have the option of connecting and booting from a USB flash drive. It boots from the prepared installation media into Anaconda and starts a Remote Desktop Protocol (RDP) server instead of a local physical console. The system administrator then connects using an RDP client and runs the Anaconda graphical installer.
Updated, not yet fully reviewed

1. Prerequisites

Proper install media available

You need one of the installation media variants ready to use as described in Server Installation

RDP client

Performing an RDP installation requires an RDP client running on your workstation or another terminal computer. RDP clients are available in the repositories of most Linux distributions; free RDP clients are also available for other operating systems, such as Windows. On Linux systems, use your package manager to search for a RDP for your distribution.

The following RDP clients are available in Fedora:

  • GNOME Connections – a remote desktop client for the GNOME desktop environment.

  • freerdp – Free implementation of the Remote Desktop Protocol (RDP)

Use your desktop software installation program to install any of the clients listed above.

For MacOS you may use one of the following options:

  • Windows App – provided by Microsoft for free via App Store

  • Jump Desktop – commercial application via App Store

  • freerdp – Free implementation of the Remote Desktop Protocol installable via homebrew or macport

2. Booting the server

There are several options to boot the server, depending on the ethernet connection method and availability of at least some, maybe cumbersome and short living local console access.

2.1. Console access available

  1. Boot the server to be installed and wait for the boot menu to appear.

    Boot Menu

  2. In the menu, select the kernel you want to boot and type e to get access to the boot options and append

    inst.rdp inst.rdp.username=USER inst.rdp.password=PASSWORD

    to the end of the command line. Optionally, it is possible to set a password (inst.rdp.password) and/or username (inst.rdp.username). Replace PASSWORD and USER with the password and username of your choice. Password must be at least 6 characters long. If password and/or username is not set the Anaconda installer will ask interactively.

    For security considerations, use a temporary password for the inst.rdp.password= option. It should not be a real or root password you use on any system.

    The above configuration requires an active DHCP server. With none available, you must provide a static interface configuration as well.

    ip=ip::gateway:netmask:hostname:interface:none  inst.rdp inst.rdp.password=PASSWORD inst.rdp.username=USER
  3. Leave the editing mode by <ctrl>-x or F10 to continue to boot and to start the installation using the selected kernel and the edited options. You get the message

      Booting a command list

    The system will initialize the installation program and start the necessary services. It takes some time. And after a lot of boot messages, when the system is ready, you get:

      Starting installer, one moment
      ...
      hh:mm:ss Starting GNOME remote desktop in RDP mode...
      hh:mm:ss GNOME remote desktop RDP: SSL certificates generated & set
      hh:mm:ss GNOME remote desktop RDP: user name and password set
      hh:mm:ss Starting GNOME remote desktop.
      hh:mm:ss GNOME remote desktop is now running.
      hh:mm:ss GNOME remote desktop RDP IP: 192.168.122.247
      hh:mm:ss GNOME remote desktop RDP host name: fedora

    Continue with 3.2. Connecting to the server.

2.2. No Console access available – provide a kickstart medium

You will need two usable USB ports or DVD drives on the server, one for the installation medium, one for a kickstart flash drive.

  1. On your desktop, connect an USB stick and format as FAT and with label OEMDRV. In Fedora use the graphical tool of the desktop UI or a terminal window.

    List the connected devices and identify the USB stick

    […]$ lsblk
    NAME            MAJ:MIN RM    SIZE RO TYPE MOUNTPOINTS
    sda             8:0    0  596.2G  0 disk
     ├─sda1         8:1    0    600M  0 part /boot/efi
     ├─sda2         8:2    0      1G  0 part /boot
     ├─sda3         8:3    0     80G  0 part
     │ ├─fedora_fedora-root    253:0    0     15G  0 lvm  /
     │ └─fedora_fedora-var_log 253:2    0      5G  0 lvm  /var/log
     └─sda4         8:4    0  514.6G  0 part             ├─fedora_user-libvirt   253:3    0    120G  0 lvm  /var/lib/libvirt
        └─fedora_user-machines  253:4    0     80G  0 lvm  /var/lib/machines
    sdb             8:16   1 1001.5M  0 disk
     └─sdb1         8:17   1 1001.5M  0 part
    zram0           252:0    0      8G  0 disk [SWAP]

    In the example above, the USB stick is sdb. Just in case it is mounted, unmount and then format and mount it at e.g. /mnt

    […]$ sudo umount /dev/sdb1
    […]$ sudo mkfs.vfat  -n 'OEMDRV' /dev/sdb1
    […]$ sudo mount /dev/sdb1  /mnt
  2. Create and edit a kickstart file ks.cfg in the root directory of the USB flash drive.

    If possible, you should provide a static network configuration, so you’ll know the IP address. If that isn’t possible and DHCP is available, you can omit the “network” line. Anaconda will then use DHCP and display the address it receives.

    […]$ sudo vim /mnt/ks.cfg
    <INSERT>
    network --bootproto=static --ip=ww.xx.yy.zz --netmask=255.255.255.0 --gateway=ww.xx.yy.gg  --ipv6='aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh/nnn' --hostname='myhost.mydomain.tld'  --nameserver=10.0.2.1
    rdp --user='SOME_NAME' --password=PASSWORD
    <SAVE&QUIT>

    If the network configuration does not allow or enable static interface configuration, omit the 'network …' line either completely or just add the --hostname parameter. It uses DHCP by default. And if your DHCP server provides dynamic DNS as well, you can easy access your server to be installed.

  3. On your server, connect the installation medium as well as the OEMDRV medium and boot. The server will use the OEMDRV stick, configure the interface and start VNC. Just in case you have at least a monitor without keyboard and mouse, you will see the corresponding message. Otherwise, trust your configuration.

With Fedora 44 you get some Python error messages you can ignore. It works anyway.

Continue with 3.2. Connecting to the server.

2.3. No console access available – patch installation medium

If none of the above options work with your server and network configuration, you could patch the installation media as a last resort. As an example, you can change the grub boot lines in /isolinux/grub.conf. You would need to add the RDP parameter and remove the integrity test, as this is the default line but would fail after patching.

We won’t go into this matter any further here. This is really the very last resort and is not recommended.

3. Connecting to the server

  1. In case of a server without a console attached determine the IP address.

    1. If possible, check the DHCP server for the IP of the server.

    2. Scan the network subnet the server is connected to for open port 3389. Adjust the network IP address accordingly!

      […]# dnf install nmap
      […]# nmap -Pn -p3389 192.168.158.0/24
      Starting Nmap 7.80 ( https://nmap.org ) at 2021-05-23 08:18 CEST
      Nmap scan report for example.com (192.168.158.1)
      Host is up (0.00052s latency).
      
      PORT     STATE  SERVICE
      3389/tcp closed nn-admin
      MAC Address: 34:81:C4:14:21:B4 (AVM GmbH)
      
      Nmap scan report for iMac.fritz.box (192.168.158.111)
      Host is up (0.00051s latency).
      ...
      ...
      PORT     STATE SERVICE
      3389/tcp open
      MAC Address: B8:27:EB:5A:EC:84
      
      Nmap scan report for 192.168.158.200
      Host is up (0.00068s latency).
      ...
      ...
      Nmap done: 256 IP addresses (12 hosts up) scanned in 2.38 seconds

      Look for an entry with open state of port 3389 and no hostname or unknown hostname. Among them you will probably find the device you are looking for. In the example above it is 192.168.158.200.

  2. On the desktop start the RDP client, add new connection with a plus symbol, enter the IP address obtained in the previous step. You will be asked to confirm certificates. These are generated by Anaconda and they are different for each installation.

    Alternatively, use freerdp client with

      xfreerdp /v:192.168.158.200 /u:USER /p:PASSWORD
  3. When the connection is successfully established, a new window will open on the system running the RDP client, displaying the installation menu. You will be presented with the familiar language selection menu.

    The language selection installation window

    interactive remote 015

    This window will provide full remote access to the installer until the installation finishes and the system reboots for the first time.

    If the screen freezes after some mouse or keyboard actions, add the kernel option nomodeset before the term inst.rdp to the kernel commad line in step 3.1.1.