De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

Backup maken in linux naar cd of externe hard disk

Oplossing

Een backup maken is van levensbelang, niet alleen voor uw gemoedsrust maar ook voor de continuiteit van uw bedrijf. De tekst die u nu krijgt te lezen hebben we voor een gedeelte vertaald uit een linux blad op internet, daarbij onze eigen draai eraan gegeven, voor de linux installaties elders op deze site gepubliceerd.

Wat heeft u nodig om een linux systeem in een backup op te nemen.
Als u een thuis of werk gebruiker van Linux bent, stellen wij voor dat uw backup en restore systeem aan de volgende voorwaarden voldoet:

  • U heeft geen andere software of onderdelen (hardware) nodig als hetgeen u al heeft

  • Ben niet te zuinig bij de aanschaf van backup media

  • Maak het eenvoudig om regelmatig te gebruiken, anders gebruikt u het vermoedelijk nooit.

  • Maak het eenvoudig om te controleren (verifieren), anders kan uw backup beschadigde gegevens bevatten, en niet meer terug te zetten zijn. (restore)

  • Zorg dat uw backup alleen de machine nodig heeft, dus zorg voor opstart diskettes zodat u zonder zoeken meteen uw systeem weer kunt opstarten.

  • Verwacht minimale kennis van het terugzetten van de gegevens als het er een keer op aan komt.

  •  

    Een snelle zoektocht op het internet leert ons dat u op het web vele backup en restore methodes kunt vinden en downloaden. Vele zijn speciaal gemaakt om u zo makelijk mogelijk een backup te  maken, maar hoe werkt de restore eigenlijk, andere zijn vooral goed in het herstellen van gecrashte systemen met het backuppen van de standaard gegevens, maar we vinden er geeneen die precies doet wat we eigenlijk zoeken, het maken van een backup van ons systeem en data waarmee we zonder zorgen (als de hardware er nog is) de zaak weer kunnen herstellen.

Omdat de meeste Linux gebruikers geen tape steamer meer aanschaffen gaan we vanaf nu verder met het maken van een backup op een CDROM of Externe hard disk.

CD-ROM Backup

Het meest essentiële voorwaarde voor een cd-rom backup is dat u een werkende cd Brander heeft. Bijna iedere huidige Linux distributie heeft de benodigde software tools, en voor ongeveer 2 euro heeft u goede cd's en voor 3 a 4 euro heeft u een DVD rom. Met een cd of dvd kunt u ongeveer (volgens de makers dan) 1000 a 2000 keer een backup maken en dus opslaan.

We hebben ook een cd nodig waarmee we een zelf booting systeem kunnen opstarten met een minimaal werkend Linux system. Deze cd is nodig om het herstel van de master boot record (MBR) en de rest van de orginele partitie informatie te kunnen terugzetten, indien nodig. Hierdoor is het niet mogelijk met een boot disk image te werken, zoals normaal bij een linux distributie zit. Deze hebben vaak niet meer dan een boot methode en een Linux kernel, en normaal booten ze vaak direct naar de partitie die ze standaard als instelling hebben, en dat kan een groot nadeel zijn als je alleen maar enkele zaken wenst terug te zetten.

Na een snelle zoektocht voor een beschikbare Linux Zelf booting CD's kiezen we uiteindelijk voor een klassieker van TomsRtBt in een diskette-formaat van 2.88MB. Het is geen ISO image, maar wel geschikt om te gebruiken als boot image voor een ISO die we willen branden. Deze image is ook op diverse andere plekken op het internet te vinden, dus we zijn niet de einige met deze voorkeur.

Om ons Linux systeem terug te kunnen zetten in de orginele staat, moeten we alle directory's die qua inhoud veranderen in de backup meenemen, dus alles wat niet orgineel is moet mee in onze backup. Dit kan gedaan worden door alles miniem te gaan zitten bekijken of, het kan gemaakt worden door alles in de directories die kunnen veranderen mee te nemen in de backup.

In deze gebruiksaanwijzign hebben we besloten om de gehele inhoud van de directories  */home, /etc, /usr/local, /opt, /var, /root and /boot* op de Linux bak te backupen:

  • /home bevat alle gebruikers gegevens.

  • /etc bevat alle configuratie informatie

  • /usr/local bevat normaal gesproken extra programmas toegevoegt na de installatie

  • /opt is normaal gesproken gebruikt voor applicaties om te installeren

  • /var bevat alle data die variabel moeten zijn

  • /root behoort tot de hoofdgebruiker en bevat vaak systeem instellingen.

  • /boot bevat alle bestanden om het syteem te kunnen opstarten en de  boot .conf bestanden

