BHyve + Slackware64 [megoldva]

A korábbi tesztek ( 1. és 2. ) után megint elővettem a netbookot és a bhyve-ot. Miután az első menetben a 7-es CentOS majd a következő körben a 14.04-es Ubuntu és a 8-as Debian is működőképes állapotba került, tényleg a Slackware-t vettem elő. (Mert csak, bár a Slackware-es csomagkezelős sorozat is segített egy kicsit.)

Tapasztalatok.

1. Noha az előzőeket mind 4 procis virtualizációval játszottam végig, ez a Slackware-nél nem ment. Stabilan és megbízhatóan elpanic-olt már az ISO-ról történő boot közben. Viszont ha 1 processzort kapott, akkor ezt az akadályt némileg könnyebben vette.

2. A Slackware valamit másként kezel a diszkekkel, mint az előzőekben kipróbáltak, ugyanis Virtio-blk driverrel valami elképesztő szopásokat bírtam csak kicsiholni - szintén pánikhegyekkel. No most ez a két probléma olyannyira visszavetett, hogy kb 5-6 telepítési kisérlet után sikerült csak letisztáznom, hogy pontosan mi is kell ahhoz, hogy a dolog továbbjusson egy kerneldump-nál. A vicc az, hogy volt olyan telepítés, amikor a /dev/vda-ra sikerült feltenni a teljes rendszert, de aztán csak hatalmas töketlenkedés után tudtam bebootolni is az új rendszert, ugyanis nem volt initramdisk a települt rendszerben, és nincs virtio-block driver a feltelepült kernelben. Majd a CD-ről bootolós környezetben elindított mkinitrd letörölte a kernel-t a VM-ből. Szóval nyami.

Nyilván sokat segítene, ha nem 20 éves emlékeim lennének a Slackware-ről - legalábbis feltételezem, hogy aki legalább körülbelül naprakész Pat gyermekének használatában, annak ezek teljesen ismert dolgok. Viszont ami a jelenlegi fejfájásom, az a következő. A telepítés közben lehet billentyűzetkiosztást választani, és telepítés közben működik is, ha kiválasztom a qwertz-hu-t (vagy mi a franc is a neve) - viszont később (azaz a feltelepült rendszerben) már nem OK. Azaz ha csinálok egy AHCI-HD emulációs, 1 CPU-s VM-et, és ebben telepítem, az egészen stabilan végigmegy, viszont az új rendszer boot közben a magyar billentyűkiosztás betöltése közben megáll, mint a Jancsiszög, és se té se tova. Ebből az állapotából csak a VM kigyilkolásával lehet kibillenteni (ekkor még jön a BHyve-tól egy üzenet, hogy az XYZ műveletet nem tudja végrehajtani). Persze ilyenkor már fel van csatolva a root, tehát a következő indulás fsck-val kezd. (Mellesleg úgy tűnik, Slackware-ék még nem dobták ki az EXT2 és EXT3 drivert, mert az EXT4-es root csatolását megelőzi ennek a két drivernek a hibaüzenete, hogy egyikük se szereti amit a diszken lát. Persze lehet, hogy valami egészen más zajlik ilyenkor, én ezt így interpretáltam.)

Szóval összefoglalva - már látszik, hogy akár ez is működhetne, de egyelőre nem nagyon teszi.

Ui: Motoznak a fejemben olyan triviális kérdések, hogy vajon tud-e a Slackware UUID-alapú mountolást - ekkor legalább a /boot-ot megadhatnám az fstab-ban UUID-del a /dev/sda1 vagy /dev/vda1 helyett (a root-ot ugyebár kernel paraméterként kell megadni, így nem érdekes), tehát ha lenne kedvem kisakkozni, hogy mi a baj a virtio-blk-val, ahhoz nem kéne csinálni egy olyan telepítést is, elég lenne a grub2-bhyve-nak (ez a byhve-hoz tartozó boot-loader) az induláskor azt mondani, hogy linux (hd0,msdos1)/vmlinuz root=/dev/vda3 (a jelenlegi root=/dev/sda3 helyett).

