UMSDOS HOW-TO

Jacques Gelinas, jacques@solucorp.qc.ca,
Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org

v1.2, 1 december 2001


Umsdos is een linux bestandssysteem. Het voorziet in een alternatief voor het EXT2 bestandssysteem. Mijn doel is een eenvoudiger coëxistentie te bereiken met Ms-DOS gegevens door het delen van dezelfde partitie. In dit document wordt eerst uitgelegd hoe Umsdos in verschillende configuraties te gebruiken en later wordt de werking ervan uitgelegd en getracht in wat informatie te voorzien of je te helpen beslissen of het een goede keuze voor je is (zie UMSDOS Waarom aan het einde van dit document).

1. Copyright en Licentie

Dit document is auteursrechtelijk beschermd (c) 1995 door Jacques Gelinas. Het wordt uitgegeven onder de voorwaarden van de GNU Free Documentation License. Een kopie van de licentie zou erbij moeten worden geleverd, of je kunt een kopie bekijken op http://www.fsf.org/licenses/fdl.html.

2. UMSDOS: Waar komt het vandaan?

2.1 Historie

Het Umsdos project werd in 1992 gestart en via het net als een patch beschikbaar gesteld in januari 1994. In juli werd het opgenomen in de standaardkernel, te beginnen met kernel 1.1.36.

Umsdos werd eerder opgenomen in de Slackware distributie zelfs nog voor het officieel in de officiële kernel werd opgenomen.

Umsdos werd beginnend met kernel 1.1.60 verbeterd. De performance werd vooral voor schrijfacties dramatisch verbeterd. Sinds 1.1.70 , is het weer stabiel.

In Linux 1.2.2 werd een belangrijke bug opgelost. Deze bug zorgde sinds het begin bij gebruikers voor nogal wat ongerief (een aantal bestanden werden in stilte hernoemd, waarbij de droeve indruk werd gewekt dat ze waren verwijderd). Slackware 2.2 wordt nog steeds geleverd met kernelrelease 1.2.1 waarin deze bug nog zit.

2.2 Beschikbaarheid

Het is als een patch beschikbaar voor kernel 1.0.x. Vanaf kernel 1.2 is het ingebouwd. Het kan in de kernel worden gecompileerd of als een module worden geladen. Als je umsdos als een module wilt laden, denk er dan om dat je ook het Ms-DOS fs als een module moet laden. Dit komt door een beperking in het modulesysteem (een aantal symbolen wordt alleen geëxporteerd als de drivers als een module zijn geïnstalleerd).

2.3 Distributie die het ondersteunt

Ik dacht dat alleen Slackware het tot dusverre ondersteunt. Ik heb het vast en zeker verkeerd, dus stuur me alsjeblieft info om dit te kunnen corrigeren.

2.4 Home site

De home site voor Umsdos is sunsite.unc.edu. Kijk in de directory /pub/Linux/system/Filesystems/umsdos.

2.5 Technische documentatie

Er is een heleboel technische documentatie over de interne werking van Umsdos. Het is zowel beschikbaar in HTML- als in tekstformaat op dezelfde lokatie als de utility's.

Zover ik weet, is de HTML versie niet online op enige website beschikbaar. Je moet het downloaden en "uitpakken" en het lokaal lezen.

2.6 Wie schreef het

Jacques Gelinas jacques@solucorp.qc.ca

3. Umsdos als je rootpartitie

3.1 Het pseudo-root concept

Met Umsdos kan Linux op een standaard DOS-partitie worden geïnstalleerd. Linux wordt dan geïnstalleerd als een tweede (of derde) OS op die partitie. Om aanvaringen met namen te voorkomen (er is wellicht reeds een bin of tmp directory op drive C:), gebruik je Umsdos. Een slimme truuk: De pseudo-root.

