Portál AbcLinuxu, 3. května 2025 23:57
Konečně dorazily dva nové SSD disky Samsung SSD 840 EVO 120G, jimiž jsem měl v úmyslu nahradit dva stávající SSD disky OCZ-VERTEX3 60GB, kterým minulý týden skončila záruka. Pro disky o něco větší jsem se rozhodnul především z toho důvodu, že za uplynulý rok objem mnou skladovaných git repozitářů přeci jenom o nějaký ten gigabajt vzrostl a také se mi moc nelíbilo procento zbývajícího místa - prakticky nebylo kam dělat snapshoty.
Možnosti, jak přehodit data byly prakticky dvě:
Rozhodnul jsem se pro druhou variantu. Především z toho důvodu, že mi přišla z hlediska zachování dat bezpečnější. Co kdyby na degradovaném disku nebyly některé odzrcadlené bloky v pořádku?
Nejprve jsem připojil nový disk přes USB adaptér a vytvořil na něm primární diskový oddíl. Zapoměl jsem mu však nastavit bootovací flag, což se později ukázalo jako trapné opomenutí - takže bacha na to.
Pak jsem notebook vypnul a vyměnil ho za disk v rámečku. Před zapnutím notesu jsem původní disk přes adaptér zapíchnul do stroje, aby při startu neřval že mu něco chybí - stejně zařval, protože to byl zrovna původní disk /dev/sdb1
, který fungoval jako primární, takže zavádění skončilo v ramdisku. Ramdisk ale obsahuje nástroj potřebný pro manipulaci s btrfs, tudíž žádná tragédie.
(initramfs) cat /proc/partitions major minor #blocks name 8 0 58615704 sda 8 1 52428800 sda1 8 16 117220824 sdb 8 17 117217280 sdb1 11 0 1048575 sr0 8 32 58615704 sdc 8 33 52428800 sdc1 (initramfs) btrfs fi show Label: raid uuid: 8d567f20-2ab3-436e-a52f-c7ed7e1c8879 Total devices 2 FS bytes used 37.21GiB devid 3 size 50.00GiB used 50.00GiB path /dev/sdc1 devid 4 size 50.00GiB used 50.00GiB path /dev/sda1
Nejprve jsem vytvořil dočasný adresář /mnt
, na který jsem namountoval kompletní Btrfs FS v módu raid1 a pak do něj přidal diskový oddíl nového disku, který se aktuálně hlásil jako /dev/sdb1
. Domníval jsem se, že u nového disku by nemuselo být nutné provádět TRIM celého zařízení, proto jsem přidal také parametr "-K"
(initramfs) mkdir /mnt (initramfs) mount /dev/sdc1 /mnt (initramfs) btrfs device -K add /dev/sdb1 /mnt (initramfs) btrfs fi show Label: raid uuid: 8d567f20-2ab3-436e-a52f-c7ed7e1c8879 Total devices 2 FS bytes used 37.21GiB devid 3 size 50.00GiB used 50.00GiB path /dev/sdc1 devid 4 size 50.00GiB used 50.00GiB path /dev/sda1 devid 5 size 111.79GiB used 0.00GiB path /dev/sdb1
No a pak, aby se zrcadlené datové bloky z původního disku přesunuly na nový, jsem z Btrfs FS vyhodil blokové zařízení /dev/sdc1
. Což sice možná nebyl ten správný krok, když jsem to měl skrz ně namountované, ale nešť. Zpočátku to bylo v pohodě, ale pak to začalo zvracet hlášky, které mě lehce znejistily - viz snímek 1.
.. [ 706.647702] btrfs: bdev /dev/sdc1 errs: wr 901527, rd 657, flush 0, corrupt 0, gen 0 ..
Při letmém prohledání googlem mi vypadly příspěvky z diskuzí, které obvykle měly položku corrupt nenulovou, tudíž jsem usoudil že nepůjde o nic fatálního. Ale v klidu jsem rozhodně nebyl. Také jsem si říkal, jestli za tím nevězí problematická komunikace přes USB převodník. Každopádně operace doběhla, Btrfs FS se jinak jevil v pořádku, tak jsem usb adaptér odpojil a stroj restartoval.
Vše naběhlo jako obvykle, tak jsem přikročil k výměně druhého disku.
Opět - nový dovnitř, původní na USB adaptér. Po restartu opět skončilo zavádění v ramdisku, takže nic nového. Vytvořil jsem adresář /mnt
, zkontroloval diskové oddíly, připojil Btrfs FS, který měl zas jako primární zařízení /dev/sdc1
, a přidal do něj diskový oddíl nového disku /dev/sda1
. Tentokrát jsem ovšem vynechal parametr "-K". Průběh operace můžete vidět na snímku 2. Přesun dat se - na rozdíl od prvního disku - obešel bez jakýchkoliv chybových hlášek.
Po ukončení přesunu jsem stroj restartoval se stále zapíchnutým USB adaptérem, protože oba disky ve stroji dosud neměly nainstalován zavaděč, bylo třeba spustit..
root@stroj~# dpkg-reconfigure grub-pc
Pak jsem USB adaptér odpojil a opět provedl restart. Jak už jsem zmínil - opět to nedopadlo, ovšem díky mé vlastní nepozornosti, protože diskové oddíly na nových discích neměly nastaven bootovací příznak. Takže jsem adaptér opět připojil, nastartoval, nastavil boot flag, vytáhnul adaptér a tentokrát už dopadl restart OK.
That's all Folks!
Tiskni
Sdílej:
/dev/sdc1
.
Jinak operace "replace" v podstatě pouze zkombinuje operace "add" a "delete". Časově to vyjde nastejno.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.