Als aanvulling op de inhoud van de besproken directories, zijn en nog wat belangrijken delen die in een backup mee zouden moeten lopen om indien het fout gaat weer snel aan de gang te kunen zijn. We hebben het hier oven een copy van de MBR, een tekst lijst van de partitie table en een copy van het fstab bestand, dit voor het geval u niet meer weet welke partities u voor welk file-systeem heeft gebruikt. Optioneel kunt u een copy van het huidige XF86Config bestand en/of de tekst output van commandos als lsdev en lspci voor volledige systeem informatie.

Goed, hoe gaan we deze stroom aan informatie structureel op een CD plaatsen zodat we in geval van kalamiteiten alles meteen op een CD hebben staan in zulk een vorm dat deze CD compleet zelf lopend is en te gebruiken voor de taak van herstellen van uw systeem? Nu, eerst creeren we een directorie die alle info kan bevatten voor de backup CD. Als root, kunt u dit commando /mkdir /tmp/backup/. Merk op dat we  /tmp als opslagplaats voor het konstante gedeelte van de backup CD gebruiken. Dit is veilig te doen in Linux, maar het is nuttig om te kijken of er niets mee gebeurt. Gebruik een veilige locatie, en gebruik er een die zelf niet in de backup kan mee gaan lopen.

Zet in de backup directorie het bestand TomsRtBt .img

 cp ./tomsrtbt288.img /tmp/backup/tomsrtbt288.img  

Hier is het .img bestand in de home directorie gedownload.

Plaats ook een copie van het master boot record in de backup dir:

 dd if=/dev/hda bs=512 count=1 > /tmp/backup/MBR.bin  

De MBR bevat het eerste proces van het boot mechanisme wat gebruikt word. Het is proces 1 van GRUB, de GRand Unified Boot Loader, of LILO, ook bevat het de partitie informatie voor de primare partities. De extended partitie informatie word elders op de disk bewaard en kan restored worden --als u wilt-- met de informatie die word opgeslagen met het volgende fdisk commando.

Plaats in de backup directory de informatie van de partitie:

 fdisk -l > /tmp/backup/Partition_Table  

Dit zal gebruikt worden om te vergelijken met een Toms listing of the partition table voordat ook maar een restore plaats vind.

Plaats ook in de bakcup directorie een copie van fstab, hierin liggen de mount points van het systeem vast. U dient er rekening mee te houden dan errors de schijven ontoegankelijk kunnen maken:

 cp /etc/fstab /tmp/backup/fstab.bak  

Optioneel kunt u nog andere informatie die u wenst te bewaren ook copieren naar de backup directorie om voordat u het nieuwe systeem gaat booten te kunnen restoren. Bijvoorbeeld XF86Config, menu.lst, omdat u GRUB als boot loader gebruikt:

 cp /etc/X11/XF86Config /tmp/backup/XF86Config.bak  ...  cp /boot/grub/menu.lst /tmp/backup/menu.lst.bak  

Deze bestanden worden aan iedere copie van de backup toegevoegd.

Nu een zelf booting cd-disk maken? Hier is de procedure:

  1. Creeer een tar file van de eerder genoemde directories en plaats deze in  /tmp/backup.

  2. Creeer een  bootable ISO van de backup directorie door het gebruik van mkisofs.

  3. Kontroleer of de grote van de ISO om er zeker van de zijn dat deze op een CD-RW disk past.

  4. Brand de CD-RW en gebruik daarvoor cdrecord.

  5. Op bepaalde punten in het proces, echo messages naar het beeldscherm, zoals de md5sums.

  6. Ruim de bestanden op die niet meer nodig zijn.

Het script zoals besproken staat hieronder. Zorg ervoor dat het uitvoerbaar is --chmod 755 ./backup-- en plaats het ergens in een root directorie; /usr/local/bin is een goede plaats. Doe voor het andere script na volgend script hetzelfde.