Hasonlóan, vajon swap-et fstab-ból lehet-e engedélyezni UUID-del. (Ez valahogy emlékeim szerint nem jött szembe.)

Vagy hogy mennyire lenne szopás LVM környezetet összelőni a telepítés előtt/közben.

A kérdések persze igazából költőiek, nyilván nagy testvér tudja a válaszokat.

A megoldás: telepítés végén, de még a frisen telepített rendszer boot-ja előtt engedélyezni kell a getty-t ( /etc/inittab ) és a root-login-t ( /etc/securetty ) a /dev/ttyS0-ra. Vagy nyilván lehet olyan kacifántosan is, mint én, hogy egy másik OS alól szerkeszteni a fájlrendszerbeli fájlokat.

Hozzászólások

Slack kicsit régi vágású az ilyen újhullámos dolgokhoz, mint a bhyve. Slackware-es szárnypróbálgatásaimból úgy emlékszem, hogy a telepítés valami huge kernellel megy, viszont a telepített rendszer már egy kisebb generic kernellel indul, ebben nyilván sokkal kevesebb driver van.
Windows-al, mint vendég, próbálkoztál esetleg mostanában? Kiváncsi lennék, hogy áll. Ez tart vissza, hogy freebsd-re váltsak. Kell a win7 vendég, usb és serial támogatással (na meg AutoCAD, de csak 2D).

Hát pedig szerintem pont az olyan konzervatív rendszereknek kéne mennie. Persze menni fog az, csak még reszelgetni kell.

A BHyve + Windows-os környezethez hivatalosan 11-es FreeBSD kell, szóval az még egyelőre nekem messzebb van. Amúgy VirtualBox-szal megy a W7, szóval azzal nem lesz probléma, ha csak az kell.

A FreeBSD-t nem ismerem, de néhány dolog:
- UUID alapján lehet mountolni, swap is engedélyezhető
- LVM már a telepítés közben is összerakható, természetesen parancssorban kell végig vinned az egészet. Nincs hozzá semmiféle varázsló
- EXT2, EXT3 szerintem sincs kidobva, de mostanában nem is láttam a kernel forrását (elmúlt hogy sajátot forgassak)
- Egyébként teljesen szűz kernel, nincs semmi ráhúzva pluszként ezért simán előfordulhat, hogy elhasal a rendszer ilyen "egzotikus" cucctól mint a BHyve
- Megpróbálnék pár kernel paramétert végigtolni, talán segít valamelyik, bár a google-t kérdezve egy oldalon találtam leírást ahol Debian 7.7 AMD64 fut és a többit nem sikerült elindítani

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

Köszi, hogy megspóroltad nekem a guglizást. Most azon tűnődöm, hogy összehozok a VM-ben még egy telepítés, ekkor az eddigiekhez képest két dolgot változtatok, nem kérek tőle billentyűzetmeghajtó betöltést, és megcsinálom az LVM-et. (Mondjuk kézzel egy fdisk, pvcreate, vgcreate, lvcreate parancssort még össze tudok hozni.) Nyilván ideböfögöm ha jutok valamire.

Nem lehetséges, hogy nem a billentyűzet kiosztás váltásakor döglött meg, hanem a terminál font váltásnál? Azt hiszem ezek szinte közvetlenül egymás után jönnek.

Meg is van /etc/rc.d/rc.M:


# Load a custom screen font if the user has an rc.font script.
if [ -x /etc/rc.d/rc.font ]; then
  . /etc/rc.d/rc.font
fi

# Load a custom keymap if the user has an rc.keymap script.
if [ -x /etc/rc.d/rc.keymap ]; then
  . /etc/rc.d/rc.keymap
fi

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

