Linux UMSDOS HOW-TO

Jacques Gelinas, jacques@solucorp.qc.ca

v1.1, 13 novembre 1995
Umsdos è un file system Linux. Esso provvede un'alternativa al filesystem EXT2. La proprietà principale consiste nel poter condividere facilmente i dati con Ms-DOS utilizzando la stessa partizione. Questo documento spiega prima come usare Umsdos in configurazioni diverse, poi spiega queste operazioni e tenta di provvedere alcune informazioni per dare la possibilità di decidere se Umsdos è una buona scelta (vedere ``Perché UMSDOS'' in fondo al documento). Questo documento è stato tradotto da Michele Dalla Sivestra, dalla@maya.dei.unipd.it, ultima revisione il 05/02/96.

1. UMSDOS: Cos'è?

1.1 Storia

Il progetto Umsdos fu iniziato nel 1992 e reso disponibile in rete nel gennaio 1994 come patch. Esso fu incluso nella distribuzione standard del kernel in luglio, partendo dal kernel 1.1.36.

Umsdos fu poi adottato nella distribuzione Slackware anche se non era ancora ufficialmente incluso nel kernel.

Umsdos fu migliorato dal kernel 1.1.60. Le sue performance sono state notevolmente potenziate, specialmente in scrittura. Dalla versione 1.1.70 è abbastanza stabile.

L'errore più grosso fu risolto in Linux 1.2.2. Questo bug causava angoscia agli utenti (alcuni file venivano silenziosamente rinominati, dando l'impressione che fossero eliminati). Attenzione che la Slackware 2.2 ha la release del kernel 1.2.1, per cui ha ancora questo bug.

1.2 Disponibilità

Esso è disponibile come patch per il kernel 1.0.x. È compreso con il kernel 1.2. Esso può essere compilato o caricato come modulo. Attenzione: se si intende caricare Umsdos come modulo, si deve usare anche il fs Ms-DOS come modulo. Questo viene da una limitazione nel sistema dei moduli (alcuni simboli sono solo esportati quando i driver sono installati come moduli).

1.3 Distrizioni supportanti Umsdos

Penso che solo Slackware supporti umsdos. Potrei sbagliarmi, quindi mandatemi informazioni per correggere questo.

1.4 Sito base

L'home site di Umsdos è sunsite.unc.edu. Vedere nella directory /pub/Linux/system/Filesystems/umsdos.

1.5 Documentazione tecnica

C'è abbastanza documentazione sulle caratteristiche interne di Umsdos. È disponibile sia in formato HTML e sia testo insieme ai file di utilità.

Per quello che so, la versione HTML non è ancora disponibile in linea su un sito web. È necessario scaricarla, separare i file (un-tar) e leggerla localmente.

1.6 Chi lo scrisse

Jacques Gelinas, jacques@solucorp.qc.ca.

2. Umsdos come partizione di root

2.1 Il concetto di pseudo-root

Con Umsdos, Linux può essere installato in una partizione standard DOS. Linux è installato come secondo (o terzo) S. O. della partizione. Per evitare collisioni nei nomi (potrebbe esserci già una directory bin o tmp nel drive C:), Umsdos usa un piccolo trucco: lo pseudo-root.

Tutti i file Linux sono installati in una sottodirectory DOS chiamata linux, generalmente C:\LINUX. La normale struttura directory Linux/Unix finisce lì. Così si ha

Quando si avvia Umsdos, esso esplora se esiste la directory linux e poi /linux/etc. Se esistono, viene attivata la modalità pseudo-root.

Generalmente, la modalità pseudo-root imposta la partizione di root a C:\LINUX dando l'aspetto convenzionale delle directory di Unix.

A questa lista ne viene aggiunta una nuova chiamata DOS. Questa è una directory virtuale.

2.2 Cose da sapere sullo pseudo-root

3. Vari aspetti sul funzionamento di Umsdos

3.1 Opzioni di mount

Si possono usare le stesse opzioni di mount come per i filesystem Ms-DOS. L'opzione conv= è ambigua su un sistema Umsdos. Suggerisco di evitarla. Generalmente le opzioni da guardare sono

Ricordarsi che la gestione Umsdos non promuove le directory nello stesso modo dei filesystem Ms-DOS. Le opzioni precedenti sono applicate globalmente a tutte le directory non promosse. uid imposta il proprietario di default, gid imposta il gruppo di default e umask imposta i permessi di default.

3.2 Impostare i parametri per la directory di root

umssetup fu creato per impostare durante il funzionamento il proprietario della partizione di root. Per altre partizioni Umsdos si possono usare le opzioni di mount oppure umssetup. Il modo migliore per le partizioni non di root è di mettere le opzini in /etc/fstab. Qui c'è un esempio. Mettete questo in /etc/rc.d/rc.S.

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