Alle Linux bestanden worden geïnstalleerd in een DOS-subdirectory genaamd linux, in het algemeen is dit C: LINUX. De normale Linux/Unix directorystructuur vind je hier. Dus je krijgt:

Wanneer Umsdos boot, zoekt het naar de directory linux en vervolgens /linux/etc. Als het voorkomt, activeert het de pseudo-root modus.

Meestal schakelt de pseudo-root modus de root van de partitie over naar C:\\LINUX wat de conventionele Unix directory layout oplevert.

Aan deze lijst, voegt het een nieuwe toe, genaamd DOS. Dit is een virtuele directory.

3.2 Wat je moet weten over de pseudo-root

4. Verschillende onderwerpen over de werking van Umsdos

4.1 Mount optie

Je kunt dezelfde mountopties gebruiken als voor het Ms-DOS bestandssysteem. De optie conv= is twijfelachtig op een Umsdos systeem. Ik raad je aan het te vermijden. De opties waar je wellicht voornamelijk naar wilt kijken zijn:

Denk eraan dat Umsdos een niet gepromote directory beheert op dezelfde wijze als het Ms-DOS bestandssysteem. De opties hierboven zullen globaal van toepassing zijn op alle niet gepromote directory's. Met uid wordt de standaardeigenaar ingesteld, met gid de standaardgroep en met umask de standaardpermissies.

4.2 Hoe standaards voor de root in te stellen

umssetup werd gecreërd om voor de root-partitie te voorzien in een standaardeigenaar tijdens de uitvoering. De mount optie of umssetup kan voor andere Umsdos partities worden gebruikt. De voorkeur gaat er naar uit de mount opties voor de partities anders dan root in /etc/fstab op te slaan. Hier is een voorbeeld. Plaats die in /etc/rc.d/rc.S.

/sbin/umssetup -u jack -g group -m 0755 /

4.3 Wel of geen swap

Gebruik van een swapbestand is in het algemeen langzamer dan een swappartitie. Het is echter veel flexibeler. Je kunt een swapbestand in een Umsdos partitie instellen op dezelfde wijze als je dat zou doen voor ieder ander Linux bestandssysteem. Voor het instellen van een swapbestand in de rootdirectory van 8 megabyte bijvoorbeeld, geef je de volgende opdrachten:

dd if=/dev/zero bs=1024k count=8 of=/swap
mkswap /swap 8192
sync
swapon /swap

Zodra je hiermee klaar bent, kun de je volgende regel in /etc/fstab plaatsen:

/swap   swap    swap    default         

En vervolgens zal het swapbestand bij iedere boot worden geactiveerd (gewoonlijk staat in /etc/rc.d/rc.S een opdracht "swapon -a" ).

5. Hoe een Umsdos systeem te booten

5.1 Loadlin

Het package lodlin15.tgz is beschikbaar vanaf sunsite.unc.edu in /pub/Linux/system/Bootutils. Dit utility is in het bijzonder geschikt voor het booten van een Umsdos systeem. Over het algemeen hoef je alleen op te geven

Boot DOS
C:>loadlinx zimage root=D:

waar zimage een gewoon kernel-image voorstelt (gecomprimeerd) simpel ergens op de DOS drive naartoe gekopieerd. D: is de DOS drive waarop je Linux hebt geïnstalleerd.

5.2 Vanaf een diskette

Het booten van een Umsdos systeem vanaf een diskette is niet anders dan het booten van een Ext2 systeem. Je hebt een juist geïnitialiseerd zImage bestand nodig dat zich in je root Umsdos partitie moet bevinden. Dit wordt gewoonlijk bereikt door gebruik van de opdracht rdev. De volgende reeks zal een zImage initialiseren en het op een diskette plaatsen.

rdev zImage /dev/hda1
rdev -R zImage 0
dd if=zImage bs=8192 of=/dev/fd0

Als dit er verwarrend uitziet, formatteer dan gewoon een opstartbare DOS-diskette en plaats hier de volgende componenten op:

en stel het autoexec.bat als volgt in

loadlinx zimage rw root=C:

5.3 LILO

LILO, de officiële Linux bootloader kan ook worden gebruikt voor het booten van een Umsdos systeem. Ik heb hier echter geen ervaring mee. Het zou vanaf versie 1.1.60 moeten werken. Mail me alsjeblieft als je hier iets over weet.

5.4 Hoe een Umsdos partitie te defragmenteren

Dit kan worden gedaan met ieder populair DOS hulpmiddel. Er is niet speciaals aan een bestand dat door Umsdos wordt geproduceerd. En Umsdos verwacht niet speciaals (zoals een speciale directory layout, reeks directory-ingangen, enz...) van het onderliggende bestandssysteem.

Zover ik weet, bestaat hier geen Linux tool voor.

5.5 Geavanceerde truuks

Umsdos rekent op de --linux-.--- welke afgaat op de DOS directory. Een aantal gebruikers willen er wellicht wat mee experimenteren. Het utility udosctl als onderdeel van het umsdos_progs package (met umssync en umssetup) maakt basisbewerkingen op directory's mogelijk (weergeven, verwijdering) onafhankelijk van de --linux-.--- en de DOS directory.

6. Basisprincipe

6.1 Introductie

Umsdos deelt Linux bestanden direct in naar Ms-DOS bestanden. Dit is een één op één omzetting. De bestandsinhoud wordt in het geheel niet gemanipuleerd. Umsdos werkt alleen op namen. Voor speciale bestanden (zoals bijvoorbeeld links en devices) introduceert het speciaal beheer.

Voor iedere directory is een bestand genaamd --linux-.---.

6.2 Umsdos kan het Ms-DOS bestandssysteem vervangen.

Aan Umsdos kan worden gedacht als een voor een algemeen doel bestemde superset van het Ms-DOS bestandssysteem van linux. In feite verschaft deze capaciteit of flexibiliteit veel verwarring over Umsdos. Hier krijg je te zien waarom. Probeer als volgt een nieuw geformatteerde DOS diskette te mounten:

mount -t umsdos /dev/fd0 /mnt

En geef dan de volgende opdrachten:

ls / >/mnt/LANGEBESTANDSNAAM
ls -l /mnt

Je krijgt het volgende resultaat

-rwxr-xr-x   1 root     root          302 Apr 14 23:25 langebestandsnaam

Tot zover lijkt het erop dat het Umsdos bestandssysteem niet meer doet (in feite zelfs helemaal niets) dan het gewone Ms-DOS bestandssysteem van Linux.

???

6.3 Directory promotie

Niet bepaald indrukwekkend tot dusverre. Dit is de truuk. Tenzij gepromoot zal een DOS directory met Umsdos op dezelfde wijze worden beheerd als het Ms-DOS bestandssysteem. Umsdos maakt gebruik van een speciaal bestand in iedere subdirectory om de omzetting tussen de uitgebreide mogelijkheden (lange naam, eigenaarschap, enz) van Umsdos en de beperking van het DOS bestandssysteem te bereiken. Dit bestand is voor Umsdos gebruikers onzichtbaar, maar zichtbaar wanneer je DOS boot. Om de DOS-partitie niet al te rommelig te maken met deze nutteloze (--linux-.---), is dit bestand nu optioneel. Als het afwezig is, gedraagt Umsdos zich net als Ms-DOS.

Wanneer een directory wordt gepromoot, zullen daaropvolgende bewerkingen worden uitgevoerd met de volledige semantiek normaal beschikbaar voor Unix en Linux gebruikers. En alle subdirectory's die daarna zullen worden aangemaakt zullen in stilte worden gepromoot.

