Portál AbcLinuxu, 31. října 2025 07:38
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.