Liberatoria

Il documento seguente è una copia gratuita, fornita così com'è, rivista e corretta, senza alcuna garanzia, né implicita, né esplicita di deguatezza ad un uso particolare o di commerciabilità. Non mi assumo alcuna responsabilità per eventuali danni provocati da quanto segue: leggete, confrontate, scopiazzate, ma non cercatemi per portarmi in tribunale, che vi mando un virus che farà girare il vostro computer solo con Winzoz 3.1 ! =:o) BadPenguin vede e provvede!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Mandrake Linux

 PARTIZIONI

 ESEMPIO DI PARTIZIONI (usatelo!!!)

 FILE SISTEM

 COSA SONO LE DIRECTORY /....

 PREREQUISITI

 

Ci riferiamo al documento originale.......

Quick&Easy Configuration HOWTO

Antonio Fragola

Copyright © 2000 - 2001 Antonio Fragola

Prefazione

Copyright

English - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.

Italiano - È garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della

GNU Free Documentation License, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation; senza Sezioni non Modificabili, con nessun Testo Copertina, e con nessun Testo Retro di Copertina. Una copia della licenza è acclusa nella sezione intitolata GNU Free Documentation License.

 

Ringraziamenti

Molto di quello che so, e che c'è qui, lo devo a quello splendido gruppo di pinguini che frequenta i newsgroup della gerarchia it.comp.os.linux.*, della quale mi onoro di far parte. In puro spirito GNU, quello che ho imparato ora lo metto a vostra disposizione, sperando che serva a qualcuno. Ringraziamenti per contributi vari, sono sparsi nelle varie sezioni. Ringrazio anche tutti quelli che mi hanno scritto per lodare questo lavoro o per segnalare errori, spingendomi a migliorarlo e a continuare a svilupparlo. Ciauz ;-)

CS-LUG

A dicembre 2000 è nato il CS-LUG (Cosenza Linux User Group), di cui sono membro, insieme al flagello degli spammer usenet, l'asciatore Thorin (mailto:oakenshield@freemail.it) (Pierluigi De Rosa), e altri (promemoria: inserire i nomi degli altri membri). Se siete pinguini della zona (o volete diventarlo), potete iscrivervi alla mailing-list cslug@lists.linux.it (mail at: cslug-request@lists.linux.it subject=subscribe), oppure frequentare il canale IRC #cslug, sui server della rete irc.openprojects.net (NON su ircnet!). Per altre informazioni, fate riferimento al sito:

http://cslug.linux.it.

Partizioni

Introduzione

Oggi gli hard-disk sono sempre più grandi. Partizionare un hard-disk, ossia suddividerlo in più parti, consente in genere di renderne più pratica ed efficiente la gestione, e permette di avere più sistemi operativi installati sullo stesso pc. In questa parte viene spiegato perché e come partizionare, con le istruzioni d'uso del principale programma DOS, e i trucchi per evitare di fare danno ;-). In particolare vedremo come creare spazio per installare Linux. Si raccomanda di leggere l'intero documento, senza saltare direttamente all'uso dei programmi.

Nota: Originariamente questa parte era stata scritta per essere pubblicata su un sito italiano di cui non faccio nome per evitare problemi, il quale fornisce informazioni su Linux, ma che alla fine ha carattere commerciale, e doveva spiegare l'uso di vari programmi DOS e Linux per la completa gestione delle partizioni. Per svariate ragioni, legate ad alcuni disservizi del sito e per una mia decisione di rendere tutto libero e non sottostare ad alcuni vincoli imposti, questo progetto è stato abbandonato, e ora una versione ridotta al solo uso di Fips e Fsresize fa parte del Quick&Easy Configuration HOWTO.

Nozioni Generali

Cosa sono le partizioni