#!/bin/bash 
# backup
#------------------------------------------------------------------------------
# Script voor een simpele backup van alle belangrijke Linux Files te maken
# en maak gaanderweg ook een aangepaste systeem reparatie disk
#------------------------------------------------------------------------------ 
# De backup directorie bevat (indien u ook voorgaande tekst heeft gevolgd) al alle
# bestanden voor een boot en een recovery of herstelling. 
# u kunt natuurlijk meer toevoegen maar onze backup is < 580MB.
Backup_Dirs="/home /etc /usr/local /opt /var /root /boot" 
Backup_Dest_Dir=/tmp/backup 
Backup_Date=`date +%b%d%Y` 
Image_File=/tmp/backup.iso 
declare -i Size 
# Kreeer een tar (zip) file met de datum van vandaag mm-dd-jj voor makelijke indentificatie
tar cvzf $Backup_Dest_Dir/$Backup_Date.tar.gz $Backup_Dirs &> /dev/null 
# Start backup process to local CD-RW drive 
echo "Backing up $Backup_Dest_Dir to CD-RW Drive - $Backup_Date" 
echo "Creating ISO9660 file system image ($Image_File)." 
mkisofs -b toms288.img -c boot.cat -r  
            -o $Image_File $Backup_Dest_Dir  &> /dev/nul 
# Kontroleer de grote van de backup, past ie op cd?
Size=`du -m $Image_File | cut -c 1-3` 
if [ $Size -lt 650 ] then 
   echo "Grote van ISO Image $Size MB, OK om te Branden" 
else 
   echo "Grote van ISO Backup Image te Groot om te Branden"
   rm $Backup_Dest_Dir/$Backup_Date.tar.gz  # Verwijder het oude backup file
   rm $Image_File              # De ISO word de volgende backup toch overschreven maar toch...
   exit 1 
fi 
# Brand de CD-RW 
Speed=4                          # Gebruik de beste snelheid voor CD-RW disks op UW systeem 
echo "Branden van de disk."  
                                      # Set dev=x,x,x from cdrecord -scanbus 
cdrecord -v speed=$Speed blank=fast dev=1,0,0 $Image_File &> /dev/null 
Md5sum_Iso=`md5sum $Image_File` 
echo "The md5sum of the created ISO is $Md5sum_Iso" 
# Hier zou je nog kunnen TESTEN voor Md5sum_Iso voor kontrole md5sums maar is moeilijk. 
echo "Voor kontrole gebruik script md5scd, deze produceert de gebrande CD's md5sum code" 
echo "run deze als Gebruiker met backup CD in CD-drive die voor recovery moet worden gebruikt." 
echo "Niet allen de md5sum word gekontroleerd maar de disk leest juist indien U hem nodig heeft." 
# Verwijder image en tar files. 
echo "Verwijderen $Image_File" 
rm $Image_File 
echo "Verwijderen : $Backup_Dest_Dir/$Backup_Date.tar.gz" 
rm $Backup_Dest_Dir/$Backup_Date.tar.gz 
echo "EINDE BACKUP $Backup_Date" 
echo "------------------------------------------------------------------------" 
exit 0

Gebruik van Backup Systeem

Eenmaal alles gedaan, dan is het backup proces eenvoudig. Gebruikelijk is om het iedere dag eens op te roepen. Als u niets gedaan heeft aan het systeem, hoeft het natuurlijk niet gebackuped te worden, maar is het toch verstandig om 1 keer per week een backup te laten maken. Voordat u begint eerst even een lege of herschrijfbare CD-ROM in het station plaatsen in de brander. In een terminal venster (xterm) typed u su om als root in te loggen en type daarna dit commando:

 nohup backup &> /tmp/backup.log &/  

vervolgens kunt u xterm afsluiten met exit en naar bed gaan. Het zal ongeveer, afhankelijk van de hoeveelheid gegevens, ongeveer 15 minuten tot een half uur duren, dus het kan ook tijdens het werk gedaan worden ( in de pause of zo). Om te kijken of de backup goed gelopen is, kunt u in xterm cat /tmp/backup.log doen en kijken of de backup wel goed is gegaan. Als u ook de backup wilt verifieren, schrijft u de eerste en de laatste vier cijfers en letters van de ISO md5sum. Als de brander de backup niet goed kan teruglezen kunt u in een andere CD-speler de  CD kontroleren, U kontroleert dan of de md5sums gelijk zijn, door het script md5scd (zie onderstaande listing). Als ze gelijk zijn is de backup CD dus klaar voor het herstellen van uw systeem, zorg dat u een systeem opbouwd met meerdere CD's om alle mogelijke fouten uit te sluiten. We hebben in deze methode geen automatische check of backup methode gedaan omdat we een backup dusdanig belangrijk vinden dat het beter is om zelf het heft in handen te nemen qua backups. Ook de md5sums kun u het beste met onderstaand script kontroleren.

