POZADÍ
Karta SD byla nakonfigurována pro Raspberry pi. Cílem je přesně replikovat SD kartu (OS, aplikace, data), aby replika fungovala v rPi přesně jako původní hlavní SD karta.
AKTUALIZACE:Předpokládejme:
- replikace bude provedena na notebooku nakonfigurovaném s operačním systémem podobným UNIX
- replikace se nesmí provádět z rPi
- cílová SD karta je stejné značky/modelu
- zdrojová karta SD je rozdělena na různé systémy souborů:
Otázky
Jaké možnosti klonování UNIX jsou k dispozici pro notebook Ubuntu HP se slotem pro SD kartu a USB čtečkou/zapisovačkou SD karet.
Je rozdíl, jestli je USB SD karta RW čtečkou nebo zapisovačem?
Cílem (omezením) je vyhnout se nákupu dalšího hardwaru.
Postřehy k řešení
date; sudo sh -c 'cat sdcard.image >/dev/mmcblk0'; date
Po 3. června 17:53:18 EDT 2019
[sudo] heslo pro uživatele:
Po 3. června 23:42:17 EDT 2019
date; sudo sh -c 'pv sdcard.image >/dev/mmcblk0'; date
Út 4. června 00:33:50 EDT 2019
[sudo] heslo pro uživatele:
119GiB 6:06:12 [5,56MiB/s] [=================================>] 100 %
Út 4. června 06:43:05 EDT 2019
gParted analýza flash SD karty ukazuje identické rozdělení:
Přijatá odpověď:
Unixové systémy zpřístupňují úložná zařízení prostřednictvím souboru zařízení. Soubory zařízení se v mnoha ohledech chovají jako běžné soubory. Konkrétně, chcete-li vytvořit přesnou kopii úložného zařízení, stačí zkopírovat obsah zdrojového zařízení do cílového zařízení.
Nejprve musíte určit soubor zdrojového zařízení a soubor cílového zařízení. Název závisí na vaší Unixové variantě a na tom, jak je nakonfigurována, ale v praxi jsou soubory zařízení vždy pod /dev
adresář. Pokud máte připojenou kartu SD, můžete zjistit, s čím je soubor zařízení
df /media/sdcard1/some/file/on/the/sdcard
Soubor zařízení je v prvním sloupci. Jiné nástroje mohou poskytnout stejné informace, například zprávy protokolu jádra při vložení karty SD nebo lsblk
příkaz v systému Linux.
Na kartě mohou být oddíly. Pokud ano, zkopírujte celou kartu, i když existuje jeden oddíl, protože některé informace o době spouštění mohou být umístěny mimo oddíl. Pokud například df
zobrazuje /dev/sdb1
v systému Linux zkopírujte /dev/sdb
a nejen /dev/sdb1
.
Pokud vytáhnete SD kartu a znovu ji vložíte, bude mít obvykle stejný název souboru zařízení jako předtím, ale to není zaručeno.
Před kopírováním se ujistěte, že:
- Zdrojové zařízení není připojeno nebo je připojeno pouze pro čtení.
- Cílové zařízení není vůbec připojeno.
- Cílové zařízení je alespoň tak velké jako zdrojové. V systému Linux
lsblk
zobrazí velikost zařízení. - Máte správné cílové zařízení. Všimněte si, že níže uvedený příkaz přepíše svůj obsah, aniž by požadoval potvrzení!
Předpokládejme, že jste určili, že zdrojové zařízení je /dev/sdb
a cílové zařízení je /dev/sdc
. Chcete-li zkopírovat obsah, spusťte následující příkaz jako root:
cat /dev/sdb >/dev/sdc
Pokud používáte sudo, přesměrování >
se musí stát jako root, takže musíte napsat něco jako
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Abyste se ujistili, že omylem nepřepíšete nesprávné zařízení, můžete postupovat ve dvou krocích:
- Dejte uživateli (
gatorback
v mém příkladu) oprávnění ke čtení ze zdrojového zařízení (dev/sdb
v mém příkladu) a zapisovat do zdrojového zařízení (/dev/sdc
v mém příkladu).sudo setfacl -m user:gatorback:r /dev/sdb sudo setfacl -m user:gatorback:w /dev/sdc
- Proveďte kopírování bez sudo.
cat /dev/sdb >/dev/sdc
Obraz disku můžete zkopírovat do souboru a poté zkopírovat soubor obrazu do cílového zařízení. To je užitečné, pokud potřebujete vytvořit více kopií nebo pokud máte pouze jednu čtečku karet SD, nebo chcete-li snížit riziko kopírování nesprávným směrem.
sudo cat /dev/sdb >sdcard.image
- Vytáhněte zdrojovou kartu a vložte cílovou kartu.
- Volitelně ověřte obsah připojením obrázku, např.
sudo mount -o loop -r sdcard.image /mnt
. sudo sh -c 'cat sdcard.image >/dev/sdb'
Pokud chcete pohodlně vidět informace o průběhu, použijte pv
místo cat
(pv
se ve výchozím nastavení instaluje jen zřídka, ale je k dispozici jako balíček ve většině distribucí).