Deze faciliteit maakt het je mogelijk je DOS partitie logisch te organiseren in DOS zaken en Linux zaken. Het is van belang te begrijpen dat die --linux-.--- bestanden wat ruimte innemen (gewoonlijk 2k per directory). DOS maakt in het algemeen gebruik van grote clusters (zo groot als 16k voor een 500meg partitie), dus het voorkomen dat overal --linux-.--- wordt geplaatst, kan je dag goed maken.

6.4 Hoe te promoten: /sbin/umssync

Een directory kan ten alle tijden worden gepromoot met /sbin/umssync. Het kan ten alle tijden worden gebruikt. Doe voor het promoten van een directory het volgende:

/sbin/umssync onderhoudt een bestaand --linux-.--- bestand. Het maakt het niet iedere keer opnieuw aan. Het voegt er gewoonweg ontbrekende regels aan toe (bestanden die zijn aangemaakt tijdens een DOS sessie). Het zal ook de bestanden die niet meer voorkomen in de DOS directory uit de --linux-.--- verwijderen. Daar komt de naam umssync vandaan. Het synchroniseert --linux-.--- met de onderliggende DOS directory.

6.5 /sbin/umssync tijdens de systeemstart gebruiken

Het is een goed idee een aanroep naar /sbin/umssync aan het einde van /etc/rc.d/rc.S te plaatsen, als het er nog niet instaat. De volgende opdracht is hier voor de meeste systemen goed voor:

/sbin/umssync -r99 -c -i+ /

De -c optie voorkomt dat umssync directory's promoot. Het zal alleen bestaande --linux-.--- bijwerken.

Deze opdracht is handig als je Linux directory's tijdens een DOS sessie wilt benaderen. Linux heeft geen efficiënte manier om aan te geven dat een directory is gewijzigd door DOS en dus kan Umsdos umssync niet de benodigde bewerking laten uitvoeren.

6.6 Hoe te DE-promoten

Verwijder het --linux-.--- bestand met DOS. Je zult hier spijt van krijgen.

6.7 Hoe zit het met bestanden aangemaakt tijdens een DOS sessie ?

Tenzij je umssync toepast op een directory waaronder de bestanden zijn toegevoegd of uit zijn verwijderd door DOS, zal je een aantal problemen bemerken:

7. Installatie/DE-installatie en een aantal truuks

De installatie van Umsdos is niet veel anders als de installatie van een doodgewoon Linux systeem (gebaseerd op Ext2).

Er zijn twee belangrijke verschillen.

7.1 De pseudo-root /mnt/linux

De normale stappen voor een installatie bestaan uit:

  1. Het instellen van een partitie met fdisk en het formatteren ervan.
  2. Het mounten als /mnt relatief aan je installatie rootdisk.
  3. Het kopiëren van alle packages naar /mnt.

Met Umsdos, is stap 1 niet vereist (was het doen van Umsdos niet een herformattering uit te voeren ?).

Het is mogelijk een Umsdos systeem te installeren door gewoon alle packages naar /mnt te kopiëren. Dit zal zeker werken. Maar er zullen een boel subdirectory's op je DOS rootdirectory (C:) worden aangemaakt wat je vast niet prettig vindt. Dit is de reden dat alle Umsdos installaties gebruik maken van de pseudo-root. En dit is het belangrijkste verschil tussen een gewone Ext2 installatie en een Umsdos installatie: alle bestanden worden gekopieerd naar /mnt/linux.

7.2 Prepareren van /mnt/linux

/mnt/linux is geen gewone directory. Het moet zijn gepromoot zodat het correct de lange bestandsnamen en speciale bestanden (links, device) van Linux af zal handelen. De stappen die nodig zijn om /mnt/linux in te stellen zijn:

  1. mkdir /mnt/linux
  2. umssync /mnt/linux

Dat was het!

7.3 Verzeker je ervan dat /mnt/linux correct is ingesteld

Zelfs al is de setup van /mnt/linux tamelijk simpel, toch zijn er nog veel installatiepackages waarbij het fout gaat. Hoe kan dit?

