Ja to zrobilem tak:
Podlaczylem oby dwa dyski, odpalilem system z dysku, ktory
bede kopiowal. Na drugim dysku programem fdisk potworzylem
sobie partycje (trzeba pamietac o jednej dla swapa)
jak chcialem. Potem uzylem mkfs.ext3 aby, na kazdej stworzonej
partycji stworzyc system plikow ext3 (oczywiscie oprocz partycji
przeznaczonej na swap). Po zakonczeniu tworzenia systemu plikow po
prostu podmontowalem wsyztskie partycje nowego dysku pod
katalog /mnt/nowy/ (z zachwaniem odpowiednich zaleznosci*),
po czym najzwyczajniej na swiecie zacalem kopiowac pliki
za pomoca mc

Nie nalzey kopiowac katalogu /proc, /tmp nie
trzeba i nie nalezy takze kopiwoac zawartosci /var/run.
Po zakomczeniu kopiowania wydajemy komende chroot /mnt/nowy
aby "wirtualnie" rozpaczac prace tak jakby ten katalog byl naszym
rootem... Jezlei jest taka potrzeba to edtujemy teraz plik /etc/fstab
oraz /etc/lilo.conf. Nastepnie wydajemy polecenie lilo.
Jezeli nie planujemy prepiecia dysku na inny kontroler (tzn -
zostawimy go tak jak jest np na /dev/hdb) to uzywamy jeszcze poelcenia
mkswap /dev/hdb2 (aby stworzyc swap na hdb2) i swapon /dev/hdb2.
I tyle - mozemy odpalic system z nowego dysku.
Jezlei natomiast bedziemy przepinali dysk np na /dev/hda to musimy
zmienic mu juz z gory wpisy z /etc/fstab i /etc/lilo.conf na odpowiednie
jakie beda po przepieciu dysku. Nastepnie odpalamy kompa z plyty
NND, montujemy sobie znowy dysk do /mnt/nowy (z zachwaniem
odpowiednich zaleznosci*) i znow chroot /mnt/nowy, mkswap /dev/hda2,
swapon /dev/hda2 i lilo. Po restarcie powinno chodzic
Pozdrawiam
* np jak stworzyle sobie partycje hdb1 dla /, hdb2 dla swapa i hdb3 dla
/home to:
mount /dev/hdb1 /mnt/nowy
mkdir /mnt/nowy/home
mount /dev/hdb3 /mnt/nowy/home