Le partizioni, come dice la parola stessa, sono una suddivisione dello spazio disponibile su un hard-disk (in effetti si hanno dei metodi per avere una partizione suddivisa su più hard-disk, tramite i sistemi RAID, ma questo esula dallo scopo di questo documento). Esistono 2 tipi principali di partizioni, quelle primarie e quelle estese. Le partizioni primarie sono quelle da cui i sistemi operativi possono effettuare il boot e contengono un file-system. Le informazioni sul numero e tipo di partizioni sono contenute nella parte finale dell'MBR (Master Boot Record, cilindro 0, lato 0, settore 1 dell'hard-disk), e dato lo spazio ridotto, non è possibile avere più di 4 partizioni primarie. Questo limite impone di usare le partizioni estese per suddividere ulteriormente l'hard-disk. Può esistere una sola partizione estesa su un hard-disk, e se presente il numero di partizioni primarie possibili si riduce a 3 (la somma tra primarie ed estesa non può superare 4). Le partizioni estese non possono contenere file-system, ma servono solo per contenere ulteriori suddivisioni in drive (volumi) logici. Tutte queste suddivisioni devono poi essere identificate: il DOS utilizza l'identificazione tramite lettere dell'alfabeto seguite da ":" (a:, c:, x:, ecc.). Le limitazioni di questo approccio sono evidenti, le lettere sono solo 26... (di cui le prime 2, a: e b: sono riservate ai dispositivi floppy). Oltretutto, l'assegnazione delle lettere è dettata da un astruso algoritmo, per cui basta non caricare, ad esempio, il driver del cd per avere le lettere seguenti scalate di una, o partizionare un secondo hard-disk per vedere completamente scombussolate le lettere delle partizioni del primo. Linux e tutti gli Unix in generale usano invece un metodo più avanzato per indicare le partizioni, tramite 4 caratteri: i primi due indicano il tipo di unità (hd: ide/eide, sd: scsi, fd: floppy), il 3_ indica il canale cui è collegato il dispositivo fisico (a per il primary ide, b il secondary, ecc., e in modo equivalente per gli scsi, mentre per i floppy si usano 0 e 1, senza il quarto carattere), e l'ultimo carattere è un numero, che indica il numero della partizione (da 1 a 4 le primarie e le estese, da 5 in poi i volumi logici). Quindi anche se staccate il cd o un hard-disk, perdete solo l'accesso a dette unità, ma non vi cambia l'assegnazione per i drive rimasti.

Nota: Questo schema cambierà con i kernel della serie 2.4, appena ne so di più aggiornerò questa sezione.

L'MBR contiene un puntatore ad una delle partizioni primarie, detta avviabile. Il firmware del BIOS del pc, dopo il POST (il controllo di sistema fatto all'accensione del pc), passa il controllo all'MBR che lo passa al settore di boot della partizione avviabile o al kernel del sistema operativo. A causa di un difetto nei BIOS, questi non riescono ad accedere a partizioni poste oltre il 1024_ cilindro, e ciò può creare problemi a Linux, in particolare a LILO, il boot-loader usato di solito (quindi se partite da un floppy di avvio o usate LOADLIN per partire da DOS, non avete questo problema, come anche se usate GRUB). Altri problemi con Lilo sono che DEVE essere sul primo canale IDE (quindi su hda o hdb) o se SCSI su ID 0 o 1. Al problema del 1024_ cilindro si può ovviare modificando i parametri dell'hard-disk nel BIOS, ad esempio dimezzando i cilindri e raddoppiando le testine o i settori, o creando una partizione più piccola (di solito compresa tra i 16 e i 32 Mbyte), più prossima all'inizio dell'hard-disk, da usare per effettuare il mount della directory /boot, che contiene il kernel e i moduli. Dopo che il kernel ha preso il controllo del pc, il 1024_ cilindro non rappresenta più un problema. In genere, se si crea un'unica partizione di grosse dimensioni, più grande di 1024 cilindri, NON è detto che /boot sia all'inizio, quindi conviene comunque creargli una partizione apposta. In Linux non esistono lettere di unità, come abbiamo detto, ed esiste un unico filesystem, in cui sono presenti anche le altre periferiche hardware del sistema, in genere sotto /dev. Se vogliamo accedere a un'altra unità (cd, hard-disk, file-system condiviso via NFS), dobbiamo effettuarne l'innesto (mount), in un punto del file-system principale (mount point). Questo permette anche di suddividere il file-system principale in più parti (e partizioni), che verranno montate durante la procedura di avvio o secondo necessità.

Nota: dalla versione 0.21.4.2 Lilo non avrà più il problema del 1024_ cilindro, grazie ad un'apposita patch.

Perché (ri)partizionare: partizioni e buonsenso

Tre sono i motivi principali per cui è bene partizionare un hard-disk:

1. Organizzazione: permette di suddividere il sistema dalle applicazioni e dai dati; si possono installare diversi sistemi operativi in differenti partizioni; avere i dati in una partizione a sè stante facilità le operazioni di backup e rende più facile la (re)installazione di un sistema operativo; è possibile condividere in rete una partizione contenente dati, senza dare accesso anche al sistema.

2. Ottimizzazione: si recupera fino al 30/40% di spazio grazie a cluster di dimensioni minori; si può mettere il file di swap di Windows in una partizione dedicata, riducendo la frammentazione (Linux usa addirittura una partizione di swap, più efficiente del semplice file, che comunque è possibile usare); se i dati sono separati, la deframmentazione delle applicazioni è più rapida; si può mantenere una partizione FAT16 per i dati, compatibile con molti sistemi operativi (OS/2, Linux, Windows NT).

3. Sicurezza: si separano i dati da applicazioni e sistema operativo; una singola partizione può contenere dati riservati, nascondendola con utility apposite o non montandola nel file-system principale; diversi sistemi operativi operano in diverse partizioni, riducendo i danni derivanti da aree comuni; si può testare software instabile con tranquillità; si può mantenere il vecchio sistema operativo fino a quando non ci si sente a proprio agio in quello nuovo (questo è l'uso preferito dai pinguini ;-) ); è possibile mantenere copia dei file di sistema importanti o di un immagine dell'hard-disk per un rapido ripristino. Quando si vuole installare Linux, nasce la necessità di creargli spazio: i credenti piallano senza ritegno le eventuali partizioni esistenti di altri SO, mentre i nuovi adepti di solito fannno convivere Linux con Windows finchè non se ne ha più bisogno. Se la quantità di dati presenti nella partizione Windows non è elevata (diciamo che con un gigabyte libero si può avere tutto, anche l'ambiente grafico e di sviluppo, mentre se ci si limita alla sola console a caratteri anche mezzo giga basta, avendo comunque molto più di quello che si ha col semplice DOS, ad esempio server web, DB, email, news e altro), si può cercare di ridurre lo spazio occupato, liberandolo alla fine dell'hard-disk, per poi usare lo spazio vuoto per le partizioni EXT2 (Linux native, type 0x83), e in genere 64 Mbyte per la partizione di swap (Linux swap, type 0x82, si va da un minimo utile di 16 a un massimo consentito di 128 per i kernel 2.0.xx, mentre i kernel 2.2.xx consentono un massimo di 2 Gbyte).

 

Un esempio tipico di partizioni per Linux è il seguente:

 

16 Mb per la partizione /boot, tenendosi mooolto larghi (anche 5 vanno bene, ma le potenze di 2 fanno più fico ;-) ). Deve essere possibilmente la prima ad essere creata, in modo che sia al di sotto del 1024_ cilindro, per evitare problemi con Lilo (per altre informazioni, guardate la sezione di Loadlin).

Tra i 50 e i 100 Mb per la partizione root ("/", da NON confondere con /root, che è la directory home dell'utente amministratore del sistema).

Per la partizione /usr , tra i 300 e i 700 Mb se create partizioni autonome per /usr/src e /usr/local, altrimenti tra 500 Mb e 1 Gb , a seconda di ciò che si vuole installare, visto che la maggior parte dei programmi finisce qui; in un sistema ormai stabilizzato, potrebbe essere anche montata a sola lettura.

50 Mb minimo per ogni utente che si vuole avere, da montare sotto /home. Altre partizioni che potrebbero essere utili sono:

 

 

Capitolo 1. Partizioni

/usr/local, in cui installare il software locale alla macchina e che in genere non fa parte direttamente della distribuzione, assegnandogli spazio secondo necessità (diciamo tra i 100 e i 200 Mb, a tenersi larghi); conviene crearla se /usr è a sola lettura.

/usr/src, in cui installare i sorgenti, utile in caso si ricompili spesso, ad esempio il kernel (anche qui tra i 100 e i 200 Mb).

/tmp, per i file temporanei, in un sistema multiutente con traffico intenso sarebbe meglio averla in un'altra partizione, se non addirittura hard-disk, mentre in una macchina con pochi utenti non serve spostarla (potete anche creare un symlink da /tmp -> /var/tmp).

/opt, usata da alcuni programmi, potrebbe anche essere un semplice link simbolico a /usr o /usr/local.

/var, che contiene gli spool di stampa e di email, e i log di sistema. Conviene crearla solo su sistemi multiutente o comunque server, assegnandole 500 Mb circa. Il crearla comunque velocizza molto l'uso intensivo di mail e news, specie se la si crea su un hard-disk separato. Gli utenti Debian tengano presente che questa distribuzione, tramite il suo tool apt-get, tiene in /var/cache/apt tutti i file .deb che vengono scaricati durante l'aggiornamento del sistema o l'aggiunta di altre applicazioni, e che quindi /var può crescere a dismisura! Sarebbe consigliabile quindi fare un'altra partizione separata per /var/cache.

Filesystem

Il disco durante la formattazione viene suddiviso in settori e tracce: possiamo immaginare le tracce come delle corone circolari concentriche di disco, mentre i settori sono degli spicchi di disco. Usando settore e traccia come coordinate è possibile individuare un blocco, l'unità più piccola indirizzabile su un disco. A questo tipo di suddivizione fanno eccezione i cdrom e i nastri: entrambi usano un tipo di organizzazione sequenziale, i nastri per ovvie ragioni, mentre i cdrom perché sono organizzati in una lunghissima spirale (veramente lo sono solo i cd-r e cd-rw, per facilitare il percorso del laser, per i cdrom normali è leggermente diverso). Nel caso dei cdrom però, la presenza di un filesystem (di solito iso9660, magari arricchito con estensioni joliet nei sistemi microsoft o rock-ridge

nei sistemi linux, per gestire nomi e path lunghi, o i permessi) permette di accedervi in lettura in maniera diretta e casuale, come sui normali dischi magnetici. Un filesystem è un sistema per organizzare i file nei dispositivi in modo da avere un accesso diretto, senza il vincolo della sequenzialità. Un filesystem quindi contiene file, mantenendo un elenco di essi e della loro posizione sul disco, eventualmente (quasi sempre...) suddivisi in più settori del dispositivo. L'organizzazione è gerarchica, specie in Unix, l'insieme di sistemi operativi di cui Linux fa parte: esiste un punto d'innesto principale ("/", root), a cui sono collegati altri punti di innesto secondari e così via. Questi punti di innesto si chiamano directory, e non necessariamente devono risiedere sullo stesso disco o addirittura sullo stesso computer. Infatti Unix permette di montare (agganciare o innestare) al filesystem principale altri filesystem, locali o remoti, che al termine devono essere smontati per poter essere eventualmente rimossi, ad esempio per floppy e cdrom. L'operazione di unmount (smontaggio) di un dispositivo effettua inoltre il sync (sincronizzazione) del suo contenuto, garantendo l'integrità dei dati. Infatti Unix non scrive immediatamente le modifiche effettuate, ma aspetta che altri processi più importanti rilascino risorse (tempo e % di occupazione della cpu) per effettuare il sync. Le directory possono contenere altre directory o file. Esiste quindi un'organizzazione ad albero, e per indicare un file se ne specifica il suo path (percorso) all'interno del filesystem principale, partendo da "/" e separando ogni nodo (directory) con il simbolo "/", ad esempio: /home/utente/testi/tesi.txt . Il filesystem Unix permette inoltre di avere informazioni aggiuntive sulla natura del file, tipo permessi di lettura, scrittura ed esecuzione, utente e gruppo proprietario, e genere del file in questione. Per sapere il tipo di file, basta dare ls -la e guardare il primo carattere della riga del file in questione, ad esempio:

..........

drwxr-xr-x 2 utente gruppo 1024 Mar 23 1999 docs

-rw----- 2 utente gruppo 1024 Apr 12 2000 testo

..........

Tabella 1-1. Elenco dei tipi di file (in base al primo carattere)

- file regolare

d directory

l link (collegamento)

b periferica a blocchi con buffer

c periferica a caratteri con buffer

u periferica a caratteri senza buffer

p pipe FIFO

s socket

Le periferiche o dispositivi a caratteri permettono di accedervi solo un carattere alla volta (es: console, porta seriale, ecc.), mentre quelle a blocchi permettono di accedervi solo a blocchi di dimensioni stabilite (es: dischi). Solo quest'ultimo tipo di periferiche o dispositivi possono contenere un filesystem.

Nota: I CD audio puri (o la sola parte audio di quelli Mixed-mode) NON contengono filesystem, quindi non si possono montare: per ascoltarli basta usare un lettore CD, sempre ammesso di avere i permessi di accesso in lettura al dispositivo!

Da notare che non necessariamente, per il solo fatto di essere un dispositivo a blocchi, un disco deve contenere un filesystem. Un disco può comunque essere usato alla vecchia maniera sequenziale: infatti un disco senza filesystem è solo una serie di settori a partire dalla prima testina del primo cilindro. In questo senso, a volte si utilizzano i dischi come se fossero nastri, registrando e rileggendo i dati nella stessa sequenza naturale di settori, testine e cilindri. Tipici esempi sono i dischetti di avvio con l'immagine del kernel o i dischi di archivio multivolume creati da tar. Ricordate che i dischi senza filesystem non possono essere montati normalmente, ma necessitano del cosiddetto loopback device, compilato insieme al kernel. Le partizioni di swap sono gestite a blocchi, senza filesystem. La maggior parte delle distribuzioni Unix e Linux seguono il Filesystem Structure Standard (FSSTND, ora evolutosi in FHS, Filesystem Hierarchy Standard), in modo da garantire una certa uniformità o comparibilità. Il FSSTND parte dall'idea di separare i file locali alla macchina da quelli condivisi (in rete locale o altro), e quelli a sola lettura da quelli accessibili anche in scrittura. Vediamo alcuni punti del FSSTND:

/ - è la directory principale che contiene tutte le altre.

/boot - contiene i file statici usati durante l'avvio, compreso il kernel e i file di Lilo.

/home - è la directory che contiene quelle personali degli utenti.

/mnt - di solito contiene i punti di innesto dei dispositivi rimovibili (/mnt/floppy, /mnt/cdrom, /mnt/zip, ecc.).

/dev - contiene i file speciali dei dispositivi di sistema, a blocchi o a caratteri (ebbene sì, anche i dispositivi fisici sono visti come file: mai sentito il detto "In Unix tutto è un file"?).

/etc - contiene i file di configurazione generali del sistema. Eventuali sottodirectory raggruppano file di configurazione specifici di qualche programma o servizio, ad esempio /etc/X11 per il sistema grafico, /etc/ppp per il demone ppp, /etc/httpd per apache, ecc. (anzi, /etc /etc ;-) ).

/lib - contiene le librerie condivise, usate in link dinamico dai programmi contenuti in /bin e /usr/bin. /lib/modules contiene i moduli caricati dinamicamente dal kernel.

/proc - è il punto d'innesto del filesystem virtuale proc, che contiene informazioni varie sul sistema in attività (viene infatti generato a runtime dal kernel), oltre a possibili impostazioni da applicare ogni volta che si avvia il sistema.

/sbin - contiene i file principali per l'avvio del sistema e per l'amministrazione da parte dell'utente root. I programmi sono linkati staticamente, quindi non hanno bisogno di accedere a /lib.

/bin - contiene i file eseguibili che in genere possono essere usati localmente anche dai comuni utenti.

/usr - contiene i file condivisibili in rete tra più macchine, e dovrebbe essere possibile montarla in sola lettura, a sistema ormai stabilizzato, sempre nel caso che disponga di una partizione separata. Contiene un sotto-filesystem: /usr/bin per i file eseguibili anche dagli utenti comuni, /usr/sbin per quelli dell'utente root, /usr/doc e /usr/info per la documentazione, /usr/man per le pagine di manuale, /usr/X11R6 per il sistema grafico X11, /usr/include per gli header necessari per la compilazione di programmi C, /usr/lib per le librerie, /usr/src per i sorgenti (in particolare /usr/src/linux per i sorgenti del kernel), e /usr/local per programmi locali alla macchina, ma aggiunti in seguito alla stabilizzazione del sistema.

/var - contiene i file variabili del sistema (a differenza di /usr, che dovrebbe poter essere montata a sola lettura). Contiene le directory di spool del sistema (come /var/spool/lpd per la stampa, /var/spool/fax per i fax, /var/spool/mail per la posta, /var/spool/news per i newsgroup, ecc.), la directory dei log (registrazioni delle attività) del sistema (/var/log/...), la directory contenente i PID dei processi in esecuzione (/var/run/...), la directory delle cache (/var/cache), e altro.

/tmp - contiene i file temporanei generati dagli utenti e dai programmi in esecuzione, ed è accessibile in genere in lettura/scrittura/esecuzione a tutti gli utenti (può anche essere un link simbolico a /var/tmp).

Prerequisiti generali

Prima di tutto createvi un dischetto di boot con un minimo di utility d'emergenza. Inserite un floppy da 1.44" vuoto e dal prompt date il comando: format a:/u/s. Alla fine copiateci dentro dalla directory c:\windows\command oppure c:\dos i file: fdisk.exe, format.com e sys.com Prima di iniziare (escludiamo naturalmente il ripartizionamento distruttivo e il caso di hard-disk nuovo o comunque vuoto, nel cui caso si può procedere come esposto nella prima parte), l'hard-disk va preparato. Prima di tutto è bene controllare che non ci siano errori sul disco, con (in ordine dal programma peggiore al migliore) Chkdsk, Scandisk, Ndd (Norton Disk Doctor). I primi due fanno parte del DOS (scandisk dalla versione 6, mi sembra), il terzo fa parte delle Norton Utilities. DOVETE fare il test della superficie, è per essere sicuri che non ci siano settori danneggiati, o almeno che essi vengano individuati e annotati nella FAT. Poi un bel backup, che male non fa mai, quindi cogliete l'attimo e salvatevi le cose importanti (anche nel caso di più partizioni di cui una dedicata apposta ai dati, conviene sempre fare un backup su floppy, zip o meglio CD-R o CD-RW). Ancora, opzionalmente, una bella passata di antivirus non farebbe male, l'importante è che lo lanciate da floppy DOPO AVER SPENTO il pc (non semplicemente ctrl-alt-canc). Naturalmente l'antivirus DEVE essere aggiornato frequentemente e serve a poco installarlo su un pc già infetto, per questo lo si deve installare su un pc SICURAMENTE sano e crearsi i dischetti di emergenza al più presto (chiaramente se aggiornate l'antivirus sul pc dovete ricreare i dischetti). Se non vengono segnalati errori, si procede alla deframmentazione. ALT! Credevate di cavarvela così facilmente? Allora non conoscete il DOS (e il suo figlio illeggittimo Windows ;-) )! Se avete solo il DOS potrebbe (POTREBBE) andarvi anche bene, ma con Windows è tutto un altro paio di maniche. Vediamo i possibili problemi: DOVETE disattivare la memoria virtuale, per poi riattivarla dopo che la procedura è conclusa. In Windows 9x ciò si fa così: click destro su Risorse del Computer / Proprietà / click sulla linguetta Prestazioni / click su Memoria Virtuale / click su Impostazione manuale della memoria virtuale / selezione di Disattiva memoria virtuale / poi premere Inviofino al riavvio. In Win 3.x la voce dovrebbe essere nella sezione 386 Enhanched del Pannello di Controllo (non uso Win 3.1 da 4 anni, potrei toppare ;-) ).

Naturalmente uscite da qualsiasi ambiente multitasking, DOVETE essere in puro e semplice DOS, possibilmente senza Smartdrive o altre cache software del disco (date dal prompt un bel smartdrv /c o equivalente per eseguire il flush della cache).

Potrebbero essere stati creati dei file nascosti e di sistema nell'ultimo settore dell'hard-disk, in particolare Mirror (DOS) e Image (Norton) lo usano per metterci un puntatore ai file che fanno da immagine del vostro hard-disk. DOVETE cancellarli, tanto verranno ricreati la prossima volta che lancerete i rispettivi comandi. Per poterli cancellare date dal prompt: attrib -r -s -h image.idx oppure attrib -r -s -h mirorsav.fil e poi cancellateli normalmente.

Potrebbero esserci altri file nascosti/di sistema: bisogna permettere che essi possano essere spostati (ATTENZIONE a quello che fate in questa sezione). Chiudete le finestre (ehm, uscite da Windows ;-) ) e dal prompt date i seguenti comandi:

cd \

dir /s /b /a:h "t.bat

dir /s /b /a:s "t.bat

edit t.bat

Attenzione

IMPORTANTE: prima di procedere, eliminate dal file t.bat TUTTE le righe che riportano c:\io.sys e c:\msdos.sys oppure c:\ibmbio.com e c:\ibmdos.com (dovrebbero esserci 2 righe per ognuno dei file elencati). Se saltate questo punto e deframmentate, è probabile che al riavvio il sistema non parta più (se comunque dovesse succedere, se avete creato il disco di avvio come vi ho detto in precedenza basta che partiate con quello e diate a:sys c: dal prompt).

Sostituite nel file t.bat tutte le occorrenze di c:\ con attrib -r -s -h c:\, uscite da Edit salvando e lanciate dal prompt il file t.bat. Questo elimina gli attributi che potrebbere creare problemi a Defrag. Disattivate TUTTE le opzioni di ottimizzazione del programma di deframmentazione (in particolare disattivate da Windows 98 l'opzione "Riorganizza i file dei programmi per un avvio più rapido"), perché con la scusa di ottimizzare l'avvio (usando i dati contenuti nella directory nascosta c:\windows\applog) spesso vengono lasciati dati nell'ultima parte del disco (esperienza personale). Per Norton Speedisk regolatevi di conseguenza, ricordando che le versioni anteriori alla 4 non supportano la suddetta directory Applog, quindi con Windows 98 rischiate di vedervelo rallentare invece di velocizzare. Dopo aver ripartizionato, potrete rieffettuare la deframmentazione riattivando le opzioni disattivate.

Un'ultima nota: conviene deframmentare dalla Modalità provvisoria, così sarete certi che non ci siano processi in background che potrebbero far ripartire Defrag nel caso essi si mettessero in attività, o peggio che andassero a scrivere nella zona appena deframmentata, o alla fine del disco, vanificando il tutto. A questo punto partite in modalità provvisoria e deframmentate, finalmente! Un ultimo consiglio: quando Defrag ha finito il suo lavoro, anche se la procedura può sembrare poco ortodossa, conviene aspettare una decina di secondi e se la luce dell'hard-disk non da segni di vita (non dovrebbe, non essendoci niente in background né attiva la memoria virtuale) conviene RESETTARE, invece di chiudere Defrag e Sessione per riavviare. Questo perché Windows in fase di chiusura potrebbe andare a riscrivere nella zona appena deframmentata (esperienza personale).

Attenzione

ATTENZIONE: io ho eseguito questa procedura più volte senza riscontrare problemi, nemmeno la partenza di Scandisk, ma il Reset potrebbe causare danni al file-system esistente se non anche all'hard-disk in rari casi. Il sottoscritto non si assume alcuna responsabilità per eventuali danni provocati da questa procedura: se temete di fare danno chiudete normalmente Windows e incrociate le dita (d'altronde, tutta la procedura di mettere mano al file-system è pericolosa, quindi...).

Ancora una cosa: il DOS standard stabilisce che non ci sia più di una partizione primaria, anche se nella pratica ciò è tollerato e permette di realizzare un sistema multiboot come ho esposto all'inizio.

FIPS

Introduzione