Het grootste installatieprobleem is afkomstig van een incompatibel umssync programma. Umsdos is in linux 1.1.88 bijgewerkt (kan het me niet precies herinneren) en in umssync bleef een fout onontdekt. Om in de Linux gemeenschap verwarring te voorkomen, werd besloten het compatibiliteiten niveau vereist voor alle Umsdos tools te verhogen. Oude versies van de tools werden eenvoudigweg verworpen.

Het lijkt erop dat veel distributies de umssync utility op de installatiedisk niet bijwerkte.

Er zijn nog steeds veel van dergelijke distributies in omloop. Het uiteindelijke resultaat is dat de directory /mnt/linux helemaal niet is gepromoot en alle lange bestandsnamen af zal kappen en alle speciale bestanden zal verwerpen.

Het is mogelijk in een zeer vroeg beginstadium van de installatie een test uit te voeren om erachter te komen of er iets fout ging. Dankzij het pseudo console mechanisme van Linux, kun je dat doen zonder het installatieprogramma te verlaten. Voer de volgende stapppen uit:

  1. Druk op Alt-F2 (Alt toets tegelijkertijd indrukken met de F2 toets).
  2. login als root.
  3. cd /mnt/linux Als dit niet lukt, probeer je het te vroeg. Een goed moment is dit aan het einde van de packages selectie te doen.
  4. >TOTO
  5. ls -l Je zou een leeg bestand TOTO in hoofdletters te zien moeten krijgen. Als je het in kleine letters ziet, dan is er iets mis. Probeer nogmaals de umssync stap. umssync kan zonder probleem meerdere malen worden gebruikt. umssync . Probeer nogmaals de TOTO test, als er geen foutmelding verschijnt. Als TOTO prima lijkt, dan is alles OK. Als er iets niet goed is aan de installatie, sla je het op. en gaat verder
  6. Druk op Alt-F1 om terug naar het installatiescherm te gaan.

Als de test mislukt, dan bestaat de beste correctie hieruit een nieuwere installatie rootdisk op te halen. Je kunt deze rootdisk over het algemeen corrigeren door een nieuwere versie van umssync te installeren. Dit is niet moeilijk maar het vereist een werkend Linux systeem. Je hoeft slechts de rootdisk diskette te mounten en het geleverde umssync door een nieuwe te vervangen.

7.4 Oops releasing pseudo root ...

De meeste Umsdos installaties die niet lukken, drukken deze vreemde melding af. Dit is geen bug in Umsdos ook al ziet de melding er wat vreemd uit. Hier zijn de bekende oorzaken:

Helaas produceren de eerste twee (installatieproblemen) een compleet onbruikbare installatie. De-installeer het (Zie de volgende sectie) en installeer het opnieuw.

7.5 Hoe een Umsdos te de-installeren

Het aardige van Umsdos en zijn pseudo-root mechanisme is dat je het zonder moeite kunt DE-installeren. Je boot gewoon DOS en verwijdert de linux directory met de daaronderliggende directory's. Dat is alles. Voor Umsdos zijn geen speciale drivers in config.sys nodig, noch maakt het iets speciaals aan buiten de linux directory.

7.6 Een Umsdos systeem naar een andere DOS drive verplaatsen

Dit kan worden gedaan vanuit Linux of vanuit DOS. Je hoeft hiervoor alleen de linux directory van de ene drive naar de andere recursief te kopiëren. Daarna zul je het bootmechanisme aan moeten passen (gewoonlijk de loadlin opdracht) en het bestand /etc/fstab.

Umsdos kan bestaan op iedere DOS drive. Het is niet nodig het op de C: drive te installeren, noch is het belangrijk dat op de eerste harddrive te hebben. Het doet er in het geheel niet toe.

In feite kun je besluiten verscheidene Umsdos installaties te hebben op verschillende drives om er bijvoorbeeld mee te experimenteren.

