OpenBSD GPT-n, nem akar települni

 ( TCH | 2017. június 10., szombat - 17:44 )

Van egy GPT-s SSD-m, amin már van egy NetBSD. Most akarnék rakni mellé egy OpenBSD-t is. Bootoltam egy Debian telepítőt és létrehoztam neki a (8GB-os) partíciót, utána már az OpenBSD telepítő alatt beállítottam a partíció típusát ($A6, OpenBSD), mondtam neki, hogy flag as bootable, adtam neki labelt is, aztán kiírtam a táblát. Az OpenBSD fel is ismeri, hogy ott egy "OpenBSD area" van és meg is kérdezi, hogy települjön-e oda, de amikor mondom, hogy de, akkor nem teszi, hanem inkább a kérdést teszi fel megint és megint, végtelen ciklusban.

Mi baja van, mit rontottam el?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Az OpenBSD-telepítőben ! majd Entert nyomva az

# fdisk -v sd?
# disklabel -h sd?

parancsok mit írnak ki (? = az adott meghajtó)?

> # fdisk -v sd?

http://oscomp.hu/depot/openbsd_fdisk_p1.jpg
http://oscomp.hu/depot/openbsd_fdisk_p2.jpg

> # disklabel -h sd?

http://oscomp.hu/depot/openbsd_disklabel.jpg

A disklabel szerint csak két partíció (a NetBSD partíciói) van, viszont az fdisk meg látja az OpenBSD-ét (meg a Linuxos parted is). Ez mitől van? Ez az oka, hogy nem telepszik?

Sejtem, hogy nem kellett volna Debian alatt létrehozni az OpenBSD-nek a „partícióját”, mert a disklabellel létrehozott slice-ok maguk a partíciók BSD-ben.

A képek szerint a két „NetBSD-partíció” = i és j slice a disklabelben.

* 0: OpenBSD 554645F0-D6D3-4219-AB11-9A5F5A3B4839 (nincs slice megadva a disklabellel)
  1: NetBSD FFS 49F48D5A-B10E-11DC-B99B-0019D1879648 (7,5 GB, /dev/sd1i)
  2: NetBSD swap 49F48D32-B10E-11DC-B99B-0019D1879648 (1,9 GB, /dev/sd1j)

Ha megvolt a backup (vagy nem fontosak az SSD-n az adatok), akkor a disklabel -E parancsot meghívva (előtte ! Enter a telepítőben) létre lehet hozni az OpenBSD-nek való slice-okat. Itt van egy bevált layout, de akár ettől teljesen eltérőt is lehet készíteni:

--- snip ---
16 partitions:
#               size        offset  fstype [fsize bsize   cpg]
  a:           1800M          edit  4.2BSD   2048 16384 12958 # /
  b:           1200M          edit    swap                    # none
  c:         127241M                0  unused                    
  d:           1024M          edit  4.2BSD   2048 16384  8250 # /tmp
  e:           1783M          edit  4.2BSD   2048 16384 12958 # /var
  f:           9826M          edit  4.2BSD   2048 16384 12958 # /usr
  g:         111608M          edit  4.2BSD   2048 16384 12958 # /home

Interaktív módon meg kell adni a kívánt beállításokat:

# disklabel -E sd1
Label editor (enter '?' for help at any prompt)
> a a (utána Enter; mountpoint / méretnek nem kell sok)
> a b (utána Enter; mountpoint swap méretnek nem kell sok)
(a c kimarad, mert az jelöli az egész SSD-t)
> a d (utána Enter; mountpoint /tmp méretnek nem kell sok)
> a e (utána Enter; mountpoint /var)
> a f (utána Enter; mountpoint /usr)
> a g (utána Enter; mountpoint /home)
> w (utána Enter; write label to disk)
> q (utána Enter; quit & save changes)

Ezek után a telepítőhöz visszatérve remélhetőleg fel fogja ismerni az OpenBSD-area-t és a fent, kézzel megadott mód szerint fog települni a rendszer.
――――――――――
If your computer is a wooden ship, X is the termite colony that might eat through the hull of your ship and sink it some day. Firefox is the cluster of icebergs that are currently surrounding your ship. ―NH

Köszi, de ez így az egész SSD-t fel fogja használni, vagy csak azt a 8 GB-t, amit én kijelöltem neki? Van olyan lehetőség, hogy megmondom a disklabel-nek, hogy automatikusan darabolja fel a megadott partíciót magának? Mert erre még menni fog más is, meg a NetBSD is meg kéne, hogy maradjon.

Amíg nem adsz w, majd q parancsot a disklabelnek és x paranccsal (kopik a helyesírásom) kilépsz, addig nem fog semmit változtatni az SSD-n.

Próbáld ki, hogy mit változtat A parancs kiadásával (a kijelölt/megadott OpenBSD-részen belül az összes helyet felhasználja és automatikusan feldarabolja).

Update:
Próbaként megnéztem a saját SSD-men, és a-tól k-ig hoz létre slice-okat, azaz a NetBSD-t hazavágná az A.

Amíg nem változtatod az i és j slice-okat, vagy az A, vagy bármely más parancs nem változtatja meg, addig a NetBSD az SSD-n érintetlen marad. Akár kézzel is szerkesztve, az a a parancs, (ami után megadod, hogy 7584M hely legyen a /-nek) és az a b parancs (512M-et megadva a swap-nak) kiadása után meg is lesz a 8 GB-os OpenBSD-nek a hely.

