This post documents the full process of upgrading a Cloud server from the legacy network model to the modern one, including resolving boot issues, configuring IPv4/IPv6, and using rescue mode for recovery. The troubleshooting steps are formatted like SQL transaction logs and statistical event tracking.
🔍 Initial Problem
The user needed to upgrade their server’s network model documentation. To do this, manual configuration of network settings was required.
-- Step: Upgrade Preparation
BEGIN;
REQUIRE server reboot in rescue mode;
REQUIRE manual IPv4/IPv6 network configuration;
COMMIT;
⚙️ Rescue Mode and Mounting the Filesystem
After booting into rescue mode, the main disk had to be identified and mounted:
# lsblk output:
sda 190.7G
└─sda1 190.7G
# Commands used:
mkdir /mnt/root
mount /dev/sda1 /mnt/root
Filesystem contents confirmed the mount was successful:
/mnt/root contains:
bin, boot, etc, home, lib, media, proc, sys, usr, var ...
📡 Network Configuration
To configure the network, the /etc/network/interfaces
file was updated:
# IPv4 and IPv6 Static Configuration
auto eth0
iface eth0 inet static
address 78.46.150.XXX
netmask 255.255.255.255
gateway 172.31.1.1
pointopoint 172.31.1.1
iface eth0 inet6 static
address 2a01:4f8:c17:XXXX::1
netmask 64
gateway fe80::1
Interface renaming was handled by updating GRUB:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
Missing update-grub
support due to unmounted filesystems was resolved using chroot
:
mount --bind /dev /mnt/root/dev
mount --bind /proc /mnt/root/proc
mount --bind /sys /mnt/root/sys
chroot /mnt/root
update-grub
exit
🚨 Errors and Their Resolutions
Error | Cause | Resolution |
---|---|---|
grub-probe: cannot find a device for / | Missing /dev, /proc, /sys in chroot | Used bind mounts before chrooting |
udev rule file not found | File did not exist in system | Ignored, no impact on upgrade |
📊 Summary of System Configuration Steps
-- System Configuration Transaction Log
BEGIN;
MOUNT /dev/sda1 TO /mnt/root;
CONFIGURE /etc/network/interfaces;
SET IPv4 address TO '78.46.150.145';
SET IPv6 address TO '2a01:4f8:c17:3280::1';
REMOVE udev persistent rules;
EDIT GRUB to enforce eth0 naming;
CHROOT and run update-grub;
REBOOT;
COMMIT;
✅ Final Checks After Reboot
# Test IPv4
ping -c 3 78.46.150.XXX
# Test IPv6
ping6 -c 3 google.com
# Interface status
ip a
If all tests pass, proceed to Console » Server » Networking tab » "Upgrade Network Model".
🧠 Tip: Keep a Rescue Script Handy
It’s helpful to create a small bash script for repeating these steps if something goes wrong. Automating the mount/chroot/update-grub steps can save time.
Comments
Post a Comment