7.7 Over het installeren van 50 Umsdos systemen.

Hoe zit het met het installeren van een boel Linux systemen in zo min mogelijk tijd?

Umsdos systemen leven in een DOS wereld. Je kunt hier voordeel uit behalen als je Linux op eenvoudige wijze wilt installeren.

Je kunt een Umsdos systeem op je site installeren en configureren. Wanneer je tevreden bent met de configuratie en de verschillende packages die je hebt geïnstalleerd, kun je in DOS booten en de complete linux directory naar de DOS file server kopiëren. Dan ga je naar een ander DOS station en kopieert eenvoudigweg de bestanden vanaf de netwerkdrive naar de lokale drive. Dat is alles. Pas slechts het bootscript (Loadlinx) aan.

Met minimale aanpassingen (hostnaam, ip-nummer) is iedereen in staat in een kwestie van minuten een Linux systeem te installeren.

Geïnteresseerde lezers merken wellicht op dat het installeren van Linux systemen door het kopiëren van het draaiende systeem ook werkt voor ieder ander Linux systeem, waaronder die gebaseerd op Ext2.

Het mooie van Linux is dat er geem verborgen bestanden zijn die moeten worden geïnstalleerd door het magische installatieprogramma.

8. Instellen van een Linux sectie op een DOS partitie

Umsdos heeft zelfs nut voor Ext2 (het bij Linux behorende bestandssysteem) gebruikers. Een gebruikelijk scenario is het volgende:

Umsdos kan hier je dag goedmaken. Je kunt een Linux directory in de DOS partitie aanmaken en dit zonder beperkingen gebruiken voor Linux. Stel bijvoorbeeld dat je een nieuwe directory genaamd "extra" op de C: drive wilt. En je wilt dat deze directory zich gedraagt als een gewone Linux directory. Doe dan dit (in de veronderstelling dat C: /dev/hda1 is).

mkdir /c
/sbin/mount -t umsdos /dev/hda1 /c
mkdir /c/extra
umssync /c/extra

Je moet hier root voor zijn.

Door /etc/fstab zo in te stellen, zul je altijd toegang hebben tot de /c/extra directory.

9. UMSDOS Waarom

Uitleggen hoe een Umsdos te installeren of ermee om te gaan is niet voldoende. De meeste mensen zijn op zoek naar advies of ze Umsdos wel of niet zullen gebruiken.

9.1 Het doel van Umsdos

Het doel van Umsdos was de installatie van Linux te vereenvoudigen. Een ander doel was de de-installatie ervan makkelijker te maken. De gedachte erachter was het verspreiden van Linux te promoten. Het installeren van een nieuw OS op een systeem is altijd lastig. OS/2 bijvoorbeeld zal met veel plezier je C: root met een boel nieuwe directory's vervuilen. Als je net zo slim bent als ik, zal het je config.sys en autoexec.bat bestanden ook verwijderen. :-(

De pseudo-root faciliteit van Umsdos voorkomt deze ongewenste handeling. Linux kan zonder neveneffect worden gedeïnstalleerd.

9.2 Wie heeft het nodig

Als je een kleine harddrive hebt, zal Umsdos het je mogelijk maken diskruimte tussen DOS en Linux te delen. Een disk onder de 300 megs in naar mijn mening een kleine disk. Deze mening is gebaseerd op de grootte van de tegenwoordig beschikbare packages. Een populaire tekstverwerker kan wel 70 megabytes aan ruimte innemen als je alle mogelijkheden selecteert.

Als je een grotere drive hebt, kun je een Linux partitie met het Ext2 in overweging nemen. Ext2 maakt gebruik van een kleinere clustergrootte dan DOS (1k) dus het installeren van veel kleine bestanden vraagt om minder ruimte dan op een Umsdos partitie.

9.3 Performance

Het volgende geldt voor Umsdos in vergelijking met Ext2.