Fix UEFI snapshot support and ensure sudo privileges
This commit is contained in:
@@ -190,6 +190,13 @@ UUID={efi_uuid} /boot vfat defaults 0 2
|
||||
p = subprocess.Popen(["chroot", mount_root, "chpasswd"], stdin=subprocess.PIPE, text=True)
|
||||
p.communicate(input=f"{user_info['username']}:{user_info['password']}")
|
||||
|
||||
# Ensure wheel group has sudo privileges
|
||||
sudoers_dir = os.path.join(mount_root, "etc/sudoers.d")
|
||||
os.makedirs(sudoers_dir, exist_ok=True)
|
||||
with open(os.path.join(sudoers_dir, "wheel"), "w") as f:
|
||||
f.write("%wheel ALL=(ALL) ALL\n")
|
||||
os.chmod(os.path.join(sudoers_dir, "wheel"), 0o440)
|
||||
|
||||
# Set hostname
|
||||
with open(os.path.join(mount_root, "etc/hostname"), "w") as f:
|
||||
f.write(user_info["hostname"] + "\n")
|
||||
|
||||
@@ -5,14 +5,17 @@ ISO_PATH="${1:-/home/n0va/Downloads/Fedora-Workstation-Live-43-1.6.x86_64.iso}"
|
||||
DISK_PATH="${2:-/home/n0va/.local/share/iridium-installer-vm/test-disk.qcow2}"
|
||||
OVMF_CODE="/usr/share/edk2/x64/OVMF_CODE.4m.fd"
|
||||
OVMF_VARS_TEMPLATE="/usr/share/edk2/x64/OVMF_VARS.4m.fd"
|
||||
OVMF_VARS_LOCAL="/tmp/iridium_vm_vars.fd"
|
||||
OVMF_VARS_LOCAL="/tmp/iridium_vm_vars.qcow2"
|
||||
|
||||
# Ensure OVMF vars exist
|
||||
# Ensure OVMF vars exist in qcow2 format for snapshot support
|
||||
if [ ! -f "$OVMF_VARS_LOCAL" ]; then
|
||||
if [ -f "$OVMF_VARS_TEMPLATE" ]; then
|
||||
cp "$OVMF_VARS_TEMPLATE" "$OVMF_VARS_LOCAL"
|
||||
echo "Creating UEFI vars file from template..."
|
||||
qemu-img convert -f raw -O qcow2 "$OVMF_VARS_TEMPLATE" "$OVMF_VARS_LOCAL"
|
||||
else
|
||||
echo "Warning: OVMF VARS template not found at $OVMF_VARS_TEMPLATE"
|
||||
# Fallback to creating an empty qcow2 if template is missing (not ideal but avoids crash)
|
||||
qemu-img create -f qcow2 "$OVMF_VARS_LOCAL" 528K
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -21,13 +24,14 @@ echo "ISO: $ISO_PATH"
|
||||
echo "Disk: $DISK_PATH"
|
||||
|
||||
# QEMU Command with UEFI (OVMF) enabled
|
||||
# We use format=qcow2 for pflash1 to allow snapshots (savevm)
|
||||
qemu-system-x86_64 \
|
||||
-enable-kvm \
|
||||
-m 4G \
|
||||
-smp 2 \
|
||||
-cpu host \
|
||||
-drive if=pflash,format=raw,readonly=on,file="$OVMF_CODE" \
|
||||
-drive if=pflash,format=raw,file="$OVMF_VARS_LOCAL" \
|
||||
-drive if=pflash,format=qcow2,file="$OVMF_VARS_LOCAL" \
|
||||
-drive file="$DISK_PATH",format=qcow2,if=virtio \
|
||||
-cdrom "$ISO_PATH" \
|
||||
-boot once=d \
|
||||
@@ -37,4 +41,4 @@ qemu-system-x86_64 \
|
||||
-display gtk,gl=on \
|
||||
-monitor unix:$HOME/.local/share/iridium-installer-vm/monitor.sock,server,nowait \
|
||||
-name "Iridium Installer Test VM (UEFI)" \
|
||||
# -loadvm clean-state
|
||||
# -loadvm clean-state
|
||||
|
||||
Reference in New Issue
Block a user