Telepített OpenBSD újrapartícionálása

Kellő ismeret hiányában telepítettem egy OpenBSD 7.1 -et, természetesen nem teljesen a default beállításokat használva. Bele is futottam egy pofonba. Telepítéskor egyéni partícionálást használtam, így lett egy ~200 GB méretű partícióm /-ba csatolva, meg egy swap partícióm. A pofon pedig: a default bootloader 1024 cylindert tud beolvasni a root partícióból, azon belül kell lennie a config fájlnak, meg a kernelnek. Bővebben.

Tanácsok alapján az UEFI boot tűnt jó ötletnek, de nem tudtam működésre bírni. Először is, mivel a telepítés során a partícionáláskor OpenBSD disk boundaries beállításával kezdtem, hiába volt még hely egy EFI partíció létrehozására, a Grub nem találta meg, mert az egész diszket látta csak, mitha egy msdos partícióból állna az egész. Azt hiszem ez volt az, amit az OpenBSD sd3c -nek látott (FIXME). Másik lemezen létrehoztam az EFI partíciót, a grub beállításokban addig el is jutottam, hogy az OpenBSD BOOTX64.EFI-t el is indította innen, viszont megállt egy kellemes  invalid signature hibával. BIOS-ban minden secure opciót tiltottam, mindenféle beállítást próbáltam, de maradt ugyanaz a hiba. Elgyengültem, feladtam, pedig lehet nem messze voltam már a sikeres boot-tól...

Maradt tehát, hogy újrapartícionálom a lemezt:

  1. Clonzilla-val klónoztam az OpenBSD-t egy másik lemezre.
  2. Linux alól (dualboot, Manjaro régóta, új lemezre került az OpenBSD) szerkesztettem a Grub2-t, hogy a klónozott OpenBSD-t indítsa. Már a grub is köpte a hibaüzeneteket a két tök egyforma OpenBSD lemez miatt, de azért generált egy jó grub.cfg-t.
  3. Klónozott OpenBSD indítása, természetesen nem tud bootolni, mert két lemez disklabel UID-ja ugyanaz, ezért kaptam egy single user prompt-ot. disklabel -E sd3 (eredeti obsd), majd "i" az UID szerkesztéséhez, (az eredeti utolsó karakterét változtattam meg), majd "w" a mentéshez és "q" a kilépéshez. 
  4. Ezután reboot és a klónozott OpenBSD boot-olt (az eredeti hibával), már nem volt UID ütközés.
  5. Az eredeti lemez sd3a partícióját töröltem (swap sd3b partíció maradt), majd a helyén létrehoztam egy 1024 cylinder méretű sd3a (8GB) és egy sd3d-t a maradék helyen (~192GB). newfs-el formáztam, majd csatoltam őket a /mnt/{a,b} alá
  6. # cp -Rp -vel másoltam az /usr, /home és /var könyvtárakat a /mnt/d (sd3d) alá, a maradékot a /mnt/a (sd3a) alá. Majd mkdir /mnt/a/mnt/ext-fs. A /mnt/a-ban ln -s {usr,home,var} mnt/ext-fs/{usr,home,var}
  7. /mnt/a/etc/fstab-ban szerkesztés: megfelelő UID.a (sd3a) csatolása / -re, UID.b (sd3b) csatolása /mnt/ext-fs útvonalra. 
  8. Lényeg: # installboot -r /mnt/a -v sd3 /usr/mdec/biosboot /usr/mdec/boot <- a bootloader-ek (elsődleges, másodlagos) megfelelő helyre másolása
  9. Linux alól grub2 szerkesztése, már nincsenek hibaüzenetek. OpenBSD indítása az eredeti lemezről.
  10. Sikeres boot az eredeti lemezen lévő OpenBSD-be, a nyitóban lévő hibaüzenet (nem tudja olvasni az /etc/boot.conf fájlt) nincs többé :)

Gány? Lehet. Az sd3a (/, 8GB) foglal ~200MB-ot, az sd3b (/mnt/ext-fs, ~192GB) foglal ~5Gb-ot jelenleg. Ezzel elleszek egy darabig (FIXME).