jacques@solucorp.qc.ca
,bokkie@nl.linux.org
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.
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.
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).
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.
De home site voor Umsdos is sunsite.unc.edu. Kijk in de
directory /pub/Linux/system/Filesystems/umsdos
.
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.
Jacques Gelinas jacques@solucorp.qc.ca
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:
C:\LINUX\BIN
C:\LINUX\ETC
C:\LINUX\LIB
C:\LINUX\ROOT
C:\LINUX\SBIN
C:\LINUX\TMP
C:\LINUX\USR
C:\LINUX\VAR
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.
/bin
/etc
/lib
/root
/sbin
/tmp
/usr
/var
Aan deze lijst, voegt het een nieuwe toe, genaamd DOS
. Dit is een
virtuele directory.
/mnt/
mount, zal je
de linux-directory's allen aantreffen in
/mnt/linux/bin, /mnt/linux/etc
enzovoort.
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.
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 /
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" ).
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.
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:
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.
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.
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.
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-.---
.
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.
???
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.
/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:
--linux-.---
aan.--linux-.---
en de huidige inhoud van de
directory./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.
/sbin/umssync
tijdens de systeemstart gebruikenHet 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.
Verwijder het --linux-.---
bestand met DOS. Je zult hier
spijt van krijgen.
Tenzij je umssync
toepast op een directory waaronder de
bestanden zijn toegevoegd of uit zijn verwijderd door
DOS, zal je een aantal problemen bemerken:
/var/adm/syslog
).De installatie van Umsdos is niet veel anders als de installatie van een doodgewoon Linux systeem (gebaseerd op Ext2).
Er zijn twee belangrijke verschillen.
/mnt/linux
De normale stappen voor een installatie bestaan uit:
/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
.
/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:
mkdir /mnt/linux
umssync /mnt/linux
Dat was het!
/mnt/linux
correct is ingesteldZelfs 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:
Alt-F2
(Alt
toets tegelijkertijd
indrukken met de F2
toets).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.>TOTO
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 verderAlt-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.
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:
/mnt
wordt gemount, de /mnt/linux
directory
wordt aangemaakt en umssync
erop toepast.
Hier komen de meeste problemen vandaan. De meeste gebruikers
vergeten gewoon de stap "setup target partition" en gaan direct
naar de rest van de installatie. Aangezien /mnt
reeds
is gemount, wordt deze fout niet opgemerkt.
Dit betekent dat /mnt/linux
niet goed werd
aangemaakt (niet gepromoot). Alle speciale
bestanden en links en lange namen kunnen niet op de
juiste wijze worden aangemaakt./mnt/linux
werd niet juist ingesteld. In het algemeen
veroorzaakt door een onjuist umssync
utility op de
installatie rootdisk./etc/init
ontbrak. init
is nu te vinden in
/sbin
. Je kunt het corrigeren door een nieuwere kernel
op te halen. Dit is aan te bevelen omdat een andere bug niet
aan de oppervlakte was gekomen en deze dus in
1.2.2 niet werd gecorrigeerd.
Als je niet kunt upgraden, doe je het volgende:
mount -t umsdos /dev/hdXX /mnt
/dev/hdXX
is hier je DOS partitie.cd /mnt/linux/etc
ln -s ../sbin/init init
cd /
Ctrl-Alt-Del
Helaas produceren de eerste twee (installatieproblemen) een compleet onbruikbare installatie. De-installeer het (Zie de volgende sectie) en installeer het opnieuw.
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.
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.
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.
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.
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.
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.
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.
Het volgende geldt voor Umsdos in vergelijking met Ext2.
FAT
, te vinden
aan het begin van de harddrive. Het DOS bestandssysteem is
hierom waarschijnlijk kwetsbaarder.