Artikelkategori: Tips
Skriven av mdkdio 2020-11-13 20:05
url: 
Redigerad av: mdkdio  2020-11-28 11:29:32

Klona en hårddisk eller partition

Under konstruktion....

Alla har vi någon gång önskat att vi hade en kopia av hårddisken innan vi installerade "programmet X", som fick systemet att tacka för sig.
Datorn kan inte starta ditt OS (Operativ System) igen.

Eller haft en kopia på datalagrings disken som du hade alla dina filer sparad på, som beslöt sig för att ta "permanent lunch".
Strömavbrott som skrotat diskar, moderkort som p.g.a. strömavbrott eller annan orsak bestämt sig för att HDD'n ska nu "sluta fungera"...

Scenarion finns i mängder...

Men har man en kopia av systemdisken eller datalagringsdisken så är det ju lugnt (om den är uppdaterad).

Hur gör man  då?
Enkelt! Man skapar en kopia av den/de diskar man vill ha en kopia av.
Verktyg då?
Det finns flera program som kan lösa detta: dd, Clonezilla, Partimage, FSArchiver, för att nämna några (finns många fler om man har Windows och/eller Mac OS).

Här ska jag fokusera på ett verktyg som du redan har på din dator (ingår i coreutils), nämligen dd...

OBS! Det är viktigt att du inte har aktuell HDD aktiv eller monterad (mounted), gäller även systemdisk om det är den som ska kopieras!!!!

Hur?
Scenario 1: Du vill kopiera din datalagringsdisk till en ny HDD (Hard Disk Drive).
Din datalagrings HDD har enhet sdb (eller annat), och du har nyss köpt en till ny HDD.

OBS! Det enda som du behöver tänka på, är att mål-disken ska vara lika stor eller större än käll-disken.

Du har installerat den nya HDD'n i din dator, och du har startat upp (Slackware) linux.

I konsollen skriver du nu: fdisk -l och då ska du se information om de diskar/partitioner som du har på din dator.
Något i stil med:
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Lite info om din HDD (M.2 SSD i detta fall)
Device             Start        End   Sectors  Size Type
/dev/nvme0n1p1      2048     206847    204800  100M EFI System
/dev/nvme0n1p2    206848  209922047 209715200  100G Linux filesystem

etc

Och din nya HDD:
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Lite info om denna disk... (i detta fall en 1TB mekanisk HDD redan formaterad...)

Dags att göra det vi hade tänkt, nämligen kopiera HDD1 -> HDD2 (nya disken):

Kommando radens syntax är följande:
dd if=/dev/sdx of=/dev/sdy

dd = Kommandot/Programmet
if = Input File (källa)
of = Output File (mål)

Om du inte har, som i mitt fall, en SSD + HDD. Utan 2 HDD's (sda och sdb) så är det enkelt.
Vi ändrar i syntax raden enligt ovan till följande:
dd if=/dev/sda of=/dev/sdb

Och vill vi se själva processen så lägger vi till status=progress
dd if=dev/sda of=/dev/sdb status=progress

När processen är klar, får du besked om detta, något i stil med detta:

1953525168+0 records in
1953525168+0 records out
1000204886016 bytes (1 TB, 931.51 GiB) copied, xxxxx s (antal sekunder), x.x Mb/s (överföringshastighet).

Det var ju inte så svårt, eller hur?

Men om jag nu vill kopiera enbart en partition (sda1 till sdb1) då?

Det går utmärkt det också, byt bara ut sda -> sda1  (t.ex.) och sdb -> sdb1 (t.ex.), i kommandoraden ovan.

OBS! Partitionerna får inte vara aktiva (monterade/mounted)!!

 

Nu till det lite mer krångliga... Kopiera en system disk till en ny HDD:

Som jag skrev längre upp i texten, disken som ska kopieras får inte vara aktiv, alltså monterad (mounted).
Så hur gör man då om man ska kopiera systemdisken?

