Rescue Mode is een herstelomgeving voor een instance die niet meer normaal opstart, bijvoorbeeld door een fout in een configuratiebestand waardoor schijven niet correct automatisch worden gekoppeld, of doordat het root filesystem read-only is geworden. In plaats van je eigen besturingssysteem te booten, start Horizon de bestaande instance tijdelijk vanaf een Debian- of Ubuntu-rescue-image. Vanuit die herstelomgeving kun je onderhoud uitvoeren op de originele systeemdisk.
In dit artikel lees je hoe je een bestaande instance in Rescue Mode zet, verbinding maakt met de herstelomgeving en de instance herstelt.
- Rescue Mode start je bestaande instance niet op vanaf het originele besturingssysteem, maar vanaf een tijdelijke herstelimage.
- De originele systeemdisk wordt normaal als extra disk beschikbaar gemaakt in de rescue-omgeving, zodat je configuratiebestanden veilig offline kunt aanpassen.
- Gebruik altijd
lsblk -fom disks en partities te identificeren en ga nooit uit van een vaste disknaam. - Maak geen aparte rescue-instance aan. Start Rescue Mode op de instance die je wilt herstellen.
Rescue Mode starten
Stap 1
Log in op het TransIP-controlepaneel en open je OpenStack-omgeving in Horizon. Navigeer vervolgens naar de pagina van de instance die je wilt herstellen.

Stap 2
Klik bij de bestaande instance op ‘Actions’ en daarna op ‘Rescue Instance’. Maak hiervoor geen nieuwe losse instance aan.

Hiermee zet je de instance in een tijdelijke herstelmodus in plaats van dat de normale bootprocedure wordt gestart.
Let op
Start Rescue Mode op de bestaande instance die je wilt herstellen. Maak hiervoor geen aparte nieuwe instance aan. Als je alleen een losse nieuwe instance aanmaakt, wordt de originele systeemdisk niet automatisch als extra disk zichtbaar in de herstelomgeving.
Stap 3
Selecteer een rescue-image, bijvoorbeeld Debian of Ubuntu, en bevestig je keuze.

De gekozen image dient alleen als herstelomgeving. Je hoeft dus niet dezelfde distributie te kiezen als de distributie die op de originele instance is geïnstalleerd.

