Kópia systémového disku (Manjaro,btrfs,UEFI) na druhý disk.
Rozhodol som sa presunúť Manjaro Linux na nový disk. Chcel som sa zoznámiť s btrfs snapshot, send/receive a UEFI. Preto som urobil presun ručne bez nástrojov ako je napríklad clonezilla.
Prečo presun na nový disk?
Pozrite sa na test diskov:
Samsung SSD 850 $ sudo hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 17428 MB in 1.98 seconds = 8794.03 MB/sec Timing buffered disk reads: 1598 MB in 3.00 seconds = 532.30 MB/sec KINGSTON A400 $ sudo hdparm -Tt /dev/sdb /dev/sdb: Timing cached reads: 17356 MB in 1.98 seconds = 8757.39 MB/sec Timing buffered disk reads: 90 MB in 3.06 seconds = 29.38 MB/sec
Manjaro som inštaloval pred siedmymi mesiacmi na Kingston A400. "Kvalita" Kingston disku sa prejavila. Staré súbory číta rýchlosťou cca 6MB/s, nové cca 250MB/s. Má asi 4 roky, ale Samsung je rovnako starý a nemá žiadne problémy.
Čo som použil pre presun.
Aktuálny živý systém Manjaro, btrfs snapshot zabezpečí integritu prenosu. Pri inštalácii systému som mal kernel 5.13, teraz mám kernel 5.17.
Je potrebné zaistiť aby sa počas presunu nerobili veľké dátové prenosy.
Vytvoril som si niekoľko skriptov, ktoré som kreatívne :-) nazval kopia1.sh ... Skripy a ostatné príkazy spúšťam ako root (sudo su). Okrem zabráneniu chýb majú skripty za úlohu rýchle vytvorenie snapshot a tým podporu konzistencii dát.
Gparted - rozdelenie, formát disku.
Rozdelenie starého disku vyzerá takto:
Podľa neho som rozdelil nový disk:
Pre UEFI treba požiť tabuľku oddielov gpt, nie msdos.
Zistenie údajov pre prenos systému.
Manjaro som pôvodne iba testoval, preto som nechal automatické delenie disku:
$ sudo btrfs subvolume list / ID 256 gen 81438 top level 5 path @ ID 257 gen 81438 top level 5 path @home ID 258 gen 81435 top level 5 path @cache ID 259 gen 81438 top level 5 path @log ID 468 gen 80962 top level 5 path timeshift-btrfs/snapshots/2022-05-25_12-51-31/@ ID 469 gen 80964 top level 5 path timeshift-btrfs/snapshots/2022-05-25_12-51-45/@ ID 470 gen 81246 top level 5 path timeshift-btrfs/snapshots/2022-05-26_04-51-11/@
Vidieť ktoré subvolume treba kopírovať, timeshift zálohu nekopírujem. Všetky subvolume zdieľajú priestor na /dev/sdb2.
/etc/fstab ukáže kde sú subvolume nainštalované a UUID partícií:
UUID=449E-04DF /boot/efi vfat umask=0077 0 2 UUID=e0d965ec-f56f-4851-9c15-2772b6ad7c0b / btrfs subvol=/@,defaults,noatime,space_cache,ssd,compress=zstd,commit=120 0 1 UUID=e0d965ec-f56f-4851-9c15-2772b6ad7c0b /home btrfs subvol=/@home,defaults,noatime,space_cache,ssd,compress=zstd,commit=120 0 2 UUID=e0d965ec-f56f-4851-9c15-2772b6ad7c0b /var/cache btrfs subvol=/@cache,defaults,noatime,space_cache,ssd,compress=zstd,commit=120 0 2 UUID=e0d965ec-f56f-4851-9c15-2772b6ad7c0b /var/log btrfs subvol=/@log,defaults,noatime,space_cache,ssd,compress=zstd,commit=120 0 2 tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
lsblk ukáže UUID partícií všetkých diskov:
$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 vfat FAT32 NO_LABEL F7A0-514B └─sda2 btrfs Manjaro 9292b74a-448c-47f5-85a7-09862e1317d4 sdb ├─sdb1 vfat FAT32 NO_LABEL 449E-04DF 298,8M 0% /boot/efi └─sdb2 btrfs e0d965ec-f56f-4851-9c15-2772b6ad7c0b 187,7G 16% /var/cache /var/log /home / sdc ├─sdc1 ext4 1.0 data1 168efbd8-5fc5-46eb-9929-78be1a51edbb 34,7G 59% /media/data1 └─sdc2 btrfs data2 52398df8-1784-4935-ba50-ba10c5e93761 100,9G 88% /media/data2
Kópia systému.
Mount nového disku.
Použil som parametre z fstab okrem space_cache:
mount -o defaults,noatime,ssd,compress=zstd,commit=120 /dev/sda2 /mnt
Snapshot, send/receive.
kopia1.sh snapshot + send/receive (prenesie iba readonly snapshoty):
btrfs subvolume snapshot -r / /root-z #@ btrfs subvolume snapshot -r /var/cache /cache-z #@cache btrfs subvolume snapshot -r /var/log /log-z #@log btrfs subvolume snapshot -r /home /home-z #@home sync time btrfs send /root-z | btrfs receive /mnt time btrfs send /cache-z | btrfs receive /mnt time btrfs send /log-z | btrfs receive /mnt time btrfs send /home-z | btrfs receive /mnt sync
koopia2.sh premenovanie subvolume (a zbavenia sa readonly) na cieľovom disku:
btrfs subvolume snapshot /mnt/root-z /mnt/@ btrfs subvolume snapshot /mnt/cache-z /mnt/@cache btrfs subvolume snapshot /mnt/log-z /mnt/@log btrfs subvolume snapshot /mnt/home-z /mnt/@home sync
kopia3.sh mazanie nepotrebnych snapshotov:
btrfs subvolume delete /root-z btrfs subvolume delete /cache-z btrfs subvolume delete /log-z btrfs subvolume delete /home-z btrfs subvolume delete /mnt/root-z btrfs subvolume delete /mnt/cache-z btrfs subvolume delete /mnt/log-z btrfs subvolume delete /mnt/home-z sync
Po každom skripte som kontroloval či je všetko v poriadku pomocou:
btrfs subvolume list / btrfs subvolume list /mnt
Ak je všetko v poriadku:
umount /mnt
Konfigurácia boot disku.
Nainštaloval som subvolume @ do /mnt a /dev/sda1 do /mnt/boot/efi:
mount -o subvol=/@,defaults,noatime,ssd,compress=zstd,commit=120 /dev/sda2 /mnt mount /dev/sda1 /mnt/boot/efi
Kópia efi.
cp -a /boot/efi /mnt/boot
Týmto je nainštalovaný grub.
Konfigurácia grubu.
Nová verzia kernelu a btrfs vytvoreného gparted neberú parameter mount space_cache, preto som ho odstránil z fstab na novom disku.
Zmena UUID podľa lsblk v /etc/fstab na novom disku, v mojom prípade:
/dev/sda1 z 449E-04DF na F7A0-514B /dev/sda2 z e0d965ec-f56f-4851-9c15-2772b6ad7c0b na 9292b74a-448c-47f5-85a7-09862e1317d4
kopia4.sh mount virtuálnych adresárov pre update-grub:
mount --bind /dev /mnt/dev && mount --bind /dev/pts /mnt/dev/pts && mount --bind /proc /mnt/proc && mount --bind /sys /mnt/sys && mount --bind /run /mnt/run
Zmena parametrov grub (podľa fstab) a initramfs:
chroot /mnt update-grub mkinitcpio -P exit umount --recursive /mnt
Reštart, vybrať v boot menu (u mňa F12) nový disk.
Konfigurácia UEFI.
Výpis UEFI konfigurácie:
$ efibootmgr -v BootCurrent: 0009 Timeout: 1 seconds BootOrder: 0009,0006,0000,0002,0003,0004 Boot0000* Manjaro HD(1,GPT,9678c4d3-ec2e-6d49-b7d2-9ce3a8b36747,0x1000,0x96000)/File(\EFI\MANJARO\GRUBX64.EFI) Boot0002* Samsung SSD 850 EVO 250GB BBS(HD,,0x0)..BO Boot0003* KINGSTON SA400S37240G BBS(HD,,0x0)..BO Boot0004* ST1000LM048-2E7172 BBS(HD,,0x0)..BO Boot0006* UEFI OS HD(1,GPT,9678c4d3-ec2e-6d49-b7d2-9ce3a8b36747,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)..BO Boot0009* UEFI OS HD(1,GPT,c1baf4f8-2494-4f0c-89a2-ee509bdda7c3,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Pridanie novej položky:
sudo efibootmgr -c -L "Manjaros" -l '\EFI\MANJARO\GRUBX64.EFI'
Nová konfigurácia:
$ efibootmgr -v BootCurrent: 0009 Timeout: 1 seconds BootOrder: 0001,0009,0006,0000,0002,0003,0004 Boot0000* Manjaro HD(1,GPT,9678c4d3-ec2e-6d49-b7d2-9ce3a8b36747,0x1000,0x96000)/File(\EFI\MANJARO\GRUBX64.EFI) Boot0001* Manjaros HD(1,GPT,c1baf4f8-2494-4f0c-89a2-ee509bdda7c3,0x1000,0x96000)/File(\EFI\MANJARO\GRUBX64.EFI) Boot0002* Samsung SSD 850 EVO 250GB BBS(HD,,0x0)..BO Boot0003* KINGSTON SA400S37240G BBS(HD,,0x0)..BO Boot0004* ST1000LM048-2E7172 BBS(HD,,0x0)..BO Boot0006* UEFI OS HD(1,GPT,9678c4d3-ec2e-6d49-b7d2-9ce3a8b36747,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)..BO Boot0009* UEFI OS HD(1,GPT,c1baf4f8-2494-4f0c-89a2-ee509bdda7c3,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Po reštarte automaticky urobí boot Manjaros.
Záver.
Urobil som si také domáce disaster recovery. Plánujem inkrementálnu zálohu pomocou btrfs send/receive + tar /boot/efi.
Nainštaloval som Ventoy na flash USB, nahral som iso systemrescue. Sytemrescue obsahuje xfce, takže v prípade poruchy mám k dispozícii programy na ktoré som zvyknutý. K tomu zálohy, skripty, tento text a trúfnem si na obnovu systému
Pre pridávanie komentárov sa musíte prihlásiť.
Musím povedať, že si sa toho zhostil statočne. Ja by som na niečo také nemal nervy a riešil by som to jednoduchým klonovaním, čo by iste išlo v danom prípade bez problémov. Ešte ma napadlo, že čiste teoreticky by sa to malo dať urobiť aj s podporou TimeShiftu. Minimálne si matne spomínam, že v dokumentácii k TimeShiftu bolo spomenuté aj takéto použitie.
Noo to je dobrá otázka, ak sa nemýlim tak TimeShift zrkadlí celú súborovú štruktúru a pri obnove zálohy v rovnakom systéme cez soft prepisuje len zmenené súbory. Ale či by to šlo pri klonovaní a skopírovaní komplet súborov na nový disk som nikdy neskúšal, vždy robím čisté inštalácie a mám uložené len najdôležitejšie konfigy. Predtým som používal na zálohy práve CloneZillu.
A keďže na novom disku nebude nič, prepíše všetky súbory na stav podľa poslednej zálohy.
Teoreticky by to mohlo fungovať, nemám odskúšané.
Cool, ja som sa nikdy neodhodlal k použitiu btrfs a stále som bol pred SSD-čkami na XFS a od SSD som na ext4. Dáta som len surovo prekopíroval cez rsync (
rsync -aEWSlhv -e "ssh -T -c aes128-gcm@openssh.com -o Compression=no -x" --no-compress src dst
)....systembak to zvladne na 3 klikk...
- btrfs som začal používať na ubuntu 12.04 po preinštalovaní na nový disk - asi od 2014. MX Linux 18,19, teraz Manjaro - zatiaľ som nemal problémy. virtulbox,swap,databázu mám ale na ext4 partícii. Vivaldi adresár a cache zasa na tmpfs.
- timeshift je pre zálohu málo použiteľný. Robí automatickú zálohu po každom update, po každej inštalácii nového programu. Je fajn vrátiť sa naspäť po nezdarenom update, ale pre zálohu (aspoň podľa mňa) nie. Zálohujem na externý disk, ktorý potom odpojím. Pre timeshift by musel byť stále pripojený.
Timeshift odporúčam vypnúť automatické zálohy a vytvárať si ich sám, optimálne pred update systému. Netvrdil by som že je málo použiteľný, práve naopak.
Používam rolling update distribúciu Manjaro. Timeshift je skvelý soft ktorého sa nechcem vzdať. V prípade problémov po update sa dá nabootovať cez grub2 systém pred update. Pre stabilnejšiu distribúciu je vypnutie automatickej zálohy asi riešenie
Preto volím 2 zálohy - automatickú cez timeshift a riadenú cez script.
Kúpil som konečne Gigabyte AORUS Gen4 7000s 2TB a chcem sa spýtať či idú Nove SSD PCI4 vôbec bootovat na Legacy aj rozdelený disku pre Linux . Alebo je to už všetko prispôsobene na UEFI . Cez starý spôsob mi idú 2 linuxové a Win10.Dík