Wie van plan is het kersverse openSUSE Leap 15.3 op zijn computer te zetten, neemt best enkele voorzorgen. Zo'n ingrijpende bewerking kan namelijk voor veel ellende zorgen.
Tijd voor het veilig stellen van onze data en systeem met behulp van SystemRescueCD. Een live besturingssysteem die je kunt opstarten vanaf DVD of USB-stick. DVD spelers verdwijnen stilaan en dat merk je, steeds meer computers hebben geen DVD speler meer. SystemRescueCD opstarten vanaf een USB-stick werkt perfect, maar je kunt de USB-stick nergens anders meer voor gebruiken. Door SystemRescueCD zelf op een USB-stick te zetten, kan je de USB-stick verder blijven gebruiken voor het opslaan van bestanden. Maar nog interessanter wordt het als je SystemRescueCD daardoor met eigen scripts kunt uitbreiden.
De hier beschreven methode werkt enkel met UEFI zonder Secure Boot. Het moderne UEFI zorgt ervoor dat het maken van een opstartbare USB-stick (of ander medium) veel eenvoudiger wordt. SystemRescueCD kan echter niet met ingeschakelde Secure Boot opstarten.
Start de computer met een SystemRescueCD DVD of USB-stick (aangemaakt zoals dat op deze internetpagina van SystemRescueCD wordt uitgelegd).
Standaard start SystemRescueCD met een QWERTY toetsenbord configuratie, lastig voor gebruikers die een Belgisch AZERTY toetsenbord gebruiken.
Met de volgende opdracht stel je in SystemRescueCD een AZERTY toetsenbord in:
Bij het intypen van deze opdracht merk je meteen waarom dit zo belangrijk is. Voor a typ je q, ) voor - en 1 zonder shift. Bij het intypen van de opdracht loadkeys kan je tijdens het typen de opdracht automatische laten aanvullen door Tab te drukken. Na het uitvoeren van deze opdracht, werkt het AZERTY toetsenbord zoals het hoort.
Sluit de USB-stick die je voor SystemRescueCD wilt gebruiken aan op de computer.
Gebruik de volgende opdracht om te achterhalen hoe je de USB-stick kunt benaderen:
Bij mij is de USB-stick bereikbaar via sdc, wat je kunt afleiden uit de laatste regel. Daarenboven staan apparaten (devices) steeds in de map /dev/, wat uiteindelijk /dev/sdc oplevert.
Om het SystemRescueCD systeem naar de USB-stick te kopiëren, moeten we de USB-stick met het VFAT bestandssysteem formatteren.
Dit is het enige bestandssysteem dat door UEFI benaderd kan worden.
Let wel bij het formatteren worden alle gegevens op de USB-stick onherroepelijk gewist.
Daar gaan we:
De -I zorgt ervoor dat we de USB-stick zonder partitioneren kunnen formatteren. Let ook op de naam die we de USB-stick geven. Deze moet namelijk overeen met de SystemRescueCd versie zonder de punt, m.a.w. de 803 staat hier voor versie 8.03.
Na het formatteren van de USB-stick kunnen we deze aan het bestandssysteem koppelen:
Nu kunnen we het SystemRescueCD systeem dat we terugvinden in de map /run/archiso/bootmnt naar de USB-stick kopiëren:
De -R optie zorgt dat de mapinhoud recursief (inclusief de inhoud van de submappen) wordt gekopiëerd. Dit neemt wat tijd in beslag.
En onze opstartbare en uitbreidbare SystemRescueCD USB-stick is klaar voor gebruik.
Verwijder de USB-stick echter niet zonder het systeem eerst af te sluiten (of de stick af te koppelen).
Het SystemRescueCD systeem sluit je af met de opdracht:
Test de aangemaakte opstartbare USB-stick op de computer waarop je die wilt gebruiken.
Vergeet daarbij niet eerst de USB-stick op de computer aan te sluiten, daarna pas de computer aan te zetten en de speciale toets repetitief (herhalend) om het opstartmenu (bootmenu) van jouw computer te krijgen.
Selecteer de USB-stick en start daarvan op.
Alles zou op een UEFI zonder Secure Boot computer moeten werken.
SystemRescueCD is standaard uitgerust met een systeem om automatisch scripts uit te voeren. Plaats een script met de naam autorun in de rootmap (hoofdmap) van de USB-stick (of DVD) en deze wordt automatisch uitgevoerd.
Het autorun script wordt uitgevoerd op het einde van de opstartprocedure, waardoor interactie met de gebruiker niet mogelijk is. Dit is echter eenvoudig op te lossen met een autorun script dat een tweede script start na het volledig opstarten van het systeem.
Een voorbeeld van zo'n autorun script:
#!/sbin/bash echo '. /run/archiso/bootmnt/pindanet.sh' >> /root/.bashrc
Dit script heeft als enige taak het script pindanet.sh in de rootmap (hoofdmap) van de USB-stick (of ander SystemRescueCD opstartmedium) op te starten na het voltooien van de systeemstart. Na het uitvoeren van het autorun script, verschijnt de melding end of autorun scripts, press <Enter> to continue. M.a.w. druk na de laatste melding Finished Initializes Pacman keyring op Enter om de terminal en daarmee ons interactief script te starten.
Hieronder het script dat ik gebruik. Je kunt dit script niet zomaar overnemen, maar wel gebruiken als basis voor uw eigen uitbreidingen. Zo gebruik ik als bestandssysteem voor openSUSE Leap steeds Ext4 dat met de opdracht fsarchiver snel te back-uppen en teruggezet kan worden.
#!/sbin/bash # Enkele functies die we later meermaals nodig hebben function herstart { echo "De computer wordt automatisch herstart." echo "U hoeft enkel te wachten..............." shutdown -r now sleep 3000 } function afsluiten { echo "De computer wordt automatisch afgesloten." echo "U hoeft enkel te wachten..............." shutdown -h now sleep 3000 } function getBackupIp { echo "pindabackup" } # Hier start het script # We gebruiken een AZERTY toetsenbord loadkeys be-latin1 # En een groter lettertype setfont sun12x22 echo "Automatisch systeemherstel" echo "==========================" echo "(C) PindaNet.be, Brugge, Dany Pinoy, `date -r /run/archiso/bootmnt/pindanet.sh +'%d %B %Y'`" echo echo "Dit is experimentele software. \ Het gebruik ervan is geheel voor eigen risico. \ PindaNet.be e.v. aanvaarden geen enkele aansprakelijkheid voor schade aan hard- en software, verloren gegane data of andere direct of indirect door het gebruik van deze software ontstane schade. \ In sommige landen kunnen de gebruikte software en andere componenten aan exportregelingen of patenten gebonden zijn. \ In deze landen mag deze software niet verspreid worden zoals dat normaal bij software onder de gpl-licentie gebruikelijk is. \ Als u het met deze condities niet eens bent, mag u deze software niet gebruiken." echo # Opzoeken of de systeempartitie op de eerste of tweede schijf staat mainhd="/dev/sda" if [ ! -b "${mainhd}4" ]; then mainhd="/dev/sdb" fi # Mijn systemen gebruiken steeds de vierde partitie op de systeemschijf if [ ! -b "${mainhd}4" ]; then echo "Systeempartitie niet gevonden." sleep 3000 exit fi echo "Systeemschijf: ${mainhd}" while true; do echo # Interactief keuzemenu op het scherm plaatsen echo 'Typ een opdracht (restore, rsync, halt, reboot, terminal, backup): ' read keuze case "$keuze" in # Een systeemback-up terugzetten "restore") backupip=$(getBackupIp) # NAS met back-ups koppelen mount -t cifs //$backupip/yoga /mnt echo echo 'Welke backup terugzetten (child, parent, grandparent): ' read keuze case "$keuze" in "parent") fsarchiver restfs /mnt/parent.linux.fsa id=0,dest=${mainhd}4;; "grandparent") fsarchiver restfs /mnt/grandparent.linux.fsa id=0,dest=${mainhd}4;; *) fsarchiver restfs /mnt/child.linux.fsa id=0,dest=${mainhd}4;; esac umount /mnt;; # Een databack-up van de gegevenspartitie maken "rsync") backupip=$(getBackupIp) rsync $backupip:: if [ $? -ne 0 ]; then printf '\033[1;31;40m Kon geen verbinding met backupserver opbouwen.\033[0m\n' # Rode letters else mount ${mainhd}7 /mnt rsync -avHxh --numeric-ids --progress --delete --exclude="vmware/" --exclude="lost+found/" /mnt/ $backupip::backup/yoga/documenten 2>>/tmp/rsync.error | tee -a /tmp/rsync.log umount /mnt printf '\033[1;31;40mRsyncbackup gaf de volgende foutmeldingen:\033[0m\n' # Rode letters more /tmp/rsync.error printf '\033[1;32;40mDe backup is voltooid.\033[0m\n' # Groene letters op zwarte achtergrond fi;; "halt") afsluiten;; "reboot") herstart;; # Doorstarten naar SystemRescueCD om zelf opdrachten te uit te voeren "terminal") break;; # Systeemback-up maken "backup") backupip=$(getBackupIp) # NAS met back-ups koppelen mount -t cifs //$backupip/yoga /mnt rm /mnt/grandparent.linux.fsa mv /mnt/parent.linux.fsa /mnt/grandparent.linux.fsa mv /mnt/child.linux.fsa /mnt/parent.linux.fsa fsarchiver savefs /mnt/child.linux.fsa ${mainhd}4 umount /mnt;; esac done