Lo scenario oggetto di questo argomento è il seguente: per un motivo qualsiasi, voglio aggiungere alla linuxbox un secondo hard disk e riprodurvi il sistema attualmente installato. Ottenuta la duplicazione del sistema, voglio sostituire il secondo disco al primo.
Ecco le operazioni necessarie
nel seguito si da per scontato che il secondo disco sia stato installato, cioè si sia fermato il sistema, si sia inserito il secondo hard disk e si sia riavviato il tutto,
riconfigurando anche il BIOS della macchina.
La duplicazione dell'hd attivo avviene come una normale
installazione da cdrom usando i comandi
clone o, meglio,
isiclone la versione potenziata descritta al link precedente
Ricognizione della situazione esistente
Per avere una lista dei dischi esistenti e delle relative partizioni (dischi IDE)
* # ll /dev/hd* *
Per vedere come e'partizionato un disco (es. /dev/hda)
* # parted /dev/hda print *
oppure
* # fdisk -l /dev/hda *
Per dischi scsi i dispositivi sono denominati
sd anzichè
hd
Vediamo un caso pratico....
# ll /dev/hd*
lr-xr-xr-x 1 root root 32 Jun 23 14:18 /dev/hda -> ide/host0/bus0/target0/lun0/disc
lr-xr-xr-x 1 root root 33 Jun 23 14:18 /dev/hda1 -> ide/host0/bus0/target0/lun0/part1
lr-xr-xr-x 1 root root 33 Jun 23 14:18 /dev/hda2 -> ide/host0/bus0/target0/lun0/part2
lr-xr-xr-x 1 root root 33 Jun 23 14:18 /dev/hda5 -> ide/host0/bus0/target0/lun0/part5
lr-xr-xr-x 1 root root 33 Jun 23 14:18 /dev/hda6 -> ide/host0/bus0/target0/lun0/part6
che mi dice che ho un solo disco, di nome simbolico
/dev/hda,
collegato al dispositivo fisico
/dev/ide/host0/bus0/target0/lun0/disc,
cioè al canale ide primario (
bus0) come master (
target0). Le partizioni sono la numero 1 primaria, la 2 estesa (vedi sotto) contenente le partizioni logiche 5 e 6.
Con cfdisk posso a questo punto vedere o modificare la situazione.
# cfdisk /dev/hda attiva la modalità interattiva (l´unica, da cui uscirò immediatamente) che fornisce
cfdisk 2.11z
Disk Drive: /dev/hda
Size: 1624670208 bytes, 1624 MB
Heads: 64 Sectors per Track: 63 Cylinders: 787
Name Flags Part Type FS Type [Label] Size (MB)
-----------------------------------------------------------------------------
hda1 Primary Linux ext2 24.78
hda5 Logical Linux swap 268.37
hda6 Logical Linux ReiserFS 1331.53
# parted /dev/hda print invece restituisce un errore (per lo specifico disco che sto usando come esempio)
Error: The partition table on /dev/ide/host0/bus0/target0/lun0/disc is inconsistent. There are many
reasons why this might be the case. However, the most likely reason is that Linux detected the BIOS
geometry for /dev/ide/host0/bus0/target0/lun0/disc incorrectly. GNU Parted suspects the real geometry
should be 787/64/63 (not 197/255/63). You should check with your BIOS first, as this may not be correct.
You can inform Linux by adding the parameter ide/host0/bus0/target0/lun0/disc=787,64,63 to the command
line. See the LILO or GRUB documentation for more information. If you think Parted's suggested geometry
is correct, you may select Ignore to continue (and fix Linux later). Otherwise, select Cancel (and fix
Linux and/or the BIOS now).
Ignore Cancel ?
# fdisk -l /dev/hda invece emette correttamente la tavola delle partizioni
Disk /dev/hda: 1624 MB, 1624670208 bytes
64 heads, 63 sectors/track, 787 cylinders
Units = cylinders of 4032 * 512 = 2064384 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 12 24160+ 83 Linux
/dev/hda2 13 787 1562400 5 Extended
/dev/hda5 13 142 262048+ 82 Linux swap
/dev/hda6 143 787 1300288+ 83 Linux
dalla quale si vede che la primaria n.2 è in realtà l´èstesa che contiene le logiche 5 e 6.
Per quanto riguarda i
mount point ecco il contenuto di
/etc/fstab
/dev/ide/host0/bus0/target0/lun0/part1 /boot ext2 defaults,rw 1 2
/dev/ide/host0/bus0/target0/lun0/part5 none swap sw 0 0
/dev/ide/host0/bus0/target0/lun0/part6 / reiserfs defaults,rw 1 1
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto defaults,user,noauto 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
Costruire il file di descrizione del disco bersaglio e avviare la duplicazione
Ecco un esempio (supponiamo che il nome del file sia
/etc/clone/disco2):
ZAP_ALLPART=1 # tutte le partizioni eventualmente presenti verranno cancellate
PARTITIONING=1 # quelle desiderate saranno create
FORMATTING=1 # e formattate
GRUB_MODE="MBRDSK" # avremo un grub installato sul MBR del nuovo disco (potrebbe non funzionare)
EXTRA_DIRS="/pippo /pluto" # duplicheremo anche delle dirs _nostre_
LIVE=1 # copiamo il S.O. al momento in funzione
Disk=/dev/ide/host0/bus0/target1/lun0 # questo l´abbiamo deciso come descritto sopra
extra_disk=/disc
extra_part="/part"
DESCR="
mnt_p fmt fs dim part_n overwrite opt
/boot 1 ext2 50 1 1
swap 1 swap 256 5 1
/ 1 reiserfs 2000 6 1
/var 1 reiserfs 2000 7 1
/usr 1 reiserfs 3000 8 1
/home 1 reiserfs fill 9 1
"
a questo punto il lavoro difficile è finito e potremo avviare la duplicazione ordinando
# isiclone /etc/clone/disco2
Test del sistema duplicato
Prima di sostituire il primo hd, verificheremo che il sistema clonato si avvi.
Sostituzione hard disk e riavvio