Diverse onderwerpen

Terugbrengen van de grootte van het rootbestandssysteem

Soms is een rootbestandssysteem zelfs na compressie te groot voor op een diskette. Hier zijn een aantal manieren om de grootte van het bestandssysteem terug te brengen:

  1. Verhoog de dichtheid van de diskette. Standaard worden diskette op 1440K geformatteerd, maar er zijn hogere dichtheidsformaten beschikbaar. fdformat kan disks met de volgende omvang formatteren: 1600, 1680, 1722, 1743, 1760, 1840, en 1920. De meeste 1440K diskettestations ondersteunen 1722K, en dit is wat ik altijd voor bootdisks gebruik. Zie de manpage van fdformat en /usr/src/linux/Documentation/devices.txt.

  2. Vervang je shell. Een aantal populaire shells voor Linux, zoals bash en tcsh, is nogal groot en deze shells vereisen veel library's. Er zijn lichtgewicht alternatieven, zoals ash, lsh, kiss en smash, die heel wat kleiner zijn en waarvoor minder (of geen) library's nodig zijn. De meeste vervangende shells zijn beschikbaar vanaf http://metalab.unc.edu/pub/Linux/system/shells/. Zorg er in ieder geval voor dat de shell die je kiest de opdrachten in alle rc bestanden op je bootdisk uit kan voeren.

  3. Strip library's en binary's. Veel library's en binary's worden met debugging informatie gedistribueerd. Als dit zo is krijg je als uitvoer ``not stripped'' als je op deze bestanden de opdracht file toepast. Bij het kopiëren van binary's naar je rootbestandssysteem, is het een goede gewoonte gebruik te maken van:
          objcopy --strip-all FROM TO

    Belangrijk

    Gebruik bij het kopiëren van library's strip-debug in plaats van strip-all.

  4. Als je bij het aanmaken van het rootbestandssysteem veel bestanden verplaatste of verwijderde, maak het dan opnieuw aan. Zie de NOOT HIERVOOR over het belang van het ontbreken van `dirty blocks' in het bestandssysteem.

  5. Verplaats niet kritieke bestanden naar een utilitydisk. Als een aantal van je binary's na het booten of inloggen niet onmiddellijk nodig is, kun je ze naar een utilitydisk verplaatsen. Zie de paragraaf Bouwen van een utility-disk voor details. Je kunt ook in overweging nemen modules naar een utilitydisk te verplaatsen.

Niet-ramdisk rootbestandssystemen

In paragraaf Bouwen van een rootbestandssysteem werden instructies gegeven voor het bouwen van een gecomprimeerd rootbestandssysteem die bij het booten van het systeem naar ramdisk wordt geladen. Deze methode heeft veel voordelen en wordt daarom vaak gebruikt. Op een aantal systemen kun je je dit echter niet permitteren vanwege de benodigde RAM, en moet het rootbestandssysteem direct vanaf de diskette worden gemount.

Dergelijke bestandssystemen zijn in wezen eenvoudiger aan te maken dan gecomprimeerde rootbestandssystemen, omdat ze op een diskette kunnen worden gebouwd in plaats van op één of ander ander device, en ze niet hoeven te worden gedecomprimeerd. We zullen deze procedure in zoverre ze verschilt van de instructies hiervoor uiteenzetten. Houd in gedachten dat als je hiervoor kiest je veel minder ruimte beschikbaar zal hebben.

  1. Bereken hoeveel ruimte je beschikbaar zal hebben voor rootbestanden. Als je een enkele boot-/rootdisk aan het bouwen bent, moeten alle blokken voor de kernel plus alle blokken voor het rootbestandssysteem op één disk passen.

  2. Maak met behulp van mke2fs een rootbestandssysteem op een diskette van de van toepassing zijnde grootte aan.

  3. Stel het bestandssysteem samen zoals eerder werd beschreven.

  4. Unmount het bestandssysteem en transporteer het naar een diskbestand als je klaar bent, maar comprimeer het niet.

  5. Transporteer, zoals eerder beschreven, de kernel naar een diskette. Stel bit 14 in op nul bij het berekenen van het ramdisk word om aan te geven dat het rootbestandssysteem niet naar ramdisk moet worden geladen. Voer zoals eerder beschreven de opdracht rdev uit.

  6. Transporteer het rootbestandssysteem als voorheen.

Er zijn verscheidene kortere wegen te bewandelen. Als je een uit twee disks bestaande set aan het bouwen bent, kun je het complete rootbestandssysteem direct op de tweede disk bouwen en is het niet nodig het tijdelijk naar een harddiskbestand te transporteren. Ook kun je een enkel bestandssysteem met de kernel, LILO bestanden en rootbestanden op de gehele disk bouwen als je een enkele boot-/rootdisk aan het bouwen bent en LILO gebruikt en als laatste stap gewoon LILO opstarten.

Bouwen van een utility-disk

Het bouwen van een utility-disk is relatief gezien eenvoudig -- maak op een geformatteerde disk een bestandssysteem aan en kopieer er de bestanden naar. Mount het handmatig nadat het systeem is geboot bij gebruik met een bootdisk.

In de instructies hiervoor gaven we al aan dat de utility-disk als /usr zou kunnen worden gemount. In deze situatie zouden de binary's in de /bin directory op je utility-disk kunnen worden geplaatst, zodat het in je path plaatsen van /usr/bin ervoor zorgt dat ze kunnen worden benadert. Extra library's benodigd voor de binary's worden geplaatst in /lib op de utility-disk.

Er zijn bij het ontwerpen van een utility-disk een aantal aandachtspunten:

  1. Plaats kritieke systeembinary's of library's niet op de utility-disk omdat het pas nadat het systeem is geboot te mounten zal zijn.

  2. Je kunt een diskette en floppy tapedrive niet gelijktijdig benaderen. Dit betekent dat als je een floppy tapedrive hebt, je het niet zal kunnen benaderen als je utility-disk is gemount.

  3. Toegang tot de bestanden op de utility-disk verloopt traag.

In de Aanhangsel D wordt een voorbeeld gegeven van bestanden op een utility-disk. Hier zijn een aantal ideeën betreft bestanden die je wellicht nuttig zal vinden: programma's voor het bestuderen en manipuleren van disks (format, fdisk) en bestandssystemen (mke2fs, fsck, debugfs, isofs.o), een lichtgewicht teksteditor (elvis, jove), comprimeer- en archiefutility's (gzip, bzip, tar, cpio, afio), tape utility's (mt, ftmt, tob, taper), communicatie utility's (ppp.o, slip.o, minicom) en utility's voor devices (setserial, mknod).