Fips è un programma molto potente, che permette di ridurre le dimensioni delle partizioni primarie FAT (Fips 1.5 e 2.0) e FAT32 (solo Fips 2.0). Fips riduce lo spazio di una partizione PRIMARIA modificando alcuni valori nella Tavola delle Partizioni e nel settore di boot, creando nello spazio che rimane vuoto una nuova partizione PRIMARIA (NON formattata, quindi se vi serve di nuovo per DOS/Windows, dovete formattarla, mentre se vi serve per Linux potete o cambiarle l'identificativo con fdisk DI LINUX o eliminarla per poi creare le partizioni che servono da Linux, come esposto nella prima parte). Per questo Fips NON funziona su partizioni estese, ma solo su quelle primarie, e funziona solo se NON avete già raggiunto il limite di 4 partizioni primarie per hard-disk. Fips non cambia la dimensione dei cluster né il tipo di FAT della partizione originaria, mentre per quella nuova i cluster saranno generati in base alla dimensione della partizione, come fa usualmente Format, tranne se si ha una FAT32, nel cui caso i cluster saranno di 4 kbyte.

Prerequisiti all'uso di FIPS

Preparate il dischetto come spiegato prima e dalla directory dove avete scompattato Fips copiateci dentro i file: restorrb.exe, fips.exe e errors.txt. Leggete tutte le istruzioni generali date in precedenza.

Attenzione

ATTENZIONE: se usate Stacker/Superstor/DoubleSpace per comprimere una parte del vostro hard-disk, o se usate On Track Disk Manager o EZdrive per estendere le capacità di riconoscimento degli hard-disk eide da parte dei vecchi bios, o ancora nel caso di hard-disk SCSI, leggete il file SPECIAL.txt che accompagna Fips e gli altri documenti.

Uso di FIPS

Infilate il floppy preparato prima e riavviate il pc. Al prompt lanciate fips, il quale dopo aver controllato di non essere in ambiente multitasking incomincerà a controllare quanti hard-disk ci sono nel pc, permettendo di scegliere, poi mostra la tabella delle partizioni dell'hard-disk scelto, effettua il controllo del settore principale e nel caso di più partizioni primarie, permette di scegliere quella su cui operare. Mostra quindi il settore di avvio della partizione scelta, fa degli altri controlli e verifica che le due copie della FAT siano congruenti, poi verifica lo spazio vuoto alla fine della partizione. In ognuno di questi casi, se viene riscontrato un errore, Fips esce al prompt fermandosi e segnalando l'errore riscontrato. Viene chiesto quindi di salvare lo stato attuale della tabella delle partizioni sul floppy, per poter tornare indietro in caso di errori. FATELO! Se tutto va bene, viene permesso di ridimensionare la partizione in modo visuale, tramite i tasti cursore. Quando avete raggiunto una situazione accettabile, premete Invio. Fips rifà di nuovo tutti i controlli, vi mostra la nuova tabella delle partizioni e vi chiede se volete continuare, premendo C. Fips rifà ancora tutti i controlli (pignolo, eh? ;-) ) e vi chiede se volete scrivere la nuova tabella delle partizioni su disco. Se premete Y essa viene scritta sul disco e ritornate al prompt. Tutto fatto! Ora RIAVVIATE il pc per rendere attivi i cambiamenti e verificate il tutto. NON fate niente sul disco prima di aver riavviato. Se qualcosa non vi soddisfa, ripristinate la situazione precedente ripartendo dal dischetto su cui avete salvato la tabella delle partizioni (perché l'avete fatto, vero? ;-) ) usando restorrb. Controllate di nuovo la vecchia partizione con Scandisk o altro, riavviate il pc per vedere che parta come prima. Per usare la partizione sotto DOS o Windows, oppure per suddividerla ancora, DOVETE prima formattarla (ATTENZIONE alle lettere, sicuramente sono cambiate!). Per usarla sotto Linux, usate il suo fdisk per cambiarle l'ID di tipo da FAT a Linux Native o Linux Swap, e usate MKFS per creare un file-system EXT2. Dovreste a questo punto essere a posto (più o meno, fino a quando la metà oscura del vostro hard-disk (DOS/Win) non sarà stata eliminata ;-) ).

FSRESIZE

Fsresize è un tool per Linux abbastanza recente (attualmente in versione 0.08) che permette di modificare le dimensioni delle partizioni FAT16 e 32 in modo veloce e senza bisogno di deframmentare prima il file-system. Ha quindi grosse potenzialità, ma alcuni pesanti difetti: infatti, poichè non può cambiare il tipo di FAT in uso, il numero di cluster deve rimanere costante, e in caso di allargamento della partizione il numero non può eccedere quello stabilito dalla FAT (es.: se anche aveste 4 GB liberi, ma usate FAT16, non potete avere una partizione di più di 2 GB). Prima di usarlo, valgono sempre le considerazioni fatte in precedenza, fate un dosfsck o una scandisk e un bel backup. Esempi d'uso (tratti dalla man page):

fsresize /dev/hda9 -i

mostra delle informazioni sulla partizione specificata

fsresize /dev/hda2 324M -backup=dosc.backup

esegue il resize della partizione specificata impostandola a 324 MB e facendo il backup nel file indicato

 

Capitolo 1. Partizioni

 

fsresize /dev/hda1 5654k

esegue il resize della partizione specificata impostandola a 5654 KB senza fare il backup

fsresize /dev/hda3 2545

esegue il resize della partizione specificata impostandola a 2545 KB senza fare il backup (se non si specifica M o m, oppure K o k, il default è k, per kilobytes)

fsresize /dev/hda5 -restore dosd.backup

ripristina la partizione specificata a partire dal file indicato Usate SEMPRE l'opzione -backup, che in caso di errori permette tramite -restore di ripristinare il tutto. È possibile che LILO non funzioni al riavvio, quindi prima di riavviare date /sbin/lilo da root per risistemarlo.