Je kunt het best naar single-user mode gaan voordat je begint met het kopiëren van de files, dit omdat er dan geen daemons meer draaien en niemand meer kan inloggen en er ook geen log-files meer lopen.
/sbin/telinit 1
Als je de harddisk wil kopiëren dan wil je alles kopiëren incl directory's en bestanden, inclusief links.
Alhoewel, je niet de directory /new-disk
wilt kopiëren,
want dan kopieer je de disk in-zichzelf!
Verder moet je een /proc
directory maken op de nieuwe disk, maar
je wilt niet de inhoud ervan kopiëren: /proc
is een "virtueel" file
systeem en heeft eigenlijk geen files. Maar bevat informatie over processen
die op het systeem draaien.
Hier zijn verschillende mogelijkheden om de schijf te kopiëren. Als je een grote schijf hebt of weinig geheugen hebt dan duurt het een tijdje Je kan ervan uitgaan dat je ca 10 Mb/min kan kopiëren, maar soms meer.
Je kan het kopieerproces volgen door gebruik te maken van het
"df
" commando op een andere terminal. Je kunt ook "watch df
"
of "watch ls -l /new-disk
" gebruiken zodat het scherm elke 2 seconden
wordt ververst; druk Ctrl-C
om het af te breken. Let wel dat als je
"watch
" gebruikt dit ook het kopiëren kan vertragen.
cp -ax / /new-disk
Dit is de simpelste methode, maar werkt alleen als je Linux systeem op een schijf staat.
De -a
optie behoud het origineel systeem zo goed als mogelijk.
De -x
optie limiteert cp
tot een enkel file systeem; dit is
nodig om te vermijden dat de /new-disk
en /proc
directory's worden gekopieerd.
(SuSE enkel: Enkel met deze methode , moet je ook
een directory /dev/pts
maken op de nieuwe disk. gebruik hiervoor het
commando "mkdir /new-disk/dev/pts
".)
(Note: Als je de -x
optie gebruikt, recente versies van cp
maken dan de directory's /new-disk/new-disk
en
/new-disk/proc
, hoewel de directory's leeg blijven.
Als deze directory's zijn aangemaakt moet je
deze /new-disk/new-disk
verwijderen , en /new-disk/proc
houden .)
cd / && echo cp -a `/bin/ls -1Ab | egrep -v "^new-disk$|^proc$"` /new-disk | sh
(Typ dit allemaal op een regel)
Deze gaat naar de root directory en copieert dan alle files
behalve /new-disk
en /proc
naar /new-disk
.
Note De eerste optie achter ls
is het nummer 1 en niet letter L!
Dit commando zou in alle omstandigheden moeten werken.
(cd / && tar cpf - . --exclude new-disk --exclude proc) | (cd /new-disk && tar xpf -)
(Typ dit allemaal op een regel)
Deze gaat naar de root directory "tart" alles behalve
/new-disk
en /proc
, gaat dan naar /new-disk
en "untart"
daar alles. Note: er moet geen slash voor of achter de namen van
directory's in de --exclude
opties
(Noot: De optie -l
werkt niet, als tar
de directory's
/new-disk
en /proc
aan het maken is, alhoewel het
niet de inhoud copieert. Daarom heeft de tar
-l
optie niet hetzelfde gedrag als de -x
optie met oudere
versies van cp
.)
Deze methode is wat langzamer dan de andere.
cp -a /bin /boot /dev /etc /home /lib /lost+found /mnt /root/sbin /tmp /usr /var /new-disk
(Typ dit allemaal op een regel)
De laatste directory, /new-disk
, is de bestemming voor het cp
commando. Alle andere directory's zijn de bronnen. Daarvoor,
kopiëren we alle directory's in de lijst naar /new-disk
.
Met deze methode kun je simpel een lijst maken van alle directory's
die je wilt kopiëren. Hier hebben we alle directory's in een lijst gezet
behalve /new-disk
en /proc
. als je om een of andere redenen geen
andere methode kan gebruiken, kun je altijd deze methode gebruiken om handmatig
alle directory's te kopiëren die jij selecteert.
Als je deze methode gebruikt, en er staan files in de root directory zelf, dan heb je een ander commando nodig om deze te kopiëren. Dit is speciaal nodig met Debian en Slackware sinds deze distributies files root directory hebben gezet:
cp -dp /* /.* /new-disk
Nadat je een van deze commando's hebt gebruikt, moet je ook nog de /proc
directory maken op de nieuwe disk, als deze nog niet bestaat:
Als je wilt kun je nu de file structuur laten nakijken op de nieuwe disk:
Als de nieuwe disk meer dan een partitie heeft, dan moet je hem
Unmount-en vanaf "onder af" voordat je fsck.ext2
gaat runnen:
Zoals in het voorbeeld hier boven moet je eerst de 3e level partities Unmount-en,
dan de 2e level partities, en dan de 1e level partities.
Je kan ook twee disks met elkaar vergelijken, om er zeker van te zijn dat de files goed zijn gecopieerd:
find / -path /proc -prune -o -path /new-disk -prune -o -xtype f -exec cmp {} /new-disk{} \;
(Typ dit allemaal op een regel)
(Slackware enkel: Een basis Slackware installatie ("A" series enkel)
zit het "cmp
" commando niet in, dus als een een basis installatie hebt
dan kun je dit commando niet runnen. De "cmp
" commando zit in de "AP1" series.)
Deze vergelijkt enkel reguliere files, dus geen character of block special
files (in de /dev
directory), sockets, etc.,sinds het "cmp
"
niet goed werkte. Wij ontvangen graag suggesties over hoe deze "special" files
te vergelijken.