fix issue with predicable names after kernel update

This commit is contained in:
Josh Patterson
2025-06-04 16:57:59 -04:00
parent 6e1e617124
commit 395c4e37ba

View File

@@ -171,19 +171,21 @@ def modify_bls_entry(g):
for i, line in enumerate(lines): for i, line in enumerate(lines):
if line.startswith('options '): if line.startswith('options '):
logger.info(f"Found options line: {line}") logger.info(f"Found options line: {line}")
# Check if net.ifnames parameter exists
if 'net.ifnames=' in line: # First remove any existing net.ifnames parameters (both =0 and =1)
# Replace existing parameter new_line = re.sub(r'\s*net\.ifnames=[01]\s*', ' ', line)
new_line = re.sub(r'net\.ifnames=[01]', 'net.ifnames=1', line) # Also remove any quoted versions
if new_line != line: new_line = re.sub(r'\s*"net\.ifnames=[01]"\s*', ' ', new_line)
lines[i] = new_line # Clean up multiple spaces
modified = True new_line = re.sub(r'\s+', ' ', new_line).strip()
logger.info(f"Updated existing net.ifnames parameter to 1. New line: {new_line}")
else: # Now add net.ifnames=1 at the end
# Add parameter new_line = f"{new_line} net.ifnames=1"
lines[i] = f"{line} net.ifnames=1"
if new_line != line:
lines[i] = new_line
modified = True modified = True
logger.info(f"Added net.ifnames=1 parameter. New line: {lines[i]}") logger.info(f"Updated options line. New line: {new_line}")
break break
if modified: if modified:
@@ -238,10 +240,54 @@ def update_grub_config(g):
RuntimeError: If GRUB update fails RuntimeError: If GRUB update fails
""" """
try: try:
# First, read the current grubenv to get the existing kernelopts
logger.info("Reading current grubenv...")
grubenv_content = g.read_file('/boot/grub2/grubenv').decode('utf-8')
logger.info("Current grubenv content:")
logger.info(grubenv_content)
# Extract current kernelopts
kernelopts_match = re.search(r'^kernelopts="([^"]+)"', grubenv_content, re.MULTILINE)
if kernelopts_match:
current_kernelopts = kernelopts_match.group(1)
logger.info(f"Current kernelopts: {current_kernelopts}")
# Remove any existing net.ifnames parameters
new_kernelopts = re.sub(r'\s*net\.ifnames=[01]\s*', ' ', current_kernelopts)
# Clean up multiple spaces
new_kernelopts = re.sub(r'\s+', ' ', new_kernelopts).strip()
# Add net.ifnames=1
new_kernelopts = f"{new_kernelopts} net.ifnames=1"
logger.info(f"New kernelopts: {new_kernelopts}")
# Update grubenv with the new kernelopts
logger.info("Setting kernelopts with net.ifnames=1...")
output_editenv = g.command(['grub2-editenv', '-', 'set', f'kernelopts={new_kernelopts}'])
logger.info("grub2-editenv output:")
logger.info(output_editenv)
else:
# If we can't find existing kernelopts, use the default
logger.warning("Could not find existing kernelopts, using default")
output_editenv = g.command(['grub2-editenv', '-', 'set', 'kernelopts=console=tty0 no_timer_check biosdevname=0 resume=/dev/mapper/vg_main-lv_swap rd.lvm.lv=vg_main/lv_root rd.lvm.lv=vg_main/lv_swap net.ifnames=1 crashkernel=1G-64G:448M,64G-:512M'])
logger.info("grub2-editenv output:")
logger.info(output_editenv)
logger.info("Updating grubby with net.ifnames=1...")
# First remove any existing net.ifnames arguments
output_grubby_remove = g.command(['grubby', '--update-kernel=ALL', '--remove-args=net.ifnames=0 net.ifnames=1'])
logger.info("grubby remove output:")
logger.info(output_grubby_remove)
# Then add net.ifnames=1
output_grubby_add = g.command(['grubby', '--update-kernel=ALL', '--args=net.ifnames=1'])
logger.info("grubby add output:")
logger.info(output_grubby_add)
logger.info("Updating GRUB configuration...") logger.info("Updating GRUB configuration...")
output = g.command(['grub2-mkconfig', '-o', '/boot/grub2/grub.cfg']) output_mkconfig = g.command(['grub2-mkconfig', '-o', '/boot/grub2/grub.cfg'])
logger.info("GRUB update output:") logger.info("GRUB update output:")
logger.info(output) logger.info(output_mkconfig)
logger.info("Successfully updated GRUB configuration") logger.info("Successfully updated GRUB configuration")
except Exception as e: except Exception as e:
logger.error(f"Failed to update GRUB configuration: {e}") logger.error(f"Failed to update GRUB configuration: {e}")