Remote touchless install with a static IP?

Holland, Jake jholland at
Fri Oct 2 01:20:13 CEST 2020

Hi Thomas,

Thanks for responding!

On 10/1/20, 7:13 AM, "Thomas Lange" <lange at> wrote:
> you can build a FAI CD (or USB stick) which does not need any internet
> connection. Have you already tried the FAIme service at

Yes, I got an image from there (nice feature to let me include an
ssh key, btw) and picked the "reboot computer after installation"

I tried that iso as the CD on a local vm as a sort of "getting started"
step, but it seemed to go into an infinite loop of installing.  I tried
ejecting the CD, but it didn't end with a system I could boot, so I'm
not sure what I was doing wrong.

But I figured I'd go ahead and try to see if I could launch that from
local hard drive instead of as a CD.

> Have a look at the dracut.cmdline manual

Thanks for that reference, very helpful.

After a few tries, this menuentry gets me to where in my vm it looks like
it's trying to do something with the .iso I've put into the hard drive:

menuentry "jake fai"  --class gnu-linux --id jake-fai4 {
    loopback loop (hd1,gpt2)/faime-PR5UDQU6.iso
    search --set=root --file /FAI-CD
    linux   /boot/vmlinuz FAI_FLAGS="menu,verbose,createvt" FAI_ACTION=install FAI_CONFIG_SRC=file:///var/lib/fai/config rd.debug root=live:CDLABEL=FAI_CD ip= ip= quiet
    initrd  /boot/initrd.img

But then it fails with:
dracut Warning: /dev/disk/by-label/FAI_CD does not exist
dracut Warning: /dev/root does not exist

That comes after a minute or 2 of polling with this looking like the
problem check:
//lib/dracut/hooks/initqueue/finished/ at 1(source): '[' -e /dev/disk/by-label/FAI_CD ']

As a guess after looking through options, I tried adding this:

But no joy.  I tried a few variations, but I feel like it's stabbing
in the dark a bit.  This seems really close to what I'm aiming for, but
I don't quite follow how to express what I have.

Once I'm in the dracut shell after hitting that error, I can do:

mkdir mnt
mkdir mnt/disk
mkdir mnt/iso
mount -t ext4 /dev/sdb2 /mnt/disk
mount /mnt/disk/ /mnt/iso

And then I have /mnt/iso/FAI-XD and /mnt/iso/LiveOS/squashfs.img and

So I feel like this is on the right track if I could find out the way
to pass in the right context.

Thanks for your help on this, and if you have a pointer to the right
way to express this root location, I'd be very grateful.

Best regards,

I could perhaps use the root=live:
is that supposed to be the squashfs.img inside the iso's LiveOS/, or
is it supposed to be the ext3.img inside the squashfs.img's LiveOS/?  But
it seems a bit silly when the live iso is already on the local disk...

In case it's helpful, I put the .iso into /dev/sdb2 with these
commands (with the partition table pulled from sfdisk -d on /dev/sda
and then tweaked by removing uuids.)

cat > <<EOF
label: gpt
device: /dev/sdb
unit: sectors
first-lba: 34
last-lba: 20971486

/dev/sdb1 : start=        2048, size=        2048, type=21686148-6449-6E6F-744E-656564454649
/dev/sdb2 : start=        4096, size=     2097152, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
/dev/sdb3 : start=     2101248, size=    18868224, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4
sudo sfdisk /dev/sdb <
sudo mke2fs -t ext4 /dev/sdb2
sudo mount -t ext4 /dev/sdb2 /mnt
sudo cp faime-PR5UDQU6.iso /mnt
sudo umount /mnt

(Then it's just append my menuentry text to /etc/grub.d/40_custom,
GRUB_DEFAULT=jake-fai4 in /etc/default/grub, and update-grub.)

More information about the linux-fai mailing list