jacques@solucorp.qc.ca
dalla@maya.dei.unipd.it
, ultima revisione il 05/02/96.
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.
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).
Penso che solo Slackware supporti umsdos. Potrei sbagliarmi, quindi mandatemi informazioni per correggere questo.
L'home site di Umsdos è sunsite.unc.edu
. Vedere nella
directory /pub/Linux/system/Filesystems/umsdos
.
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.
Jacques Gelinas, jacques@solucorp.qc.ca
.
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
C:\LINUX\BIN
C:\LINUX\ETC
C:\LINUX\LIB
C:\LINUX\ROOT
C:\LINUX\SBIN
C:\LINUX\TMP
C:\LINUX\USR
C:\LINUX\VAR
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.
/bin
/etc
/lib
/root
/sbin
/tmp
/usr
/var
A questa lista ne viene aggiunta una nuova chiamata DOS
. Questa è
una directory virtuale.
/mnt
, si troveranno tutte le directory
di Linux in /mnt/linux/bin
, /mnt/linux/etc
e così
via.
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.
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 /
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
).
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.
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:
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.
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ò.
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.
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-.---
.
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.
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.
/sbin/umssync
Una directory può essere promossa in ogni momento usando
/sbin/umssync
. Promuovere una directory significa fare le
seguenti operazioni
--linux-.---
.
--linux-.---
e l'attuale
contenuto della directory./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.
/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.
Rimuovere il file --linux-.---
usando il DOS. Tutto qui.
Finché non si usa umssync
su una directory dove i file sono stati
aggiunti o rimossi da DOS, si noteranno alcuni problemi:
/var/adm/syslog
).
L'installazione di Umsdos non è molto diversa dall'installazione di un filesystem ordinario (es. Ext2) Linux.
Ci sono due principali differenze.
/mnt/linux
La normale sequenza di operazioni per l'installazione è
fdisk
e formattarla./mnt
relativa al root disk di
installazione./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
.
/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:
mkdir /mnt/linux
umssync /mnt/linux
È tutto!
/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:
Alt-F2
(il tasto Alt
e contemporaneamente il
tasto F2
).root
cd /mnt/linux
Se questo fallisce, si sta facendo la prova troppo presto. Il momento
migliore per farlo è alla fine della selezione dei pacchetti.>TOTO
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.
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.
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.
DOS
in /mnt
, crea
/mnt/linux
e vi applica umsssync
.
Questo è problema più comune: molti utenti dimenticano di
impostare la partizione di destinazione (``target partition''), e
vanno direttamente al resto dell'installazione. Siccome /mnt
è già montata, questo errore passa inosservato. Questo
fa sì che /mnt/linux
non sia impostata correttamente
(non promossa). Tutti i file speciali e nomi lunghi non possono essere
creati in modo corretto.
umssync
non corretta.
/mnt/linux
è impostata erroneamente. Generalmente è
causata da una utility umssync
difettosa nel disco di
installazione di root.
/etc/init
è assente. init
è adesso localizzato in
/sbin
. Si può risolvere prelevando un nuovo kernel. Questo
è raccomandato perché altri bug sono stati scoperti e risolti in
1.2.2.
Se non è possibile l'aggiornamento, fare questo
root
.mount -t umsdos /dev/hdXX /mnt
dove /dev/hdXX
è la partizione DOS.cd /mnt/linux/etc
ln -s ../sbin/init init
cd /
Ctrl-Alt-Canc
Sfortunatamente i primi due problemi (problemi di installazione) producono un'installazione completamente inutilizzabile. Disintallate (sezione successiva) e reinstallate di nuovo.
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
.
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.
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.
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
.
Spiegare come usare o installare un sistema Umsdos non è abbastanza. Molta gente cerca informazioni circa l'uso di Umsdos o no.
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.
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.
A questo punto confrontiamo Umsdos con Ext2.