<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> <TITLE>Linux UMSDOS HOW-TO: Principi base</TITLE> <LINK HREF="UMSDOS-HOWTO-6.html" REL=next> <LINK HREF="UMSDOS-HOWTO-4.html" REL=previous> <LINK HREF="UMSDOS-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="UMSDOS-HOWTO-6.html">Avanti</A> <A HREF="UMSDOS-HOWTO-4.html">Indietro</A> <A HREF="UMSDOS-HOWTO.html#toc5">Indice</A> <HR> <H2><A NAME="s5">5.</A> <A HREF="UMSDOS-HOWTO.html#toc5">Principi base</A></H2> <H2><A NAME="ss5.1">5.1</A> <A HREF="UMSDOS-HOWTO.html#toc5.1">Introduzione</A> </H2> <P><EM>Umsdos</EM> mappa i file <EM>Linux</EM> direttamente in file <EM>Ms-DOS</EM>. Questa è l'unica trasformazione. Il contenuto dei file non è assolutamente modificato. <EM>Umsdos</EM> lavora solo sui nomi. Per file speciali (link e dispositivi per esempio) è introdotta una gestione speciale.</P> <P>Per ogni directory c'è un file chiamato <CODE>--linux-.---</CODE>.</P> <H2><A NAME="ss5.2">5.2</A> <A HREF="UMSDOS-HOWTO.html#toc5.2"><EM>Umsdos</EM> può sostituire il filesystem <EM>Ms-DOS</EM>.</A> </H2> <P>L'<EM>Umsdos</EM> è un superset per usi generali del filesystem <EM>Ms-DOS</EM> di Linux. In effetti questa capacità e flessibilità crea molta confusione su <EM>Umsdos</EM>. Vediamo il perché. Provate a montare un floppy appena formattato <EM>DOS</EM> come qui.</P> <P> <BLOCKQUOTE><CODE> <PRE> mount -t umsdos /dev/fd0 /mnt </PRE> </CODE></BLOCKQUOTE> </P> <P>E scrivere questo:</P> <P> <BLOCKQUOTE><CODE> <PRE> ls / >/mnt/LONGFILENAME ls -l /mnt </PRE> </CODE></BLOCKQUOTE> </P> <P>Si otterrà il seguente risultato</P> <P> <BLOCKQUOTE><CODE> <PRE> -rwxr-xr-x 1 root root 302 Apr 14 23:25 longfile </PRE> </CODE></BLOCKQUOTE> </P> <P>Sembra che il filesystem <EM>Umsdos</EM> non sia molto di più (in realtà non proprio) del normale filesystem <EM>Ms-DOS</EM> di <EM>Linux</EM>.</P> <H2><A NAME="ss5.3">5.3</A> <A HREF="UMSDOS-HOWTO.html#toc5.3">Promozione di directory</A> </H2> <P>Qui sta il trucco. Finché non si promuove una directory <EM>DOS</EM>, essa verrà gestita allo stesso modo sia dal filesystem <EM>Ms-DOS</EM> che dal filesystem <EM>Umsdos</EM>. <EM>Umsdos</EM> usa uno speciale file in ogni subdirectory per registrare le traduzioni tra le capacità estese (nomi lunghi, proprietari ecc.) del filesystem <EM>Umsdos</EM> e i limiti di <EM>Ms-DOS</EM>. Questo file è invisibile agli utenti <EM>Umsdos</EM>, ma visibile quando si avvia <EM>DOS</EM>. Per evitare di ingombrare la partizione <EM>DOS</EM> con questi file (<CODE>--linux-.---</CODE>) non utilizzati, il file è ora opzionale. Se assente, <EM>Umsdos</EM> diventa simile a <EM>Ms-DOS</EM>.</P> <P>Quando una directory è promossa, ogni operazione verrà fatta con la piena semantica normalmente disponibile agli utenti <EM>Unix</EM> e <EM>Linux</EM>. E tutte le subdirectory create successivamente saranno silenziosamente promosse.</P> <P>Questa caratteristica permette di organizzare logicamente la partizione <EM>DOS</EM> in zone <EM>DOS</EM> e zone <EM>Linux</EM>. È importante capire che questi file <CODE>--linux-.---</CODE> occupano spazio (generalmente 2k per directory). Il <EM>DOS</EM> generalmente usa cluster larghi (grandi 16k per partizioni da 500 Mb), quindi evitare di mettere <CODE>--linux-.---</CODE> ovunque permette di guadagnare spazio.</P> <H2><A NAME="ss5.4">5.4</A> <A HREF="UMSDOS-HOWTO.html#toc5.4">Come promuovere: <CODE>/sbin/umssync</CODE></A> </H2> <P>Una directory può essere promossa in ogni momento usando <CODE>/sbin/umssync</CODE>. Promuovere una directory significa fare le seguenti operazioni</P> <P> <UL> <LI>Creare un <CODE>--linux-.---</CODE>. </LI> <LI>Stabilire una relazione tra <CODE>--linux-.---</CODE> e l'attuale contenuto della directory.</LI> </UL> </P> <P><CODE>/sbin/umssync</CODE> mantiene un esistente file <CODE>--linux-.---</CODE>. Non lo crea da zero ogni volta. Semplicemente aggiunge le informazioni mancanti (file creati durante una sessione <EM>DOS</EM>). Esso rimuove anche i file che non esistono più nella directory <EM>DOS</EM> da <CODE>--linux-.---</CODE>. <CODE>umssync</CODE> prende il nome da questo. Esso sincronizza <CODE>--linux-.---</CODE> con la sottostante directory <EM>DOS</EM>.</P> <H2><A NAME="ss5.5">5.5</A> <A HREF="UMSDOS-HOWTO.html#toc5.5">Usare <CODE>/sbin/umssync</CODE> all'avvio</A> </H2> <P>È una buona idea mettere una chiamata a <CODE>/sbin/umssync</CODE> alla fine del file <CODE>/etc/rc.d/rc.S</CODE> se non c'è già. Il comando seguente è adeguato per molti sistemi:</P> <P> <BLOCKQUOTE><CODE> <PRE> /sbin/umssync -r99 -c -i+ / </PRE> </CODE></BLOCKQUOTE> </P> <P>L'opzione <CODE>-c</CODE> previene <CODE>umssync</CODE> dal promuovere directory. Esso aggiorna solamente i <CODE>--linux-.---</CODE> esistenti.</P> <P>Questo comando è utile se si accede alla directory <EM>Linux</EM> durante una sessione <EM>DOS</EM>. <EM>Linux</EM> non ha mezzi efficienti per capire che una directory è stata modificata da <EM>DOS</EM>, così <EM>Umsdos</EM> non può fare l'operazione <EM>umssync</EM> quando necessario.</P> <H2><A NAME="ss5.6">5.6</A> <A HREF="UMSDOS-HOWTO.html#toc5.6">Come UN-promuovere</A> </H2> <P>Rimuovere il file <CODE>--linux-.---</CODE> usando il <EM>DOS</EM>. Tutto qui.</P> <H2><A NAME="ss5.7">5.7</A> <A HREF="UMSDOS-HOWTO.html#toc5.7">Cosa succede con i file creati durente una sessione <EM>DOS</EM>?</A> </H2> <P>Finché non si usa <CODE>umssync</CODE> su una directory dove i file sono stati aggiunti o rimossi da <EM>DOS</EM>, si noteranno alcuni problemi:</P> <P> <UL> <LI>Non va in crash e nemmeno crea problemi maggiori, soltanto alcune noie. </LI> <LI>I file creati da <EM>DOS</EM> <UL> <LI>sono invisibili in <EM>Linux</EM>;</LI> <LI>quando si crea un file con lo stesso nome si otterrà un messaggio di errore indicante che il file esiste già;</LI> <LI>questo crea più confusione che problemi reali. Non viene danneggiato il filesystem.</LI> </UL> </LI> <LI>I file eliminati da <EM>DOS</EM> non creano problemi. <EM>Umsdos</EM> noterà l'assenza al primo accesso. Verrà stampato un messaggio (e generalmente riportato in <CODE>/var/adm/syslog</CODE>). </LI> </UL> </P> <HR> <A HREF="UMSDOS-HOWTO-6.html">Avanti</A> <A HREF="UMSDOS-HOWTO-4.html">Indietro</A> <A HREF="UMSDOS-HOWTO.html#toc5">Indice</A> </BODY> </HTML>