Umsdos förvandlar (map) Linux-filer direkt till MS-DOS-filer. Detta är en envägsomvandling. Filernas innehåll påverkas inte alls. Umsdos bearbetar endast namnen. För speciella filer (t.ex. länkar och andra enheter) använder det speciella metoder.
För varje katalog finns det en fil som heter --linux-.---
.
Du kan tänka på Umsdos som ett generellt tillägg till Linux MS-DOS-filsystem. Denna förmåga och flexibilitet skapar mycket förvirring angående Umsdos. Varför? Testa ett montera en nyformatterad DOS-diskett på detta sätt:
mount -t umsdos /dev/fd0 /mnt
Och gör detta:
ls / >/mnt/LONGFILENAME
ls -l /mnt
Du får följande resultat:
-rwxr-xr-x 1 root root 302 Apr 14 23:25 longfile
Så långt verkar det inte som om Umsdos-filsystemet gör mycket mer (eller inget alls mer) än det vanliga MS-DOS-filsystemet under Linux.
???
Inte speciellt imponerande hittills. Tricket är som följer. Om en
DOS-katalog inte är promoverad kommer den av Umsdos
behandlas på samma sätt som en i MS-DOS-filsystemet. Umsdos
använder en speciellt fil i varje underkatalog för att åstadkomma
översättningen mellan de utökade funktionerna (långa namn, ägarskap
osv.) som Umsdos har gentemot DOS-filsystemet. Denna fil
syns inte för Umsdos-användare, men är synlig när du bootar
DOS. För att undvika att utan anledning fylla upp
DOS-partitionen med dessa filer (--linux-.---
) så är denna
fil nu valfri. Om den inte finns där så beter sig Umsdos som
MS-DOS.
När en katalog promoveras så kommer varje efterföljande åtgärd utföras med den fulla semantik som vanligtvis är tillgänglig för Unix- och Linux-användare. Alla underkataloger kommer även att promoveras i det tysta.
Denna funktioner låter dig dela upp din DOS-partition mellan
DOS- och Linux-grejer på ett logiskt vis. Det är viktigt att
förstå att de där --linux-.---
-filerna tar upp en del utrymme
(vanligtvis runt 2k per katalog). DOS använder vanligtvis ganska
stora kluster (så stora som 16k för en partition på 500 meg), så att
undvika att stoppa in --linux-.---
överallt kan bespara dig en
hel del problem.
/sbin/umssync
En katalog kan promoveras när som helst med hjälp av
/sbin/umssync
. Det kan användas när som helst. För att
upgradera en katalog, utför följande:
--linux-.---
.--linux-.---
och
katalogens nuvarande innehåll./sbin/umssync
behåller eventuella redan existerande
--linux-.---
-filer. Det skapar inte en ny varje gång. Det lägger
bara till nya poster i dem (filer som skapats under en
DOS-session). Det tar också bort filer som inte längre existerar
från --linux-.---. umssync
tar sitt namn från just denna
funktion: det synkar --linux-.--- med den underliggande
DOS-katalogen.
/sbin/umssync
under bootningen
Det är en bra idé att lägga in ett anrop till /sbin/umssync
på slutet av din /etc/rc.d/rc.S om det inte redan finns där. Följande
kommando duger på de flesta system:
/sbin/umssync -r99 -c -i+ /
Argumentet -c
förhindrar umssync
från att att promovera
kataloger. Det gör att det bara uppdaterar befingliga --linux-.---
.
Detta kommando är användbart om du gör något med Linux-katalogen under en DOS-session. Linux har inget bra sätt att ta reda på om en katalog har modifierats av DOS, så Umsdos kan inte automatiskt köra umssync när det behövs.
Ta bort --linux-.---
-filen från DOS. Du kommer ångra dig.
Om du inte kör umssync
på en katalog där filer har lagts till
eller tagits bort av DOS, så kommer du stöta på några problem:
/var/adm/syslog
).