Artikelkategori: Tips
Skriven av mdkdio 2020-11-13 22:06
url: 
Redigerad av: mdkdio  2020-11-28 11:27:43

Kopiera/klona nvme disk (SSD)/partition till ny nvme disk (SSD)/partition

Överkurs! :)
OBS! Under konstruktion och jag har def inte testat något av detta än!!!! bl.a. så måste jag kolla om Slackware live innehåller gparted (vilket det borde göra).

Även i denna guide så tänker jag använda mig av verktyg som redan finns i Slackware,
nämligen dd (del av coreutils).

Till skillnad mot den tidigare artikeln som gällde en mekanisk HDD -> HDD så är detta något helt annat.
SSD'n har flera partitioner som alla måste kopieras korrekt för att det ska fungera.
EFI system
System partition(r)
Swap (om du har en sådan)

Scenario 1:
Du har en (1) M.2 disk, och ditt moderkort har bara en inbyggd kontroller (slot) för detta. Du ska kopiera din M.2 till en större M.2

Scenario 2: Du har en (1) M.2 disk, men ditt moderkort har två (2) M.2 kontroller/platser.

Scenario 3: Du har en SSD disk, men har köpt en M.2 och vill kopiera SSD -> M.2 och använda M.2 som systemdisk i stället.

Scenario 4: Finns det fler scenarion? (Vi får se...).

Oavsett scenario, så gäller samma sak här som för en kopiering av en mekanisk HDD -> mekanisk HDD.
Att mål-disken ska vara lika stor som, eller större än käll-disken!! Och inte aktiv (monterad/mounted)!!
 

Vad behöver vi då för detta?

* Ett operativsystem som INTE är på samma SSD som ska kopieras. T.ex. en Live CD/DVD/USB (vilket är enklast).
* Datorns vars SSD/M.2 som ska kopieras, fungerar som den ska.
* En ny (eller begagnad) SSD/M.2 disk.
* Ett USB minne (eller CD/DVD) för installation av Live systemet på.
* Annan enhet, stor nog att spara kopian på. T.ex. en extern hårddisk (HDD) eller en intern (SATA) HDD.

Klar? Då kör vi :)

Jag förutsätter att du redan har skapat ett "live medium". I mitt fall så använder jag Slackware Live och ett USB minne.
Och att du redan har monterat (mounted) aktuell HDD (Intern eller extern), och har koll på vilken enhet den har. I exempel nedan /mnt/ext.

OBS! För att det ska fungera korrekt, så måste du starta datorn i UEFI mode och med "Disabled secure boot". Hur du gör detta beror på
flera faktorer, men instruktionsboken för ditt moderkort har information (alternativ din datortillverkare har motsvarande dokumentation).

Scenario 1: Vi har en M.2 disk på 500 GB, och har nu köpt en ny M.2 som är lika stor eller större. Men moderkortet har bara en M.2 kontroller.

Lösning 1: Vi kopierar hela den gamla M.2 disken till en extern HDD/intern HDD.
Lösning 2: Vi kopierar varje partition var för sig till en extern HDD/intern HDD. Gör detta om den nya M.2 disken är större.

I båda fallen så skapar vi en ISO/img fil, och sparar den/dess på den externa HDD'n eller interna HDD'n.
Fördelen med Lösning 2, är att om den nya M.2 disken är större, så kan vi skapa en till partition av det lediga utrymmet,
eller öka utrymmet på din "hemma enhet" (/home partition). Jag utgår ifrån att du har investerat i en ny, större M.2 disk
nu när du väl har tagit beslutet om att investera i en till M.2

Hur?:

Kommando syntax:
Lösning 1:  dd if=/dev/nvme0n1 of=/mnt/ext/m2.iso status=progress
eller: dd if=/dev/nvme0n1 of=/mnt/ext/m2.img status=progress

Lösning 2: Varje partition för sig (om ny M.2 är större, använd detta!)
                  dd if=/dev/nvme0n1p1 of=/mnt/ext/m2_efi.iso status=progress
                  (förutsatt att detta är din EFI partition)
                  När den första partitionen är kopierad till den externa disken, kör vi nästa..
                 dd if=/dev/nvme0n1p2 of=/mnt/ext/m2_root.iso status=progress
                 (förutsatt att detta är din / (root) partition)
                 Nästa:
                 dd if=/dev/nvme0n1p3 of=/mnt/ext/m2_home.iso status=progress
                 (förutsatt att detta är din /home partition)
                 Fortsätt med swap, och ev andra partitioner.

När allt är klart, oavsett om du kopierat hela disken till en ISO/img fil, eller varje partition till en egen ISO/img fil var för sig.
Så kommer du att se en status uppdatering efter respektive process är klar. 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).
(Självklart med helt andra siffror!)

Så långt allt väl. Dags att testa så att dessa ISO/img filer är kopierade korrekt.
OBS! Detta har jag inte haft möjlighet till att testa, så jag vet inte om det fungerar. Du kör dett på egen risk!!!
Men kommando syntax för test är i alla fall (tror jag):
fdisk -l /dev/enhet /mnt/ext/filnamn.iso

Dags att stänga av datorn, byta M.2 disk och kopiera de nyss skapade kopiorna av den gamla M.2 disken till den nya...

Åter igen, starta datorn på Live media (Slackware live på USB minne).

Se till så att du har monterat (mounted) din externa enhet igen (/mnt/ext), och kan läsa ifrån den.

Om Lösning 1:
Kopiera kopian av den gamla M.2 disken till den nya. I korthet så gör du tvärt om mot när du skapade kopian.
dd if=/mnt/ext/m2.iso of=/dev/nvme0n1

OBS! Om den nya M.2 disken nu är större än den gamla, så "mister" du utrymme. Du kan ordna detta med gparted.
Viktigt Viktigt!!!! Du ökar storleken på utrymmet i slutet av disken, annars riskerar du att ditt system inte startar.

Om Lösning 2:
Kopiera en iso/img i taget
dd if=/mnt/ext/m2_efi.iso of=/dev/nvme0n1p1
dd if=/mnt/ext/m2_root.iso of=/dev/nvme0n1p2
dd if=/mnt/ext/m2_home.iso of=/dev/nvme0n1p3
etc...

OBS! Om den nya M.2 disken nu är större än den gamla, så "mister" du utrymme. Du kan ordna detta med gparted.

Men om du har valt lösning 2 och den nya M.2 disken är större, så kan du använda gparted för att göra dessa partitioner större.
Hur? Du återställer en partition åt gången, kör gparted och ändrar aktuell partitions storlek. OBS! EFI partitionen kan du inte ändra storlek på!!

Kort version: Återställ EFI partitionen och / (root partitionen), kör gparted och ändra storlek på / (root), om det är det du vill.
                     Återställ sedan /home partitionen, kör gparted och ändra partitionens storlek.
                     Fortsätt med resterande partitioner...

Lång version: Läs igenom manualen för gparted, antingen på Engelska eller Svenska
                       Men i stort sett är det bara att följa anvisningarna på skärmen, steg för steg enligt manualen.

Scenario 2:
Nu blev det genast mycket enklare. I princip gör du som ovan, men i stället för extern disk, så kopierar du disk1 -> disk2 direkt.
Steg för steg som ovan, använder gparted om du ska ändra storlek på någon partition ( / (root) eller /home, annan partition).

Scenario 3:
Precis som Scenario 2, kopiera disk1 -> disk2.

Scenario 4: ?


(artikeln är som jag nämnde tidigare, under konstruktion).

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.

×