Skip to topic | Skip to bottom
Home
Web attivi: Reteisi | Pmb
user: TWikiGuest
Registrazione | Mappa | Cambiamenti | Indice | Ricerca | Vai | Calcolatrice

Sei qui: Reteisi > DocTecWoody > TrasferireArgoLinuxSuUnSecondoHardDisk



Start of topic | Skip to actions
Lo scenario oggetto di questo articolo è 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 30 11:23 /dev/hda -> ide/host0/bus0/target0/lun0/disc
lr-xr-xr-x    1 root     root           33 Jun 30 11:23 /dev/hda1 -> ide/host0/bus0/target0/lun0/part1
lr-xr-xr-x    1 root     root           33 Jun 30 11:23 /dev/hda2 -> ide/host0/bus0/target0/lun0/part2
lr-xr-xr-x    1 root     root           33 Jun 30 11:23 /dev/hda5 -> ide/host0/bus0/target0/lun0/part5
lr-xr-xr-x    1 root     root           33 Jun 30 11:23 /dev/hda6 -> ide/host0/bus0/target0/lun0/part6
lr-xr-xr-x    1 root     root           30 Jun 30 11:23 /dev/hdc -> ide/host0/bus1/target0/lun0/cd
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: 20411080704 bytes
            Heads: 255   Sectors per Track: 63   Cylinders: 2481
     Name   Flags   Part Type  FS Type         [Label]        Size (MB)
 -----------------------------------------------------------------------------
     hda1           Primary    Win95 FAT32 (LBA)              10289.83
     hda5           Logical    Linux swap                       271.44
     hda6           Logical    Linux ReiserFS                  9845.67

# parted /dev/hda print restituisce (attenzione: potrebbe non funzionare e restituire un errore)

Disk geometry for /dev/ide/host0/bus0/target0/lun0/disc: 0.000-19465.523 megabytes Disk label type: msdos Minor Start End Type Filesystem Flags 1 0.031 9813.142 primary FAT boot, lba 2 9813.142 19461.555 extended lba 5 9813.173 10072.001 logical linux-swap 6 10072.033 19461.555 logical reiserfs

# fdisk -l /dev/hda emette la tavola delle partizioni nel modo seguente

Disk /dev/hda: 255 heads, 63 sectors, 2481 cylinders
Units = cylinders of 16065 * 512 bytes
   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1251  10048626    c  Win95 FAT32 (LBA)
/dev/hda2          1252      2481   9879975    f  Win95 Ext'd (LBA)
/dev/hda5          1252      1284    265041   82  Linux swap
/dev/hda6          1285      2481   9614871   83  Linux

dalla quale si vede che la primaria n.2 è in realtà l´estesa 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/part6  /       reiserfs        defaults,rw     1       1
/dev/ide/host0/bus0/target0/lun0/part5  none    swap    sw      0       0
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
NOTA: avremo potuto anche sostituire ai dispositivo veri tipo /dev/ide/host0/bus0/target0/lun0/part6 anche il relativo link simbolico /dev/hda6 ottenendo una migliore leggibilità del file.

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. Occorre controllare e modificare /boot/grub/menu.lst per aggiugere il lancio del secondo sistema. Con riferimento al partizionamento descritto sopra le cose dovrebbero essere messe in questo modo (le ultime 4 righe sono quelle aggiunte per consentire il lancio del sistema duplicato):

*/boot/grub/menu.lst

timeout 10
default 0
title Kernel 2.4.24-std on /dev/ide/host0/bus0/target0/lun0/part6
root (hd0,5)
kernel /boot/bzImage-2.4.24-std root=/dev/ram0 boot=/dev/ide/host0/bus0/target0/lun0/part6 rw init=/linuxrc
initrd /boot/initrd-2.4.24-std.gz
### questa è la parte aggiunta
title Kernel 2.4.24-std on secondo disco
root (hd1,0)
kernel /bzImage-2.4.24-std root=/dev/ram0 boot=/dev/hdb6 rw init=/linuxrc
initrd /initrd-2.4.24-std.gz

adesso montiamo la / del secondo disco e controlliamo il file etc/fstab creato da isiclone.

# umount -a # mkdir /mnt/dsk2 # mount -t reiserfs /dev/hdb6 /mnt/dsk2 # cat /mnt/dsk2/etc/fstab

quanto visualizzato dovrebbe essere simile a questo:

/dev/ide/host0/bus0/target1/lun0/part1  /boot   ext2            defaults,rw     1       1
/dev/ide/host0/bus0/target1/lun0/part5  none    swap    sw      0       0
/dev/ide/host0/bus0/target1/lun0/part6  /       reiserfs        defaults,rw     1       1
/dev/ide/host0/bus0/target1/lun0/part7  /var    reiserfs        defaults,rw     1       1
/dev/ide/host0/bus0/target1/lun0/part8  /usr    reiserfs        defaults,rw     1       1
/dev/ide/host0/bus0/target1/lun0/part9  /home   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

notare il target1, che significa che il secondo disco è installato come slave sul canale ide primario.

Se tutto è come descritto basterà a questo punto riavviare il sistema scegliendo la seconda voce del menù di GRUB

Sostituzione hard disk e riavvio

Controllato che il secondo sistema funzioni regolarmente siamo pronti a sostituire il primo disco con il secondo. Occorrerà
  1. preparare un floppy di boot che consenta anche l´installazione di grub sul MBR del disco hd0 (se questa non fosse già avvenuta a fine duplicazione)
  2. modificare etc/fstab del secondo disco
  3. montare la partizione di boot del secondo disco per modificare il menu´ di grub
  4. spegnere la macchina ed effettuare la sostituzione dell´hd (ATTENZIONE AL BIOS)
  5. riavviare

Procediamo preparazione floppy di boot inserire un dischetto vuoto e digitare # mkgrub (in alternativa può essere usato isigrub)

modificare etc/fstab del secondo disco

procedere come sopra descritto ed editare /mnt/dsk2/etc/fstab sostituendo a target0 a target1. Alla fine NON smontare /mnt/dsk2 perchè bisogna...

montare la partizione di boot del secondo disco per modificare il menu´ di grub

*# mount -t ext2 /dev/hdb1 /mnt/dsk2/boot *

editare /mnt/dsk2/boot/grub/menu.lst in modo che appaia così

timeout 10
default 0
title Kernel 2.4.24-std on /dev/hda6
root (hd0,0)
kernel /bzImage-2.4.24-std root=/dev/ram0 boot=/dev/hda6 rw init=/linuxrc
initrd /initrd-2.4.24-std.gz

si osservino le differenze con le ultime quattro righe del menu.lst precedentemente descritto.

A questo punto si può effettuare la sostituzione dell´hd e riavviare.

Troubleshooting

Cosa può andare storto? Ad esempio GRUB potrebbe risultare non installato sull` hd. In questo caso occorrerà
  1. avviare la macchina dal floppy di boot
  2. scegliere installa GRUB su hd0
  3. togliere il dischetto e ripartire.


Reteisi.TrasferireArgoLinuxSuUnSecondoHardDisk r1.6 - 12 Jun 2021 - 06:45 - WebMaster
Copyright © 1999-2006 degli autori degli articoli. Tutto il materiale presente su questa piattaforma collaborativa è di proprietà di chi l'ha prodotto. Idee, richieste, problemi relativi a TWiki? Invia feedback