GNU/Linux >> Znalost Linux >  >> Linux

Jak klonovat disky pomocí příkazu Linux dd

V tomto tutoriálu se podíváme na praktický příklad příkazu Linux dd, který mohou správci systému použít k migraci nebo klonování operačního systému Windows nebo operačního systému Linux z většího pevného disku rozděleného ve stylu rozložení MBR nebo GPT na menší SSD. V tomto úryvku použijeme jako příklad systém Windows nainstalovaný na pevném disku s více oddíly. Tato metoda se může značně zkomplikovat v případě, že je pevný disk rozdělen podle schématu MBR a obsahuje rozšířený oddíl s více logickými oddíly nebo jsou oddíly mimo provoz. Doporučuji, abyste tuto metodu nepoužívali, pokud je tomu tak. V takových případech je bezpečnější použít ddrescure, který dokáže naklonovat celé rozložení disku (tabulku oddílů a použité bloky uvnitř jednotlivých oddílů), aniž by skutečně přenesl prázdné místo. DDrescure lze získat instalací balíčku gddrescue z hlavních repozitářů Ubuntu.

KROK 1 – Zmenšit oddíl

Můžete změnit velikost oddílu Linux nebo Windows (zmenšit) na minimální velikost pomocí živé distribuce Linuxu, jako je Gparted, nebo spustit nástroj GUI gparted z obrazu Ubuntu Desktop Live ISO. Další placené linuxové distribuce, které můžete použít pro manipulaci s velikostmi souborového systému diskových oddílů (ext2, ext4, NTFS, xfs), jsou Partition Wizard nebo Parted Magic . Ke zmenšení oddílu NTFS můžete také použít nástroj Microsoft Windows diskmgmt.msc. Zmenšením volného místa na diskovém oddílu se v případě velkých diskových oddílů výrazně zkrátí požadovaný čas, který dd zabere kopírování nepoužívaných bloků disku. V případě velkého oddílu s malým procentem využitého místa je vhodné zmenšit souborový systém, protože nástroj dd zkopíruje také nevyužité místo v procesu (dd také zkopíruje všechny volné bloky oddílu 100 GB nebo 1 TB, který má méně než 10 % využitého prostoru).

KROK DRUHÝ – Klonování disků

Po změně velikosti oddílu na minimum fyzicky připojte druhý disk nebo SSD k řadiči SATA/SCSI atd. počítače a spusťte počítač pomocí distribuce Live Linux. Po nahrání živé distribuce Linuxu do paměti RAM otevřete konzolu Linuxu a spusťte fdisk -l /dev/sda (za předpokladu, že /dev/sda je váš instalační disk systému Windows nebo jednotka C:v prostředí systému Windows) a poznamenejte si poslední " End" sektor (44898303, jak je znázorněno v příkladu níže):

- Příklad 1 – Klonování disku MBR (OS Windows nainstalovaný na druhém oddílu)

V tomto úryvku jsou disky inverzní, takže /dev/sdb představuje instalaci systému Windows a disk a /dev/sda představuje prázdný SSD.

Poté spusťte následující příkaz s právy root, abyste naklonovali instalační disk Windows z HDD (/dev/sdb) na SSD (/dev/sda). Nástroj pv není ve výchozím nastavení v Ubuntu nainstalován. Můžete jej nainstalovat spuštěním:

sudo apt install pv

Poté spusťte proces klonování zadáním níže uvedeného příkazu:

sudo dd if=/dev/sdb bs=512 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sda

POZOR:cílový disk musí mít alespoň velikost celkového prostoru obsazeného všemi oddíly až po oddíl Windows ze zdrojového disku, včetně oddílu Windows.

Vysvětlení příkazu použitého ve výše uvedeném příkladu:

dd – dd znamená „Kopírovat a převádět“. Někdo by mohl říci, že to znamená 'Data Destroyer' (v případě, že zmýlíte příkaz, může dojít k vážnému poškození) nebo Data Duplicate nebo Data Description. Použijte jakýkoli popis, který vyhovuje vašim potřebám!

if - zdrojový disk (vstupní/vstupní soubor)

bs – Hodnota velikosti sektoru z výstupu fdisku (Velikost bloku nebo počet bajtů, které se mají jednou přečíst/zapsat)

počet - Poslední "koncový" sektor z výstupu fdisk zvýšený o jedno celé číslo (+1) - Kolik bloků velikosti 512 by se mělo zkopírovat, než se zastaví. Zde by měl přenést 44099584 sektorů o velikosti 512 bajtů.

conv=sync,noerror - synchronizace I/O a nezastavovat se v případě, že na zdrojovém disku narazíte na chyby bloku

| - Linux pipe (meziprocesový komunikační kanál v Linuxu nebo FIFO)

pv -s 21 GB – sledujte průběh klonování – potrubím by mělo být přeneseno přibližně 21 GB

of - cílový disk, na který jsou ve skutečnosti zapsána data z potrubí (výstupní/výstupní soubor)

V případě, že chcete pracovat s větší velikostí bloku, než je standardní velikost bloku disku (512), řekněme až čtyřnásobek velikosti standardního bloku (2048), pro urychlení můžete provést jednoduchou matematiku a násobit čtyřmi standardní velikost bloku disku (512x4) a poté vydělte celkový počet bloků +1 posledního oddílu čtyřmi.

Příklad:

V tomto příkladu "Konec" sda2:44898303+1 děleno 4. dd bude pracovat s velikostí bloku 2048 bajtů.

sudo dd if=/dev/sda bs=2048 count=44898303 conv=sync,noerror | pv -s 21G |sudo dd of=/dev/sdb

Po dokončení procesu (v závislosti na velikosti a rychlosti vašeho disku to může trvat deset minut nebo dokonce hodin) ověřte cílový disk pomocí stejného příkazu sfdisk a porovnejte výstupy z obou disků. Výsledky by měly být podobné.

- Příklad 2 – Klonování disku GPT (OS Windows nainstalovaný na čtvrtém oddílu)

V tomto úryvku bude dd pracovat s velikostí bloku až osmkrát větší než standardní velikost bloku (4096), aby bylo možné přenést více bloků najednou. Operační systém Windows je umístěn ve čtvrtém oddílu pevného disku. Všechny předchozí oddíly Windows musí být také naklonovány. Disk bude plně zkopírován až do posledního sektoru 19855359, který představuje konec hranice oddílu Windows. Data, která následují po sektoru 19855359+1, představují oddíl D:ve Windows, takže nás tento oddíl nezajímá, protože budeme chtít pouze naklonovat oddíl operačního systému.

Vynásobte osmi standardní velikost bloku na disku (512x8) a poté vydělte celkový počet bloků +1 posledního oddílu osmi, jak je znázorněno na obrázku níže. "Konec" sda4, který představuje oddíl Windows, je 19855359+1 děleno 8. dd pracuje s velikostí bloku 4096 bajtů.

sudo dd if=/dev/sda bs=4096 count=2481920 conv=sync,noerror | pv -s 9G |sudo dd of=/dev/sdb

V tomto příkladu, protože kopírujeme pouze operační systém Windows a ne celá data disku, která následují za čtvrtým oddílem, musíme odstranit poslední oddíl. Můžeme jej odstranit spuštěním nástroje příkazového řádku cgdisk přímo z konzoly, jak je znázorněno na následujících snímcích obrazovky

Ověřte rozdíly v tabulce oddílů na obou discích zadáním příkazu fdisk. Tabulka oddílů by měla být podobná, kromě 5. oddílu z /dev/sda, který by měl být odstraněn z klonovaného disku (/dev/sdb).

KROK TŘETÍ – Otestujte klonovaný disk

Nakonec vypněte počítač, odpojte starý pevný disk a zapněte počítač pouze s novým klonovaným diskem. Během okamžiku by se měl spustit ve vašem operačním systému. V případě, že se počítač odmítne zavést, fyzicky ověřte konektory SATA na základní desce a zkuste je obrátit, nebo přejděte do nastavení BIOS/UEFI a ujistěte se, že je v sekvenci spouštění povolen příslušný disk.

Snažte se nespouštět počítač s připojenými oběma disky, protože by to mohlo zmást bootloader a znemožnit spuštění operačního systému. Po potvrzení, že se váš operační systém spouští normálně, použijte stejný nástroj jako pro zmenšení systému souborů k rozšíření klonovaného oddílu přidáním nepřiděleného místa.

Pomocí této metody dd můžete přenést libovolnou variantu operačního systému Windows nebo Linux se všemi vašimi vlastními nastaveními, nainstalovanými programy a soubory z většího HDD na menší SSD, aniž byste museli instalovat OS od začátku a trávit spoustu hodin jeho přizpůsobením. .


Linux
  1. Jak rozdělit disk v Linuxu

  2. Jak zálohovat nebo klonovat oddíly Linuxu pomocí příkazu „cat“.

  3. Spravujte disky pomocí DiskPart

  1. Jak používat příkaz IP v Linuxu s příklady

  2. Jak nastavit systém souborů ZFS v systému Linux pomocí příkladů příkazů zpool

  3. Jak klonovat oddíl disku Linux přes síť pomocí dd

  1. Jak odstranit oddíl v Linuxu

  2. Jak vytvořit oddíly v Linuxu

  3. Linux alias Command:Jak jej používat s příklady