Introductie

Hoe je linux box laten sneuvelen en reïncarneren!

Het doel van dit document is tips te bieden als hulp bij het verwijderen en herinstalleren van een Linux systeem. Het is in geen enkele zin een onfeilbaar middel, maar ik hoop dat het zal dienen als een indicatie, waar je aan moet denken, en de volgorde waarin te handelen. Het zou mij van hulp zijn geweest, als iemand anders iets dergelijks eerder had geschreven toen ik mijn eerste upgrade uitvoerde; dus ik hoop het het jou van hulp zal zijn, als je een linux machine opnieuw wilt opbouwen.

Beschouw het echter niet als heilig. Zelfs de namen van directory's in dit document kunnen anders zijn dan die jij moet gebruiken; een aantal mensen maakt bijvoorbeeld gebruik van /usr/home in plaats van /home; anderen noemen het /u, en een aantal plaatst hun gebruikers zelfs onder /usr zelf! Ik kan niet specificiek zijn over je systeem, dus ik heb de namen gebruikt zoals ze op mijn systeem voorkomen.

Je zult ook bemerken dat ik gebruik maak van Slackware distributies, en dat ik veronderstel dat je voldoende RAM en harddiskruimte hebt om de broncode van een linux kernel te installeren en je eigen kernel te bouwen. Als je systeem er anders uitziet, zullen een aantal van mijn aanbevelingen niet van toepassing zijn; maar ik hoop dat je de algemene uiteenzetting kunt gebruiken bij het opnieuw opzetten van je systeem.

Waarom zou iemand dat willen doen?

Goede vraag! Doe het niet als het mogelijk te vermijden is! (Dat is de allerbelangrijkste aanbeveling in dit document!!!). Toen deze leidraad voor het eerst werd geschreven, waren er niet veel mensen met harddisks die groot genoeg waren om twee hele Linux installaties te herbergen. Tegenwoordig is dat niet meer zo ongewoon. Bouw je nieuwe systeem in een aparte partitie (of groep partities) opnieuw op als je ook maar enigszins kan, waarbij je de oude intact laat totdat je tevreden bent met de nieuwe precies zoals je het wilt. Als je het kunt voorkomen om het oude systeem af te breken om ruimte te maken voor het nieuwe systeem, voorkom dit dan!! Maar er zijn keren dat je geen keuze hebt.

(Deze voorbeelden zijn een beetje gedateerd, maar ze dienen ter illustratie)

Toen ik bijvoorbeeld een 4Gb harddisk installeerde bemerkte ik dat Slackware 2.0 vintage linux niet wist dat een harddisk een grotere capaciteit kon hebben dan 2Gb, en raakte het hopeloos in de war. Dus moest ik upgraden naar de toen huidige Slackware 2.3. Die upgrade was een harde ervaring, en deels daarom schrijf ik deze notities op. Ik deed zo ongeveer alles fout, en alleen goed geluk en het feit dat ik een andere draaiende Linux box naast me had, voorkwam een ramp.

Nog een voorbeeld: ik bemerkte dat het samenstellen van een werkende a.out linuxkernel in de 1.3 serie met een kant-en-klare Slackware 2.3 installatie me niet lukte (een andere machine, niet die ik eerder verprutste). Ik waagde de sprong, kocht Slackware 3.0 op CDROM en converteerde het naar ELF. Dit keer ging de herinstallatie beter, dankzij de eerdere bittere ervaring, en het diende als grondlegger voor de meeste idee¨n die ik je hier van de hand doe.

Moet je je systeem afbreken om het weer opnieuw op te bouwen?

Zie hiervoor. Als je het je kunt permitteren je nieuwe systeem samen te stellen op een disk met lege ruimte, doe dit dan! In de rest van dit document wordt er echter van uitgegaan dat dit een van die keren is dat die optie niet beschikbaar is; je moet of ter plaatse bovenop het bestaande systeem een herinstallatie uitvoeren of je moet de gevolgen onder ogen zien en je systeem vanaf het begin af aan opnieuw opbouwen.

Vreemd genoeg is dat laatste veiliger. Als je bovenop een bestaand linux systeem een installatie uitvoert, bestaat de kans dat je oude en nieuwe binaire bestanden, oude en nieuwe configuratiebestanden en gewoonlijk een rommeltje om te beheren doorelkaar krijgt. Het systeem opschonen en dan alleen terugzetten wat je nu nodig hebt is drastisch, maar een effectieve manier om een zuiver resultaat te krijgen. (Uiteraard hebben we het hier over het installeren van een geheel nieuwe linux distributie, niet over het upgraden van één of twee packages! De beste manier om een volledige herinstallatie te voorkomen is, precies, de individuele programma's -- vooral gcc en library's, en binutils recent te houden. Als hetgeen je gebruikt redelijk up-to-date is, en je kunt dit zo houden, zonodig zo nu en dan door compilatie van nieuwe code, dan is een massale upgrade niet nodig.)

Hoeveel tijd neemt het in beslag?

Hangt er uiteraard vanaf hoe complex je systeem is. Maar ik schat in dat ik voor een succesvolle upgrade (dat andere? -- niet aan mij vragen! :) ongeveer tien uur kwijt was aan het maken van backups, zes uur aan het weer opbouwen van het systeem tot aan het punt waar ik logins kon activeren, en nog een halve dag daaromtrent voor het terugzetten van de minder kritieke bestanden. Naarmate de tijd verstreek bleef ik kleine dingen ontdekken die nog steeds niet zo zijn zoals ik ze werkelijk hebben wil -- ik zal dit corrigeren zodra ik ze tegenkom -- maar over het geheel zou twintig uur genoeg moeten zijn voor een redelijk complexe heropbouw. Misschien minder als je een herinstallatie vanaf harddisk uitvoert (ik gebruikte een CDROM) of meer als je vanaf diskettes moet installeren. Misschien minder als je een snelle Pentium hebt, meer als het een 386'r is. 't Is maar om je een idee te geven.

Dat waren de slechtere tijden. Met de nu snellere disks en snellere machines en CD-writers gaat het allemaal wat beter. Mijn notebook werd in december 2002 gestolen en toen er een nieuwe kwam, was ik na ongeveer zever uur werk klaar en was het vrijwel compleet, ondanks dat ik het oude systeem kwijtraakte zonder de kans te hebben gehad de laatste wijzigingen te bewaren.

Tot zover de introductie. Zodra je hebt besloten dat de klus moet worden geklaard, kun je in dit document lezen hoe je het kunt doen. Wapen jezelf met vastberadenheid en Jolt of iets dergelijks en: