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. Poi modificare il boot affinchè avvenga dal nuovo disco.
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. Le operazioni descritte serviranno a chiarire l´uso fondamentale delle utility Linux per la gestione dei dischi. Per la descrizione dettagliata di tutte le opzioni disponibile si rimanda alle relative manpages e alla documentazione facilmente reperibile in rete.
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 *
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.
Partizionamento e scelta del filesystem
Copia del sistema
Installazione del bootloader (grub)
Riavvio