OBS! Är du det minsta osäker på vad du ska göra här näst, vilken HDD som är din systemdisk (den med dit opertivsystem på), eller av annan anledning inte
känner dig säker på vad du ska göra. Avbryt! Läs igenom instruktionerna 2 gånger till, se på TV för att ta en paus, koka kaffe...
För gör du fel, så kan följande scenario ställa till det för dig ordentligt (läs: du kan förlora all din data!!), om du gör fel. Du har blivit varnad!

Men gör du rätt, följer instruktionerna, och framför allt frågar om hjälp om du behöver det, så ska du se att det går bra.

Det finns flera sätt att lösa detta på. Starta datorn på en Live CD/DVD/USB, flytta system disken till en annan dator med ett operativsystem redan installerat på.
Låna grannens dator (naturligtvis har du övertygat grannen om att Slackware Linux ska han/hon ha?!? :-) ).

Här väljer vi att använda oss av ett USB minne och Slackware Live (vilket du kan hämta här, tack vare AlienBOB). Välj en ISO du vill använda, "bränn" sedan ISO filen till
ditt USB minne, enklast så använder du dd även här (guide finner du här).

Allt väl så långt...

Steg för steg:
1. Monter i den nya disken i din dator (enligt anvisningar du finner på annat håll, eller fråga i forumet).
2. Starta datorn, i BIOS välj USB enheten som första enhet (uppstarts enhet, boot device eller vad det nu kan vara...). Alt. har du en funktion för att starta en Boot Menu,
    (F12 eller annat) och välj där att starta på din USB enhet.
3. När du väl har startat systemet på USB minnet, och kommer fram till en prompt eller ett skrivbord (beror på vilken typ av Live media man använder).
    Oavsett vilket, så se till så att du kan starta en prompt/konsoll om du inte redan är i konsollen...
4. Dags att ta reda på vilka enhet dom dina hårddiskar har:
    Det gör vi med kommandot fdisk (fdisk -l), du får då ett resultat som liknar detta:
    Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
    Lite info om din HDD (M.2 SSD i detta fall)
    Device             Start        End   Sectors  Size Type
    /dev/nvme0n1p1      2048     206847    204800  100M EFI System
    /dev/nvme0n1p2    206848  209922047 209715200  100G Linux filesystem
    etc...
    Och din nya HDD:
    Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
    Lite info om denna disk... (i detta fall en 1TB mekanisk HDD redan formaterad... Men i ditt fall så är den tom då den är ny och visar annan info)
    etc...
    Disk /dev/sdc: xx.yy GiB, xxxxxxx bytes, xxxxxx sectors (med data rel till ditt USB minne...)

Fortsättningsvis utgår vi ifrån att din systemdisk är sda, din nya HDD är sdb och USB minnet är sdc

5. Dags att kopiera enhet sda till sdb:
    Precis som i exemplet ovan med kopiering av datalagrings disk -> backup disk, så använder vi syntax dd if=/dev/sdx of=/dev/sdx
    Och i detta fall: dd if=/dev/sda of=/dev/sdb status=progress (eller utan status=progress).

6. När kopieringen är klar, så får du precis som i tidigare exempel, ett resultat. Något i stil med:
    1953525168+0 records in
    1953525168+0 records out
    1000204886016 bytes (1 TB, 931.51 GiB) copied, xxxxx s (antal sekunder), x.x Mb/s (överföringshastighet).

Allt klart!
Förslagsvis så stänger du nu av datorn och kopplar ur den nya hårddisken så du kan spara den
(behöver dock inte demontera den, det räcker med att koppla ur den. Men koppla ur både SATA/IDE (kontroller-) kabel och ström!).

Mitt förslag är dock att ta ur den, lagra den på ett bra ställe (säkert ställe om viktig information på den).

Allt klart. Frågor/funderingar på innehållet i artikeln? I forumet kan du be om hjälp, kommentera artikeln och dess innehåll.

Redigerat: Sedan jag fick frågan, så...
Kan man köra dd kommandot ifrån installations mediat man valt?
Svaret är ja. Både dd och ddrescue kan köras ifrån t.ex. USB minnet.

(nu kanske du funderar på om jag blivit lite knasig: du kan ju inte kopiera en SSD till HDD... Helt korrekt, återkommer med en artikel rel till det senare).

×