[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Le partizioni che contengono già un file system, possono essere rimaneggiate attraverso l'uso di strumenti specializzati per la loro copia, per lo spostamento e per il ridimensionamento. Tali strumenti sono utili quando sono in grado di tenere conto del tipo di file system e di fare tutti gli adattamenti necessari di conseguenza.
|
Il programma gpart (1) consente di scandire un disco o un file-immagine per ricostruire la sua suddivisione in partizioni:
gpart [opzioni] file_di_dispositivo |
gpart -C cilindri,testine,settori -g [altre_opzioni] file_immagine |
Per poter fornire informazioni corrette, il programma deve conoscere la geometria del disco da controllare, cosa che ottiene normalmente dal sistema operativo; tuttavia, quando il valore ottenuto automaticamente non è valido, oppure quando si tratta di un file-immagine, tale informazione deve essere fornita attraverso le opzioni della riga di comando, come si vede nel modello proposto a proposito della lettura di un file-immagine.
Si osservi che la ricerca eseguita da gpart è più semplice e più attendibile se la suddivisione in partizioni del disco da scandire non prevede la presenza di partizioni «logiche»; in pratica, va meglio se ci sono solo partizioni primarie, che si annotano nel primo settore di avvio.
Viene mostrato un solo esempio, molto semplice, di un disco che ha una tabella delle partizioni coerente con la suddivisione reale; per un approfondimento dell'uso del programma si può consultare la pagina di manuale gpart(8).
#
gpart /dev/hdb
[Invio]
Si richiede la scansione del secondo disco ATA; in questo caso si ottiene il risultato seguente:
Begin scan... Possible partition(Linux swap), size(8259mb), offset(0mb) Possible partition(Linux ext2), size(13350mb), offset(8259mb) Possible partition(Linux ext2), size(21603mb), offset(21610mb) Possible partition(Linux ext2), size(34944mb), offset(43213mb) End scan. Checking partitions... Partition(Linux swap or Solaris/x86): primary Partition(Linux ext2 filesystem): primary Partition(Linux ext2 filesystem): primary Partition(Linux ext2 filesystem): primary Ok. Guessed primary partition table: Primary partition(1) type: 130(0x82)(Linux swap or Solaris/x86) size: 8259mb #s(16916376) s(63-16916438) chs: (0/1/1)-(1023/15/63)d (0/1/1)-(16782/2/57)r Primary partition(2) type: 131(0x83)(Linux ext2 filesystem) size: 13350mb #s(27342624) s(16916445-44259068) chs: (1023/15/63)-(1023/15/63)d (16782/3/1)-(43907/12/57)r Primary partition(3) type: 131(0x83)(Linux ext2 filesystem) size: 21603mb #s(44243008) s(44259075-88502082) chs: (1023/15/63)-(1023/15/63)d (43907/13/1)-(87799/10/61)r Primary partition(4) type: 131(0x83)(Linux ext2 filesystem) size: 34944mb #s(71565312) s(88502085-160067396) chs: (1023/15/63)-(1023/15/63)d (87799/11/1)-(158797/0/21)r |
La gestione delle partizioni di un disco, in un sistema GNU/Linux, può essere fatta con Parted, (2) che consente anche il loro spostamento, il ridimensionamento e l'inizializzazione, con i file system comuni nei sistemi GNU/Linux. L'utilizzo di Parted richiede comunque una buona conoscenza del problema e di conseguenza conviene prima fare esperienza con gli strumenti tradizionali.
Per svolgere il suo compito, Parted richiede di specificare inizialmente il file di dispositivo corrispondente al disco nel quale vanno gestite le partizioni (può trattarsi anche di un file-immagine che rappresenta un disco suddiviso o da suddividere in partizioni); successivamente, attraverso dei comandi si fa riferimento alle partizioni indicando un numero, che rappresenta precisamente il numero secondario (minor number) del file di dispositivo corrispondente. Per esempio, volendo fare riferimento a una partizione, il cui file di dispositivo è normalmente /dev/hda2
, con i comandi di Parted si deve specificare il numero 2, che corrisponde al numero secondario di tale file:
$
ls -l /dev/hda2
[Invio]
brw-rw---- 1 root disk 3, 2 2005-01-01 13:15 /dev/hda2 |
Parted si avvia attraverso l'eseguibile parted, che ha due modalità di funzionamento: una interattiva e l'altra no.
parted [opzioni] [file_di_dispositivo] |
parted [opzioni] file_di_dispositivo comando_e_argomenti |
Nel primo modello sintattico si vede l'avvio di Parted per funzionare in modo interattivo; nel secondo, aggiungendo in coda il comando desiderato, il programma smette di funzionare al termine dell'esecuzione dello stesso.
È da osservare che il file di dispositivo, che appare formalmente come facoltativo nella riga di comando, serve a specificare su quale disco si intende lavorare; se non viene specificato all'avvio, occorre poi usare il comando select per indicarlo durante il funzionamento in modalità interattiva.
Le opzioni previste per l'avvio di Parted sono utili sono in poche occasioni; in particolare, merita di essere ricordata solo l'opzione -s, ovvero --script, con la quale si vuole precisare che il programma non deve tentare di interagire con l'utente (presumibilmente perché viene avviato all'interno di uno script.
Diversi comandi di Parted fanno riferimento a una porzione del disco, individuata come un punto iniziale e un punto finale. Per delimitare questi intervalli, si fa riferimento a dimensioni espresse in mebibyte (simbolo «Mibyte», ovvero multipli di 1 048 576 byte). Al contrario, con programmi tradizionali per la gestione delle partizioni, si deve fare riferimento ai cilindri, ma questo approccio è stato evitato volutamente nella realizzazione del programma.
I comandi di Parted sono «semplici», ma richiedono la conoscenza di ciò che si sta facendo, soprattutto delle caratteristiche dello schema di partizionamento utilizzato. Tanto per fare un esempio, il comando mkpart richiede, eventualmente, l'indicazione di un tipo di file system, ma questa informazione serve in modo indiretto, per determinare il codice da attribuire al tipo di partizione. Per esempio, se con il comando mkpart si indicasse un file system di tipo ext3, si otterrebbe una partizione di tipo 8316, ovvero di tipo «Linux».
Vengono descritti alcuni esempi, che fanno parte di una sequenza coerente di operazioni, dove Parted viene usato in modo interattivo. Questi esempi non esauriscono le potenzialità di Parted; per maggiori dettagli e per conoscere lo stato dello sviluppo di questo programma, occorre fare riferimento alla documentazione originale.
#
parted /dev/sda
[Invio]
Si avvia il programma specificando di intervenire con i comandi nel disco corrispondente al file di dispositivo /dev/sda
.
GNU Parted 1.6.11 with HFS shrink patch 12.5 Copyright (C) 1998 - 2004 Free Software Foundation, Inc. This program is free software, covered by the GNU General Public License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Using /dev/sda |
Inizia quindi il funzionamento interattivo di Parted, caratterizzato dall'invito seguente:
(parted)
(parted)
mklabel msdos
[Invio]
Crea uno schema di partizionamento conforme a quello usato dal sistema operativo Dos.
(parted)
mkpartfs primary fat16 0 100
[Invio]
Crea una partizione primaria con un file system di tipo Dos-FAT 16, dall'inizio (zero) fino ai primi 100 Mibyte circa. La partizione viene inizializzata.
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.016 100.000 primary fat16 lba |
(parted)
mkpartfs primary ext2 100 159
[Invio]
Crea una partizione primaria di tipo Ext2, subito dopo i primi 100 Mibyte, fino a raggiungere la posizione di 159 Mibyte circa. Questo esempio è collegato a quelli precedenti, pertanto la seconda partizione occupa tutto lo spazio rimanente nel disco.
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.016 100.000 primary fat16 lba 2 100.000 158.250 primary ext2 |
(parted)
rm 1
[Invio]
Cancella la prima partizione.
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 2 100.000 158.250 primary ext2 |
(parted)
move 2 0
[Invio]
Sposta la seconda partizione, nella posizione iniziale del disco, lasciando intendere che la posizione finale sia quella necessaria a contenere la dimensione originale:
End? [58.2495]?
[Invio]
raw block copying... |
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 2 0.016 58.312 primary ext2 |
(parted)
resize 0 70
[Invio]
Ingrandisce la partizione, estendendola fino ai primi 70 Mibyte circa.
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 2 0.016 70.000 primary ext2 |
(parted)
mkpart primary 70 159
[Invio]
Crea una partizione primaria, senza specificare il tipo di file system che si vuole usare al suo interno, nello spazio rimanente del disco.
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 2 0.016 70.000 primary ext2 1 70.000 158.250 primary |
(parted)
cp 2 1
[Invio]
Copia la partizione 2 nella partizione 1, estendendo il file system nella destinazione.
raw block copying... growing file system... |
(parted)
print
[Invio]
Mostra lo stato attuale delle partizioni:
Disk geometry for /dev/sda: 0.000-158.277 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 2 0.016 70.000 primary ext2 1 70.000 158.250 primary ext2 |
(parted)
quit
[Invio]
Termina il funzionamento del programma.
Partimage(3) è un programma che può essere usato in modo interattivo o meno, per la copia e la riproduzione delle partizioni di un disco. In particolare, la copia di una partizione implica normalmente anche l'archiviazione del primo settore del disco (MBR).
partimage [opzioni_e_argomenti] |
L'eseguibile partimage va avviato con i privilegi necessari per accedere alle partizioni; in pratica, va usato in qualità di utente root. Se non si usano opzioni o argomenti di alcun tipo, si ottiene un funzionamento interattivo.
Nelle sezioni successive viene mostrato l'uso di Partimage in modo interattivo; per un uso diverso, conviene consultare la pagina di manuale partimage(1) ed eventualmente anche partimaged(8) per la gestione dell'archiviazione delle partizioni attraverso la rete.
Viene mostrato un esempio di archiviazione di una partizione in modo interattivo; per la precisione, si archivia la partizione /dev/sda1
:
#
partimage
[Invio]
|
Attraverso una barra di scorrimento si seleziona sda1, come si vede nella schermata di esempio; inoltre, si specifica il nome del file in cui salvare l'immagine della partizione: in questo caso si tratta di /tmp/immagine
, ma in realtà, il nome esatto contiene un'estensione numerica (.000
).
Una volta compilata la maschera iniziale, come nell'esempio, si passa alla maschera successiva premendo il tasto [F5]:
|
In questa fase viene richiesto, in particolare, di specificare il metodo di compressione e se si vuole ottenere un file unico o una serie di file di dimensione stabilita. Anche qui, si prosegue con il tasto [F5]:
|
Conviene mettere una descrizione, per annotare di che cosa si tratta, come si vede nell'esempio. Si conferma l'inizio dell'archiviazione con il pulsante grafico <Ok
>.
|
Terminato il controllo della partizione, si conferma ancora con il pulsante grafico <Ok
>:
|
Come si può vedere, la partizione viene archiviata nel file /tmp/immagine.000
; se dovessero essere utilizzati più file, l'estensione progredirebbe: .001
, .002
,...
Al termine appare una schermata di conferma.
|
Viene mostrato un esempio di ripristino di una partizione in modo interattivo; per la precisione, si ripristina un file nella partizione /dev/sda2
, che è più grande di quella originaria:
#
partimage
[Invio]
|
Come si vede, si prende il primo e unico file ottenuto dall'archiviazione eseguita nella sezione precedente, per ripristinare i dati nella partizione /dev/sda2
. Si prosegue premendo il tasto [F5]:
|
Viene mostrata la descrizione del file, prima di procedere.
|
Nella maschera finale si può ancora richiedere di simulare il recupero; in questo caso viene eseguito realmente. Si procede con il tasto [F5]:
|
|
|
|
A questo punto, dal momento che i dati recuperati riproducono una partizione più piccola dello spazio effettivo, se si dispone degli strumenti appropriati, si può tentare di estenderne le dimensioni allo spazio disponibile:
#
fsck.ext2 -f /dev/sda2
[Invio]
e2fsck 1.39-WIP (31-Dec-2005) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sda2: 12/2011296 files (0.0% non-contiguous), 95926/4016242 blocks |
#
resize2fs /dev/sda2
[Invio]
resize2fs 1.39-WIP (31-Dec-2005) Resizing the filesystem on /dev/sda2 to 14056875 (4k) blocks. The filesystem on /dev/sda2 is now 14056875 blocks long. |
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome memoria_di_massa_gestione_delle_partizioni.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]