3.3 Swap o non swap

Usare un file di swap è generalmente più lento di una partizione di swap. Esso è comunque molto più flessibile. Si può impostare un file di swap in una partizione Umsdos nello stesso modo con cui lo si fa con ogni altro filesystem Linux. Per esempio, per impostare un file di swap da 8 Mb nella directory di root:

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

Fatto questo, inserire la linea seguente in /etc/fstab

/swap   swap    swap    default         

E il file di swap verrà attivato ad ogni avvio (generalmente c'è un ``swapon -a'' in /etc/rc.d/rc.S).

4. Come avviare un sistema Umsdos

4.1 Loadlin

Il pacchetto lodlin15.tgz disponibile a sunsite.unc.edu in /pub/Linux/system/Bootutils. Questa utility è adatta per avviare un sistema Umsdos. Generalmente tutto quello che bisogna fare è

Avviare DOS
C:\>loadlinx zimage root=D:

dove zimage è una normale immagine kernel (compressa) semplicemente copiata nel drive DOS. D: è il drive DOS dove è stato installato Linux.

4.2 Da floppy

Avviare un sistema Umsdos da floppy non è diverso da avviare un sistema Ext2. È necessaria un'immagine del kernel configurata per localizzare la partizione Umsdos di root. Questo viene fatto normalmente usando il comando rdev. La seguente sequenza inizializza un'immagine e la mette su un floppy.

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

Se questo sembra confuso, formattare un disco di avvio DOS e mettere in esso i seguenti file

e impostare l'autoexec.bat come questo

loadlinx zimage rw root=C:

4.3 LILO

LILO, il caricatore ufficiale di Linux può anche essere usato all'avvio di un sistema Umsdos. Comunque non ho esperienza con questo. Dal 1.1.60 dovrebbe funzionare. Scrivetemi una email se sapete qualcosa.

4.4 Come ottimizzare una partizione Umsdos

Può essere fatto usando un qualsiasi strumento DOS. Non c'è niente di particolare sui file prodotti da Umsdos. E Umsdos non si aspetta niente di particolare (struttura directory, intestazioni directory...) dal filesystem sottostante.

Da quello che so non ci sono strumenti Linux per fare ciò.

4.5 Aspetti avanzati

Umsdos si affida sul file --linux-.--- il quale si affida sulla directory DOS. Alcuni utenti potrebbero voler provare un po'. L'utility udosctl inclusa nel pacchetto umsdos_progs (contenente umssync e umssetup) permette semplici operazioni sulle directory (liste, eliminazioni) indipendentemente dal file --linux-.--- e dalla directory DOS.

5. Principi base

5.1 Introduzione

Umsdos mappa i file Linux direttamente in file Ms-DOS. Questa è l'unica trasformazione. Il contenuto dei file non è assolutamente modificato. Umsdos lavora solo sui nomi. Per file speciali (link e dispositivi per esempio) è introdotta una gestione speciale.

Per ogni directory c'è un file chiamato --linux-.---.

5.2 Umsdos può sostituire il filesystem Ms-DOS.

L'Umsdos è un superset per usi generali del filesystem Ms-DOS di Linux. In effetti questa capacità e flessibilità crea molta confusione su Umsdos. Vediamo il perché. Provate a montare un floppy appena formattato DOS come qui.

mount -t umsdos /dev/fd0 /mnt

E scrivere questo:

ls / >/mnt/LONGFILENAME
ls -l /mnt

Si otterrà il seguente risultato

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

Sembra che il filesystem Umsdos non sia molto di più (in realtà non proprio) del normale filesystem Ms-DOS di Linux.

5.3 Promozione di directory

Qui sta il trucco. Finché non si promuove una directory DOS, essa verrà gestita allo stesso modo sia dal filesystem Ms-DOS che dal filesystem Umsdos. Umsdos usa uno speciale file in ogni subdirectory per registrare le traduzioni tra le capacità estese (nomi lunghi, proprietari ecc.) del filesystem Umsdos e i limiti di Ms-DOS. Questo file è invisibile agli utenti Umsdos, ma visibile quando si avvia DOS. Per evitare di ingombrare la partizione DOS con questi file (--linux-.---) non utilizzati, il file è ora opzionale. Se assente, Umsdos diventa simile a Ms-DOS.

Quando una directory è promossa, ogni operazione verrà fatta con la piena semantica normalmente disponibile agli utenti Unix e Linux. E tutte le subdirectory create successivamente saranno silenziosamente promosse.

Questa caratteristica permette di organizzare logicamente la partizione DOS in zone DOS e zone Linux. È importante capire che questi file --linux-.--- occupano spazio (generalmente 2k per directory). Il DOS generalmente usa cluster larghi (grandi 16k per partizioni da 500 Mb), quindi evitare di mettere --linux-.--- ovunque permette di guadagnare spazio.

5.4 Come promuovere: /sbin/umssync

Una directory può essere promossa in ogni momento usando /sbin/umssync. Promuovere una directory significa fare le seguenti operazioni

/sbin/umssync mantiene un esistente file --linux-.---. Non lo crea da zero ogni volta. Semplicemente aggiunge le informazioni mancanti (file creati durante una sessione DOS). Esso rimuove anche i file che non esistono più nella directory DOS da --linux-.---. umssync prende il nome da questo. Esso sincronizza --linux-.--- con la sottostante directory DOS.

5.5 Usare /sbin/umssync all'avvio

È una buona idea mettere una chiamata a /sbin/umssync alla fine del file /etc/rc.d/rc.S se non c'è già. Il comando seguente è adeguato per molti sistemi:

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

L'opzione -c previene umssync dal promuovere directory. Esso aggiorna solamente i --linux-.--- esistenti.

Questo comando è utile se si accede alla directory Linux durante una sessione DOS. Linux non ha mezzi efficienti per capire che una directory è stata modificata da DOS, così Umsdos non può fare l'operazione umssync quando necessario.

5.6 Come UN-promuovere

Rimuovere il file --linux-.--- usando il DOS. Tutto qui.

5.7 Cosa succede con i file creati durente una sessione DOS?

Finché non si usa umssync su una directory dove i file sono stati aggiunti o rimossi da DOS, si noteranno alcuni problemi:

6. Installazione/Disinstallazione e alcuni trucchi

L'installazione di Umsdos non è molto diversa dall'installazione di un filesystem ordinario (es. Ext2) Linux.

Ci sono due principali differenze.

6.1 Lo pseudo-root /mnt/linux

La normale sequenza di operazioni per l'installazione è

  1. Impostare una partizione con fdisk e formattarla.
  2. Montarla come /mnt relativa al root disk di installazione.
  3. Copiare tutti i pacchetti in /mnt

Con Umsdos, il primo passo non è richiesto (non è lo scopo di Umsdos il non dover formattare?).

È possibile installare un sistema Umsdos semplicemente copiando tutti i pacchetti in /mnt. Questo certamente funziona. Ma questo creerà una marea di subdirectory nella root directory DOS (C:\) e non è quello che si vorrebbe. Questa è la ragione per cui tutte le installazioni Umsdos usano lo pseudo-root. E questa è la maggior differenza tra una normale installazione Ext2 e Umsdos: tutti i file sono copiati in /mnt/linux.

6.2 Preparare /mnt/linux

/mnt/linux non è una directory ordinaria. Essa è stata promossa in modo da gestire correttamente i filename lunghi di Linux e i file speciali (link, dispositivi). I passi richesti per impostare /mnt/linux sono:

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

È tutto!

6.3 Come assicurarsi che /mnt/linux sia impostata correttamente

Anche se l'impostazione di /mnt/linux è molto semplice, ci sono alcuni pacchetti di installazione che la sbagliano. Come è possibile?

I maggiori problemi di installazione nascono da una incompatibilità del programma umssync. Umsdos è stato aggiornato in Linux 1.1.88 (non ricordo esattamente) e una falla fu scoperta in umssync. Per evitare confusione nella comunità di Linux, fu deciso di aumentare il livello richesto per tutti gli strumenti Umsdos. Le versioni precedenti sono semplicemente rifiutate.

Sembra che molte distribuzioni non abbiano aggiornato l'utility umssync nel loro disco di installazione.

Ci sono molte distribuzioni come queste. Il risultato è che la directory /mnt/linux non è promossa, e quindi verranno troncati i nomi lunghi e rifiutati tutti i file speciali.

È possibile fare un test all'inizio dell'installazione per vedere se qualcosa non va. Grazie al meccanismo della pseudo console di Linux, si può farlo senza lasciare il programma di installazione. Fare i seguenti passi:

  1. Premere Alt-F2 (il tasto Alt e contemporaneamente il tasto F2).
  2. Loggarsi come root
  3. cd /mnt/linux Se questo fallisce, si sta facendo la prova troppo presto. Il momento migliore per farlo è alla fine della selezione dei pacchetti.
  4. >TOTO
  5. ls -l Si dovrebbe vedere un file vuoto TOTO in maiuscolo. Se lo si vede in minuscolo, qualcosa è andato storto. Provare a fare di nuovo umssync. umssync può essere usato tutte le volte che si vuole senza problemi. umssync . Se non ci sono messaggi di errore, provare il test TOTO di nuovo. Se TOTO appare, allora tutto è OK. A volte è un difetto di queste installazioni, ma è stato posto rimedio. Continuare.
  6. Premere Alt-F1 per tornare nella schermata di installazione.

Se il test fallisce, il miglior rimedio è prelevare un nuovo disco di root per l'installazione. Si può generalmente riparare il disco di root installando una nuova versione di umssync. Questo non è difficile, ma richiede un sistema con Linux funzionante. Si deve semplicemente montare il disco di root e sostituire il programma umssync con uno nuovo.

6.4 Oops releasing pseudo root...

Molte delle installazioni che falliscono, lo fanno stampando questo strano messaggio. Questo non è un bug di Umsdos benché il il messaggio sembri strano. Queste sono le possibili cause.

Sfortunatamente i primi due problemi (problemi di installazione) producono un'installazione completamente inutilizzabile. Disintallate (sezione successiva) e reinstallate di nuovo.

6.5 Come disinstallare un sistema Umsdos

Una cosa semplice di Umsdos e il suo meccanismo di pseudo-root e che lo si può disinstallare senza problemi. Si deve semplicemente avviare DOS ed eliminare ricorsivamente le directory linux. Questo è tutto. Umsdos non richiede driver speciali nel config.sys, e non crea niente di speciale fuori dalla directory linux.

6.6 Spostare un sistema Umsdos in altri dischi DOS

Questo può essere fatto da Linux o da DOS. Si devono copiare ricorsivamente le directory linux da un drive all'altro. Dopo di ciò si devono sistemare i meccanismi di avvio e il file /etc/fstab.

Umsdos può vivere in qualsiasi drive DOS. Non è necessario installarlo nel drive C:, non è nemmeno importante averlo nel primo disco fisso.

In effetti si può decidere di avere parecchie installazioni Umsdos su drive diversi anche solo per eseguire prove.

6.7 Come installare più sistemi Umsdos.

Come installare una serie di sistemi Linux in poco tempo?

I sistemi Umsdos vivono nel mondo DOS. Se ne possono quindi sfruttare i vantaggi se si vuole installare facilmente Linux.

Si può installare e configurare un sistema Umsdos per conto proprio. Quando si è soddisfatti della configurazione e dei diversi pacchetti installati, si può avviare DOS e copiare l'intera directory linux nel file server DOS. Quindi si può andare in altre stazioni DOS e copiare semplicemente i file dal disco di rete al disco locale. Tutto qui. Aggiornare solamente lo script di avvio (Loadlin) e via.

Con piccoli ritocchi (Hostname, indirizzo IP), chiunque riuscirà ad installare un sistema Linux in pochi minuti.

I lettori attenti potrebbero notare che installare un sistema Linux copiando un sistema funzionante va bene anche per altri sistemi Linux, compresi i sistemi basati su Ext2.

Una cosa bella di Linux è che non ci sono file nascosti che devono essere installati da particolari programmi di installazione.

7. Impostare una sezione Linux in una partizione DOS

Umsdos può essere utile anche agli utenti Ext2 (il filesystem Linux originale). Una situazione comune è questa:

A questo punto arriva Umsdos a salvare la situazione. Si può impostare una directory nella partizione DOS e usarla senza restringerne l'uso per Linux. Per esempio, diciamo di voler impostare una nuova directory chiamata "extra" nel drive C:. E si vuole che questa directory diventi una normale directory Linux. Eseguire questo (assumiamo che C: sia /dev/hda1).

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

Questo deve essere fatto con i privilegi di root.

Impostando opportunamente /etc/fstab, si potrà sempre accedere alla directory /c/extra.

8. Perché UMSDOS

Spiegare come usare o installare un sistema Umsdos non è abbastanza. Molta gente cerca informazioni circa l'uso di Umsdos o no.

8.1 Il vantaggio di Umsdos

Il vantaggio di Umsdos è di semplificare l'installazione di Linux. Un altro vantaggio è la sua semplice disinstallazione. L'idea di base era quella di promuovere la diffusione di Linux. L'installazione di un nuovo OS in un sistema è sempre dolorosa. OS/2 per esempio contamina la directory root di C: con una serie di nuove directory. Se siete esperti come me, esso eliminerà anche i file config.sys e autoexec.bat.

La caratteristica dello pseudo-root di Umsdos evita questa invasione indesiderata. Linux può essere disinstallato senza effetti secondari.

8.2 A chi serve

Se si ha un piccolo disco fisso, Umsdos permette di condividere lo spazio tra DOS e Linux. Un disco sotto i 300 Mb è a mio avviso in disco piccolo. Questa opinione si basa sulla dimensione dei diversi pacchetti disponibili oggi. Un comune word processor può occupare anche 70 Mb se si scelgono tutte le caratteristiche.

Se si ha un drive grande, si può decidere di riservare una partizione a Linux con il filesystem Ext2. Ext2 usa cluster di dimensione più piccola rispetto al DOS (1k infatti), così installando molti file piccoli si spreca meno spazio che in una partizione Umsdos.

8.3 Conclusioni

A questo punto confrontiamo Umsdos con Ext2.