Hát lehetni épp lehet, lévén a BHyve jelenleg semmilyen VGA-t nem virtualizál, így már a funkciónak sincs semmi értelme. De a lényeg, a billentyűzetkiosztás betöltése mint üzenet még látszik. Ha fordított sorrendben lennének, még érteném is a helyzetet. Szóval ha már itt tartunk, mi a következő művelet?

Igazából semmi érdekes, de bemásolom neked:


# Start the MySQL database:
if [ -x /etc/rc.d/rc.mysqld ]; then
  . /etc/rc.d/rc.mysqld start
fi

# Start Apache web server:
if [ -x /etc/rc.d/rc.httpd ]; then
  . /etc/rc.d/rc.httpd start
fi

# Start OpenLDAP:
if [ -x /etc/rc.d/rc.openldap ]; then
  . /etc/rc.d/rc.openldap start
fi

# Start Samba (a file/print server for Win95/NT machines).
# Samba can be started in /etc/inetd.conf instead.
if [ -x /etc/rc.d/rc.samba ]; then
  . /etc/rc.d/rc.samba start
fi

# Start the GPM mouse server:
if [ -x /etc/rc.d/rc.gpm ]; then
  . /etc/rc.d/rc.gpm start
fi

# If there are SystemV init scripts for this runlevel, run them.
if [ -x /etc/rc.d/rc.sysvinit ]; then
  . /etc/rc.d/rc.sysvinit
fi

# Start the local setup procedure.
if [ -x /etc/rc.d/rc.local ]; then
  . /etc/rc.d/rc.local
fi

# All done.

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

Újabb tesztek azóta se történtek, de közben rájöttem valamire, ami az eddigi disztribúcióknál nem okozott gondot, ellenben lehet, hogy Slackware-nél pont igen. A BHyve jelenleg nem nyújt VGA-konzolt, hanem csak standard soros portot. Ezt meg esetleg illene megmondani a rendszernek. És igaz ugyan, hogy a telepítő kernelnek sem adtam meg, de ez nem változtat a tényen, hogy elvben a kernelnek illik tudnia róla. Szóval lehet, hogy valami ilyesmik kellenének a grub.conf-ba ahhoz, hogy a dolog továbbmenjen:

serial --speed=38400
terminal serial
kernel /boot/.... root=... console=ttyS0,38400n8

Tippem szerint ebből a kernelnek átadott console paraméter a kritikus. És ha valami csoda folytán ettől meggyógyul a dolog, akkor jöhet az, hogy vajon van-e az inittabban getty előírva, és securetty szerint be lehet-e root-ként ezen a konzolon jelentkezni. (Fentiek nagy része a megvilágosodás után - "Hohó, csak soros konzol van" - mindenféle Slackware howtokból meg faq-kból jött.)

Naccerű. Változatlanul ezt látom a kernel log üzenetek között:

Console: colour EGA 80x25

mondjuk közvetlenül utána ezt is (arra nem emlékszem, korábban volt-e, és kedvem sincs megnézni)

console [ttyS0] enabled

Változatlanul csúnyán reagál arra, hogy 'Loading /usr/share/kbd/keymaps/i386/qwertz/hu.map.gz' - illetve hát ugye ezen üzenet után dermed le. Akkor most jön az a hack, valami másik működő OS alól felcsatolom ezt a virtuális diszket, és kézzel kikommentelem a billentyűzet - illetve a font - betöltését a scriptből, és megnézem, hogyan tovább.

Szórakozottan pkill bhyve segítségével állítottam le a VM-et, és legnagyobb meglepetésemre szép szabályosan elindult az addig néma konzolon a power down. Ekkor megvilágosodtam. Nem kell itt semmiféle kernel paraméter, nem a font/billentyűzet kavart be, egyszerűen mint az a fent emlegetett doksikban szerepel), nem volt engedélyezve a getty a soros portra. Úgyhogy a feladat megoldva, meg lehet kezdeni a csomagkezelős cikkek alapján pár apróságot telepíteni rá (ezzel ugye lehet tesztelni a hálózati képességeket is egyúttal).

subscribe. ha lesz idő, beleásom magam.