#!/bin/bash 
#------------------------------------------------------------------------ 
# md5scd ---- Data CD md5sum Verifieren 
# Script om automatische kontrole van Md5sum for ISO9660 CDs 
# NOTE - Dit script gaat ervan uit dat een correcte md5sum bekend is en u 
# wilt verifieren dat een bepaalde CD correct is weggeschreven (gebrand). 
# Als u werkt met een gedownload ISO image gebruik dan "md5sum ISO" als commando 
#------------------------------------------------------------------------ 
# Vereist zijn alle standaard tools die in alle Linux Distributions voorkomen
# Als het script als gebruiker word gestart, kontroleer alle rechten, groups, etc. 
# Foute commandos? 
if [ $# -ne 2 ] 
then
   echo "Gebruik - md5scd mountpoint device, ex - md5scd /mnt/cdrom /dev/hdc"
   exit 1 
else 
    : OK juiste argumenten 
fi 
# Loop voor md5sum detectie ...100 good copies for install-fest? 
again=yes 
while [ "$again" = yes ]
    do
      echo "Wilt u alstublieft CD van $1 plaatsen en druk ENTER indien klaar"
      read                        #Wait for insertion of disk
      mount $1
      Block_Count=`df -k $1 | grep $1 | cut -c 25-30`
                #700Mb disk cannot exceed this ^^^^^ column limit in 1k blocks
      umount $1
      Md5sum_Cd=`dd if=$2 count=$Block_Count bs=1024 | md5sum`
      echo "De md5sum van de CD van $1 is " $Md5sum_Cd
      echo
      echo -n "Kontroleer een andere CD? [yes/no]"
      read again   # Wait for "yes" -> repeat, anything else -> drop through'
    done
exit 0

Wat moet ik doen als mijn systeem is geCrashed?

Voordat zoiet gebeurt, is het verstanden dat u zeker weet dat uw backup CD automatisch kan opstarten. Verder, vergezeker u ervan dat u de beperkingen van tomsrtbt begrijpt, en oefen het uitlezen van de verschillende files op de backup disk, als enige editor kun u VI gebruiken. Als u de editor nodig heeft, dan moet de disk eerst al eens gemount zijn:

 mount -t iso9660 /dev/xxx /mnt  

Het is mogelijk om met unzip en untar de tarred (ingepakte) bestanden uit te pakken met TomsRtBt door eerst gzip en dan tar te gebruiken. Buiten dat is het misschien toch beter eerst te kijken of de partitie tafel (partition table) correct is door fdisk -l te gebruiken en een referentie naar de opgeslagen table aan te geven. Als dat niet het geval is, restore the MBR door gebruik van:

 dd if=/mnt/MBR.bin of=/dev/hda bs=1 count=512   

Dit hersteld de primaire partieties en de bootloader. Dan gebruikt u fdisk en de partition table file om met de extended partities te herstellen.

Vervolgens kunt u een zuivere installatie uitvoeren, dit kan natuurlijk ook meteen zodat de juiste standaard partities automatisch worden gecreeerd. Start het systeem op totdat u kunt inloggen als root, mount de backup CD en voer uit

 tar xvzf /Mount_Dir/Backup_Tar_Filename  

Dit hersteld alle vorige directories op de juiste plaatsen. Het zou zo ongeveer een volledig hersteld systeem moeten opleveren.

Als u alleen maar een gedeelte van de bestanden wenst te herstellen kan dat met het volgende voorbeeld:

 tar xvzf /Mount_Dir/Backup_Tar_Filename /home

Conclusie

Backup is makelijk te doen en gemakkelijk om te blijven doen. Backuppen is voor ieder bedrijfproces een zeer belangrijke zaak.

BRON: Engelstalige versie van  Alan Keates. Originally published in Linux Gazette issue 91. Copyright (c) 2003, Specialized Systems Consultants, Inc. orgineel hier

 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen Backup en restore met tar
Een backup maken van je linux systeem
Windows start niet meer na update ubuntu
Mount externe USB drive CentOS 7
Bash scripting
Kernel
Backup en herstel (na de ramp)
ISPconfig website overzetten andere master server
Partities
Amanda - Creating Successful Backups
Artikel details
Artikel ID: 76
Categorie: Backup
Zoekwoorden
Datum toegevoegd: 19-Feb-2004 11:54:22
Aantal bekeken: 2814
Beoordeling (Stemmen): Artikel beoordeeld 4.4/5.0 (1953)

 
« Ga terug