10
submitted 13 hours ago by [email protected] to c/[email protected]

cross-posted from: https://lemmy.world/post/31710629

I'm trying to boot some VMs using a script w/ a kickstart file. I'm using the following script that I found online and modified:

#!/usr/bin/env bash
#set -x
## Define variables
MEM_SIZE="8192"      # Memory setting in MiB
VCPUS="2"             # CPU Cores count
#OS_VARIANT="rocky9"   # List with osinfo-query  os
OS_VARIANT="rhel7.9"   # List with osinfo-query  os
ISO_FILE="~/Documents/software/os/RHEL-7.9-20200917.0-Server-x86_64-dvd1.iso" # Path to ISO file

case $OS_VARIANT in
        rhel7.9)
                KS=ks7.cfg;;
        rocky9)
                KS=ks9.cfg;;
esac

echo -en "Enter vm name: "
read VM_NAME
OS_TYPE="linux"
echo -en "Enter virtual disk size : "
read DISK_SIZE

DISK=~/.local/share/libvirt/images/${VM_NAME}.qcow2

echo "Creating disk"
sudo virt-install \
     --name ${VM_NAME} \
     --memory=${MEM_SIZE} \
     --vcpus=${VCPUS} \
     --location ${ISO_FILE} \
     --network network=default \
     --disk path=${DISK},size=${DISK_SIZE} \
     --graphics=none \
     --os-variant=${OS_VARIANT} \
     --console pty,target_type=serial \
     --initrd-inject ~/virt/${KS} --extra-args "inst.ks=file:/${KS} console=tty0 console=ttyS0,115200n8"

I've obfuscated the directory paths, but they're all full paths and the script will build a VM. So basically just setting up a basic system, using the default network. Here's the config for that:

<network connections='3'>
  <name>default</name>
  <uuid>61afc7f1-9c5e-4cra-8d18-e3cf4f9358e9</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:7c:32:9b'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

Looking at the XML for the VM, I see the following for the network:

<interface type='network'>
      <mac address='52:54:00:07:82:78'/>
      <source network='default' portid='800dfd67-d90a-42te-a0b7-c4c78cdae481' bridge='virbr0'/>
      <target dev='vnet7'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

When this VM is installing, and when it's booted, it does not have an IP. Meanwhile, if I go through virt-manager and select the default network, it gets an IP just fine. I've tried running the virt-install command w/ and w/o sudo (I run virt-manager as me - I'm in the libvirt group). Looking at the virt-manager built VM:

    <interface type='network'>
      <mac address='52:54:00:5e:f5:05'/>
      <source network='default' portid='d57dbc56-759e-40f9-856f-9623f4801a93' bridge='virbr0'/>
      <target dev='vnet8'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

Looking at virbr0:

$ ip link show master virbr0
11: vnet7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether fe:54:00:07:82:78 brd ff:ff:ff:ff:ff:ff
12: vnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether fe:54:00:5e:f5:05 brd ff:ff:ff:ff:ff:ff

Only difference I can see is one is created using virt-manager and the other using virt-install (which calls to virt-install, no?). I thought there was a way to see the actual virt-install command virt-manager was about to use when creating a VM, but I can't find it. Also can't find any logs to give me an idea why the VM isn't getting an IP. Running ethtool on the VM interface shows a link. I've wasted too much time getting this to work, and all the documentation suggests it should "just work!"

no comments (yet)
sorted by: hot top new old
there doesn't seem to be anything here
this post was submitted on 20 Jun 2025
10 points (100.0% liked)

Linux

11319 readers
77 users here now

Welcome to c/linux!

Welcome to our thriving Linux community! Whether you're a seasoned Linux enthusiast or just starting your journey, we're excited to have you here. Explore, learn, and collaborate with like-minded individuals who share a passion for open-source software and the endless possibilities it offers. Together, let's dive into the world of Linux and embrace the power of freedom, customization, and innovation. Enjoy your stay and feel free to join the vibrant discussions that await you!

Rules:

  1. Stay on topic: Posts and discussions should be related to Linux, open source software, and related technologies.

  2. Be respectful: Treat fellow community members with respect and courtesy.

  3. Quality over quantity: Share informative and thought-provoking content.

  4. No spam or self-promotion: Avoid excessive self-promotion or spamming.

  5. No NSFW adult content

  6. Follow general lemmy guidelines.

founded 2 years ago
MODERATORS