Verbinden met de rescue-omgeving
Stap 1
Verbind via SSH met de instance die in Rescue Mode staat.
Stap 2
Gebruik de juiste gebruikersnaam voor de rescue-image die je hebt gekozen:
- Debian: debian
- Ubuntu: ubuntu
ssh -i ~/.ssh/key ubuntu@<public-ip>Vervang ubuntu door debian wanneer je een Debian rescue-image hebt gekozen. Met -i geef je het pad op naar je private SSH-sleutel.
Let op
Krijg je een hostkey-waarschuwing? Verwijder dan eerst de oude SSH-entry van het IP-adres uit je known_hosts-bestand:
ssh-keygen -R <public-ip>
De SSH-hostkey verandert bij Rescue en Unrescue. Door de oude entry te verwijderen, voorkom je dat SSH de verbinding blokkeert.
Voer dit commando uit op je eigen computer, niet op de rescue-omgeving.
Disks identificeren
Nu je verbonden bent met de herstelomgeving, vraag je eerst een overzicht op van de aanwezige schijven en partities.
Stap 1
Gebruik hiervoor het volgende commando:
lsblk -fMet lsblk -f zie je welke disk bij de herstelomgeving hoort en welke disk de originele systeemdisk van je instance is. Let vooral op de kolom MOUNTPOINTS. De partitie die op / gemount is, is de actieve rescue-omgeving.
Stap 2
Controleer in de uitvoer welke disk bij je originele installatie hoort. In veel gevallen zie je bijvoorbeeld:
- sda: de tijdelijke rescue-omgeving
- sdb: de originele systeemdisk van je instance
Dit kan per omgeving verschillen. Gebruik daarom altijd de uitvoer van lsblk -f en ga nooit uit van alleen de disknaam.
NAME FSTYPE LABEL MOUNTPOINTS
sda
├─sda1 ext4 cloudimg-rootfs /
├─sda15 vfat UEFI
└─sda16 ext4 BOOT
sdb
├─sdb1 ext4 cloudimg-rootfs
├─sdb15 vfat UEFI
└─sdb16 ext4 BOOTIn dit voorbeeld is sda1 de actieve rescue-rootdisk, omdat deze op / gemount is. De originele root-partitie is sdb1, omdat deze als extra disk zichtbaar is en nog geen mountpoint heeft.
Let op
Zie je alleen sda en geen extra disk zoals sdb, vdb of nvme1n1? Ga dan niet verder met mounten. Controleer eerst of je de bestaande instance via Actions > Rescue Instance in Rescue Mode hebt gezet.
Mount nooit blind /dev/sda1. Als /dev/sda1 op / gemount is, is dat de actieve rescue-omgeving en niet de originele root-partitie.
Originele rootdisk mounten
De originele systeemdisk wordt niet direct gebruikt, maar als losse schijf beschikbaar gemaakt in de rescue-omgeving. Door de juiste root-partitie handmatig te mounten, maak je de bestanden op de originele instance toegankelijk. Daarna kun je bijvoorbeeld configuratiebestanden herstellen of het filesystem controleren.
Stap 1
Maak eerst een mountpoint aan voor de originele root-partitie:
sudo mkdir -p /mnt/rootdiskHiermee maak je de directory aan waarin je de originele systeemdisk tijdelijk mount.
Stap 2
Mount daarna de root-partitie van de originele disk:
sudo mount /dev/sdb1 /mnt/rootdiskVervang /dev/sdb1 door de juiste root-partitie uit de uitvoer van lsblk -f. /dev/sdb1 is alleen een voorbeeld.
Let op
Krijg je de melding special device /dev/sdb1 does not exist? Dan bestaat /dev/sdb1 niet in jouw rescue-omgeving. Controleer opnieuw met lsblk -f welke extra disk en root-partitie beschikbaar zijn.
Zie je geen extra disk, ga dan terug naar de stap Disks identificeren en controleer of Rescue Mode correct is gestart.
Stap 3
Controleer of de juiste partitie gemount is:
ls /mnt/rootdiskZie je directories zoals etc, var, usr en home, dan heb je de root-partitie van het originele systeem gemount.
/etc/fstab aanpassen
Stap 1
Maak eerst een backup van het bestand /etc/fstab op de gemounte rootdisk:
sudo cp /mnt/rootdisk/etc/fstab /mnt/rootdisk/etc/fstab.bakZo kun je het originele bestand terugzetten als je per ongeluk een verkeerde wijziging maakt.
Stap 2
Open daarna het bestand /etc/fstab op de gemounte rootdisk:
sudo nano /mnt/rootdisk/etc/fstabIn dit bestand staan de filesystems en mountpoints die tijdens het booten automatisch gekoppeld worden.
Stap 3
Controleer het bestand op onjuiste configuratie, zoals:
- onjuiste UUID of LABEL: de verwijzing wijst naar een niet-bestaande partitie;
- verkeerde mountpoints: een mount verwijst naar een disk of directory die ontbreekt;
- typfouten: een kleine schrijffout kan al voorkomen dat het systeem correct boot.
Stap 4
Herstel de foutieve regel of plaats tijdelijk een # aan het begin van de regel om deze uit te schakelen. Sla daarna het bestand op en sluit de editor af.
Ctrl + O
Enter
Ctrl + XDoor een foutieve mount tijdelijk uit te schakelen, kan de instance weer opstarten. Daarna kun je de configuratie definitief aanpassen vanuit het normale besturingssysteem.
Filesystem controleren
Is het filesystem read-only geworden of vermoed je filesystemschade? Controleer dan eerst of de partitie niet meer gemount is en voer daarna een filesystemcontrole uit.
Stap 1
Unmount de originele root-partitie:
sudo umount /mnt/rootdiskEen filesystemcontrole werkt alleen betrouwbaar wanneer de partitie niet actief gemount is.
Controleer daarna of de partitie niet meer gemount is:
mount | grep rootdiskGeeft dit commando geen output, dan is de partitie niet meer gemount.
Stap 2
Start daarna een controle van het filesystem. Het volgende commando controleert en herstelt een ext4-filesystem op de originele root-partitie:
sudo fsck.ext4 -f /dev/sdb1Vervang /dev/sdb1 door de juiste partitie. Gebruik dit commando alleen wanneer de betreffende partitie een ext4-filesystem heeft. Met -f forceer je een volledige controle, ook wanneer het filesystem schoon lijkt.
e2fsck 1.47.0 (5-Feb-2023)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
cloudimg-rootfs: 117216/12976128 files (0.1% non-contiguous), 1432617/25951995 blocksZie je geen foutmelding en eindigt de controle met een samenvatting van het filesystem, dan is de controle succesvol afgerond.
Disk loskoppelen en Rescue Mode verlaten
Stap 1
Heb je na het aanpassen van /etc/fstab de partitie opnieuw gemount? Unmount deze dan opnieuw voordat je Rescue Mode verlaat:
sudo umount /mnt/rootdiskHiermee zorg je dat alle schrijfacties volledig naar disk zijn weggeschreven.
Krijg je de melding not mounted, dan was de partitie al losgekoppeld. Je kunt dan doorgaan met de volgende stap.
Stap 2
Ga in Horizon terug naar je instance en klik op ‘Actions’ > ‘Unrescue Instance’.

De tijdelijke rescue-omgeving stopt daarna en de instance boot opnieuw op vanaf de originele systeemdisk.
Opnieuw verbinden en controleren
Stap 1
Verwijder na het unrescue-proces opnieuw de oude SSH-hostkey van het IP-adres:
ssh-keygen -R <public-ip>Ook na het terugschakelen naar de originele instance wijzigt de hostkey weer ten opzichte van de rescue-omgeving.
Stap 2
Verbind daarna opnieuw met je instance:
ssh -i ~/.ssh/key.pem ubuntu@<public-ip>Vervang ubuntu door de juiste gebruikersnaam van je eigen instance. Dat is dus niet per definitie dezelfde gebruiker als in de rescue-omgeving.
Stap 3
Controleer of het root filesystem weer read-write gemount is:
mount | grep " on / "Zoek in de uitvoer naar rw. Zie je rw tussen de mountopties staan, dan is het root filesystem schrijfbaar gemount.
/dev/sda1 on / type ext4 (rw,relatime,discard,errors=remount-ro,commit=30)Zie je ro in plaats van rw, dan is het root filesystem nog read-only gemount. Zet de instance dan opnieuw in Rescue Mode en controleer opnieuw /etc/fstab, het filesystem en de consolelog van de instance.
Met Rescue Mode herstel je een OpenStack-instance wanneer deze niet meer normaal opstart, zonder dat je de originele systeemdisk direct hoeft te booten. Je gebruikt daarbij een tijdelijke herstelomgeving om de originele disk te mounten, configuratiebestanden zoals /etc/fstab te corrigeren, het filesystem te controleren en de instance daarna weer normaal te starten.