A más alatt ha Windowst, vagy GNU/Linuxot értesz (ha jól rémlik), akkor azoknak külön partíció kell (értelemszerűen): Most már beugrott, hogy a Windows partíciója mellett létre kellett hoznom egy OpenBSD-partíciót, azon belül disklabellel slice-okat csinálni az OpenBSD-nek és így működött a Windows+OpenBSD dual-boot (hurrá, taps, hurrá!).

tl;dr:
Amíg x-et nyomsz és nem w-t és q-t, addig nyugodt szívvel, az adatok elvesztése nélkül kísérletezgethetsz.

Oké, létrehoztam egy 6656 MB-s "a" slice-ot és egy 1536 MB-s "b" swap slice-ot. De a mountpointot nem tudtam beállítani n-nel, mert közölte, hogy az csak akkor valid, ha -f paraméterrel futtatom a disklabel-t, amire a manual azt mondja, hogy az írja ki az fstab-ba a táblát, dehát itt még nincs fájlrendszer, hova írjam ki? Hogy lehet beállítani a mountpointokat?

Elnézést, az én hibám, amiért rosszul emlékeztem és így nem akar működni. A disklabel a telepítő részeként el fog indulni, miután ki lett választva a root disk.

Fel fogja ajánlani (a slice hozzáadása, az offset, a méret és a fájlrendszer megadása után) a mountpointokat, miután meg lett adva neki, hogy a lemezt miként használja fel (Whole Disk, OpenBSD Area, stb.); amúgy meg a kiválasztott mód szerint automatikusan hozza létre a slice-okat és azzal együtt a megfelelő mountpointokat.

De nem ez történik. Én létrehoztam kézzel a két slice-ot, aztán hiába akarom kiválasztani az OpenBSD area-t, ugyanúgy visszadob, hogy (W)hole Disk, (O)penBSD Area, (E)dit. A root disket hogy választom ki? Az fdisk-ben már beflaggeltem a partíciót és ki lett választva, hogy "A6" a típusa, alatta meg ott van a két slice; 4.2BSD és swap.

Furcsa, amiért visszadob. Bootnál bsd.rd-t indítva és (I)nstallt kiválasztva (network interface configure és root account password, stb. egészen az időzóna beállítása után) fogja kiírni, hogy:

Available disks are: sd1.
Which disk is the root disk? ('?' for details) [sd1]

Itt lehet kiválasztani a root disket, utána pedig elindítja a disklabelt magától, ahol:

(W)hole Disk, (O)penBSD Area, (E)dit

Kiválasztásával lehet tovább haladni.

Elvileg az (E)dit kiválasztásával magad módosíthatod, azaz megint törölheted és hozzáadhatod az a slice-ot a /-nek, a b slice-ot pedig a swapnak. Nem tudom miért dobál vissza és nem csinálja azt, amit csinálnia kellene.

Ugye itt dob vissza a telepítő, pedig nem kellene neki. Én friss snapshottal próbáltam a fentieket, GPT-vel nincs tapasztalatom, eddig csakis MBR-t használtam.

> Itt lehet kiválasztani a root disket, utána pedig elindítja a disklabelt magától, ahol:
>
> (W)hole Disk, (O)penBSD Area, (E)dit
>
> Kiválasztásával lehet tovább haladni.

Igen, itt akad el.

> Elvileg az (E)dit kiválasztásával magad módosíthatod, azaz megint törölheted és hozzáadhatod az a slice-ot a /-
> nek, a b slice-ot pedig a swapnak. Nem tudom miért dobál vissza és nem csinálja azt, amit csinálnia kellene.

Hát, sajnos itt nekem nem ez megy. Ha editet kérek, akkor az fdisk jön fel és a 0. partíciót szerkesztve megadhatom a típust, a labelt, az offsetet és a méretet, de a slice-okat nem. Viszont az fdisk-ben nem találtam olyat, hogy új partíció létrehozása, így csak az maradt, hogy Debian alól hozom létre.

Viszont most vettem észre, hogy amikor visszadob, akkor a sorok közt elbújt egy üzenet is, miszerint: "No EFI Sys partition in GPT, try again.". Rákerestem, ezt találtam: http://man.openbsd.org/FreeBSD-11.0/uefi.8 Ezek szerint ennyi a baja, hogy kéne neki egy FAT partíció? Jól értem, hogy ez nem slice, hanem külön partíció?

Nincs tapasztalatom a GPT/UEFI stb.-vel, sosem próbáltam kísérletezni vele:

Amit ki tudtam következtetni belőle, az a "No EFI Sys partition in GPT, try again." szerint ahogyan az http://man.openbsd.org/fdisk "TYPICAL LAYOUT" résznél kellene lennie EFI Sys külön partíciónak (ami nem slice).

Az, hogy ezt hogyan kellene megcsinálni, hogy GPT-nek megfelelő partíciók, a FreeBSD-hez és az OpenBSD-hez szükséges partíciók és slice-ok és az ezeken kívüli esetleges partíciókhoz való beállítások meglegyenek és működjön is, arról semmi infóm nincs, hogy merre kellene elindulni.

Én azzal is beérném már, ha csak azt csinálná a telepítő, amit mondok neki. Létrehoztam a partíciót a Debian telepítője alól, 10 MB FAT32. Ehhez képest az OpenBSD telepítője FAT12-nek ($01) látja és ha mondom neki, hogy jó, akkor állítsd át FAT32-re ($0B), akkor nem teszi meg. És továbbra is azt mondja, hogy nincs EFI Sys partíció...

Az OpenBSD-misc vagy az OpenBSD-tech levelezőlistán nálam okosabbak remélem meg tudják oldani a problémát. Próbáld meg ott feltenni a kérdést. /me már tanácstalan ¯\_(ツ)_/¯

Rendben van, köszi az eddigieket.

Nincs mit, szívesen!