Newsgroup: it.comp.os.linux.debian
Titolo: Copiare la root da una partizione ad un'altra

Salve,
come dice l'oggetto ho necessita' di copiare la root dalla partizione
attuale ad un'altra (causa: pensionamento harddisk).
Mi piacerebbe procedere con qualcosa di simile a questo comando:
# cp -R -p / /mnt/nuova_partizione
(ovviamente escludendo /mnt ... comunque e' il concetto che conta)
Mi chiedo pero' se e' possibile fare un'operazione del genere con le
directory /dev /sys e /proc ...non e' che si inchioda tutto?
Nel caso la copia della root non sia un'operazione cosi' semplice, ci
sono dei software che possono fare al caso mio?
Grazie in anticipo,
   Jenner
-- 
** 
http://neurotix.com
** jenner(a)
neurotix.com

 directory /dev /sys e /proc ...non e' che si inchioda tutto?
Lascia stare.
La cosa migliore che puoi fare e` partire con una live e copiare la root 
da li`, dopo aver montato la vecchia e la nuova root in /mnt
E ti consiglio -a al posto di -pR
Bye.

Alessandro Pellizzari ha scritto:

Si potrebbe anche fare con busybox no?
Lanciare busybox al boot in modo tale da avere un ambiente su cui 
lavorare ma con nessuna partizione montata, root compresa, a quel punto 
te la puoi copiare dove vuoi.


# rsync -auxHv --exclude=/tmp/* --exclude=/proc/* \
--exclude=/sys/* --exclude=/var/run/* \
--exclude=/var/tmp/* --exclude=/var/lock/* \
/ /mnt/nuovodisco
Provalo prima con un dry-run (aggiungi anche n all'elenco delle chiavi)
per vedere cosa farebbe. L'ho scritto a memoria.
In breve con i --exclude gli dici di non copiare il contenuto di quelle
directory, ma dovrebbe creare le directory.
Le chiavi -auxHv sono:
v: verbose
H: mantiene gli hard link
x: non esce dal filesystem (quindi ad esempio se la /boot non fa parte
dello stesso filesystem della root, non viene copiata)
u: update, permette di fare la copia incrementale
a: come nel cp, mantiene gli attributi di file e directory, owner
compresi, copia i softlink come tali, ecc. ecc. ecc.
lo lanci 2 volte (anche 3) e hai una copia del contenuto della
partizione sul nuovo disco. La prima volta farà il grosso del lavoro, la
seconda e la terza dovrebbe non fare nulla.
Poi dovrai mettere grub a mano, ma questa è un'altra storia.
"man rsync" per maggiori dettagli o ricerca in google per qualche altro
esempio simile.
PSK

 / /mnt/nuovodisco
Io normalmente uso questo:
# rsync --verbose --progress --stats --archive --delete \
--exclude="/dev/" --exclude="/media/" --exclude="/mnt/" \
--exclude="/proc/" --exclude="/sys/" \
--exclude="/var/run/" --exclude="/var/lock/" --ignore-errors \
/ /media/backup
Non escludo /tmp, perché io l'ho in ram.
--
Bye, Lem

 E ti consiglio -a al posto di -pR
Nemmeno questo è corretto. Non preservi gli hard links, cosa che comporta 
aumento di spazio e possibile malfunzionamento di certi programmi.
Si può usare rsync con le opzioni -aHP oppure tar; io in genere preferisco 
quest'ultimo se si parte da una destinazione vuota.
Si può fare tranquillamente anche online avendo cura possibilmente di andare 
in single user mode; non è indispensabile ma è meglio, in alternativa almeno 
fermare tutti i demoni che scrivono su disco, come DB, syslog, ecc.ecc.
Quindi se per esempio la sorgente è sda1 e la destinazione sdb1:
# mount /dev/sdb1 /mnt
# cd /
# tar -c -f - --exclude=proc --exclude=sys --exclude=mnt * | \
    (cd /mnt ; tar -x -v -f - )
# mkdir /mnt/proc /mnt/sys /mnt/mnt
Se usi udev ti troverai la /dev già popolata con i soli device riconosciuti, 
cosa molto comoda :)
Verificare poi che in fstab e in grub la root non venga identificata per 
UUID. In tal caso provvedere a modificare e rifare gli initrd.
-- 
Flavio Visentin
Scientists have finally discovered what's wrong with the female brain:
On the left side, there is nothing right, and on the right side, there
is nothing left.

Ho effettuato la copia della root con successo (e vi sto scrivendo dal
sistema bootato dalla nuova root)!
Ho utilizzato un mix dei vostri consigli: ho fatto un rsync dopo aver
fatto il boot da una Live... effettivamente tutto e' piu' pulito e
sotto controllo.
GRUB non e' stato un problema: adoro questo bootloader (peccato solo non
averlo potuto mettere su un HDD con una sola partizione XFS... ma questa
e' un'altra storia).
Vi ringrazio tutti!
Ciao


 
Io per passare da ext3 a ext4 ho usato cp -a su /usr, quindi su /var, su 
/tmp, /home e /opt.
Potrei aver fatto qualche danno?
Sembra funzionare tutto come prima.

 Potrei aver fatto qualche danno?
Danno normalmente no, ma al 90% avrai dei files duplicati.
Tutti gli hard link li hai persi, e di solito in usr ce ne sono.


 
Dovrei fare in modo di trovare i files duplicati e cancellarli allora.....

 
Dunque ho fatto una verifica solo su un file.
ls -li /usr/bin/perl* su una macchina dove non ho fatto nessuno 
spostamento della directory /usr.
Mi dice:
348418 -rwxr-xr-x 2 root root 1061700 2008-12-18 16:26 perl
348418 -rwxr-xr-x 2 root root 1061700 2008-12-18 16:26 perl5.8.8
quindi uno dei due ha un hard link verso l'altro tanto e' vero che gli 
inode sono uguali: 348418.
Ho fatto la stessa cosa nella macchina dove ho effettuato lo spostamento:
509 -rwxr-xr-x 2 root root  6856  1 gen 16:57 perl
509 -rwxr-xr-x 2 root root  6856  1 gen 16:57 perl5.10.0
sembra tutto a posto o mi sto sbagliando?

 sembra tutto a posto o mi sto sbagliando?
Probabilmente quel pacchetto lo hai aggiornato dopo aver fatto la copia, 
quindi ha ripristinato l'hard link.
Per il resto può essere benissimo che fosse l'unico. In genere oggi sono 
preferiti i link simbolici e questo è uno dei motivi :)


 programmi.
Stando alla info page di cp, -a li preserva. E` equivalente a -dpR, e 
sotto -d c'e` scritto:
`-d'
     Copy symbolic links as symbolic links rather than copying the
     files that they point to, and preserve hard links between source
     files in the copies.  Equivalent to `--no-dereference
     --preserve=links'.
Bye.

 
nel man di cp leggo che l'opzione -a implica -dpR e l'opzione -d dice:
-d, --no-dereference
Copia link simbolici come link simbolici piuttosto che copiare i file da 
essi
puntati, e conserva la relazione di hard link tra i file originali anche 
nelle copie.
preso da 
http://www.linuxcertif.com/man/1/cp/it/
quindi dovrebbe aver preservato tutti gli hard link.

 quindi dovrebbe aver preservato tutti gli hard link.
scusate non mi ero accorto che qualcuno lo aveva gia' fatto notare.