[BSD] 10.1 update (kernel) hiba?

Akos Tamasi akos.tamasi at gmail.com
2015. Jan. 27., K, 11:45:45 CET


Szia!

Gábor, nagyon szépen köszönöm a kimerítő válaszod, jó irányba löktél az okosodás útján! :)
A guid mismatch hibaüzenetet megoldottam (átraktam olyan sorrendbe a diszkeket, ahogy a nagyúr óhajtotta), de továbbra sem boot-olt 10.1-es kernellel. 
A cache-t nézegettem már strings-el, ott voltak az eszközök gpt label alapján, csináltam egy olyat is ahol adaXp2 volt mindenhol, de hiába. Most a 10.1 gptid alapján tárolja a cache-ben az eszközöket, lehet az megoldotta volna… Ekkor feladtam, mivel van backup a gépről és amúgy is legacy boot-os, újrahúztam egy 10.1-et rá, így 1,5 óra alatt végeztem, a backup meg éjjel visszakúszott rá.

Egy dolog aggaszt csupán, 8 ilyen gépem van, úgyhogy azokon egyelőre maradok a 9.3 és 10.0 verzióknál…

---
Ákos

On 2015.01.22., at 22:52, Gabor HALASZ <halasz.g at freemail.hu> wrote:

> On 1/22/2015 10:53 AM, Akos Tamasi wrote:
>> Sziasztok!
>> 
>> Tegnap volt egy kis időm foglalkozni a géppel és sajnos nem lettem okosabb.
> 
> Most olyan okos leszel, hogy meg is bánod :-D
> 
>> Csináltam egy zpool import export párost, a cache file-t frissítettem, de továbbra sem boot-ol.
>> A boot logokat felraktam ide, hogy a nálam sokkal tapasztaltabb emberek is rá tudjanak nézni :)
>> https://dl.dropboxusercontent.com/u/6115297/rossz_boot.txt
>> https://dl.dropboxusercontent.com/u/6115297/jo_boot.txt
> 
> Szóval ezek a hibaüzenetek:
> 
> guid mismatch for provider /dev/ada0
> guid mismatch for provider /dev/ada1
> guid mismatch for provider /dev/ada2
> guid mismatch for provider /dev/ada3
> 
> Ez csinálja:
> 
> sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c:
> 
> static struct g_consumer *
> vdev_geom_open_by_path(vdev_t *vd, int check_guid)
> {
> 	struct g_provider *pp;
> 	struct g_consumer *cp;
> 	uint64_t guid;
> 
> 	g_topology_assert();
> 
> 	cp = NULL;
> 	pp = g_provider_by_name(vd->vdev_path + sizeof("/dev/") - 1);
> 	if (pp != NULL) {
> 		ZFS_LOG(1, "Found provider by name %s.", vd->vdev_path);
> 		cp = vdev_geom_attach(pp);
> 		if (cp != NULL && check_guid && ISP2(pp->sectorsize) &&
> 		    pp->sectorsize <= VDEV_PAD_SIZE) {
> 			g_topology_unlock();
> 			guid = vdev_geom_read_guid(cp);
> 			g_topology_lock();
> 			if (guid != vd->vdev_guid) {
> 				vdev_geom_detach(cp, 0);
> 				cp = NULL;
> 				ZFS_LOG(1, "guid mismatch for provider %s: "
> 				    "%ju != %ju.", vd->vdev_path,
> 				    (uintmax_t)vd->vdev_guid, (uintmax_t)guid);
> 			} else {
> 				ZFS_LOG(1, "guid match for provider %s.",
> 				    vd->vdev_path);
> 			}
> 		}
> 	}
> 
> 	return (cp);
> }
> 
> Kezdjél vele valamit :-D De még rugok rajtad egyet: a hiba itt jelentkezik, de nem itt keletkezik, mert a fenti kód egyforma 10.0 és 10.1 esetén :-D Meg kellene nézni a vdev_geom_attach és vdev_geom_read_guid környékét is, no meg a vdev_geom_attach-ot is, és ha az sem segít, akkor még a g_topology_assert-et is.
> 
> Ha meg olyan tökös gyerek vagy, mint Torrente felügyelő Marbellán a kaszinóban, akkor szimplán írsz /* -t a vdev_geom_detach(cp, 0); elé és */-t a cp = NULL; mögé és újrafordítod a kernelt...
> 
>> 
>> A rossz boot végén a pendrive-ról elindult a rendszer és a zpool FAULTED állapotban volt és az összes diszk hiányzik a raidz1-0-ból.
>> https://dl.dropboxusercontent.com/u/6115297/missing.gif
>> 
>> Este megnéztem, hogy az zpool import -d /dev/gpt zroot helyett a zpool import -d /dev/ zroot mit mutat majd…
>> 
> 
> Nézzél egy strings /boot/zfs/zpool.cache-t nagyjából látszik, milyen deviceok vannak benne. Ez is legacy boot-os? Mintha lenne valami sötét emlékem, hogy van valahol egy legacy boot-os gépem, ami roppantul nem akart bootolni 10.1 upgrade után, de nem sokat foglalkoztam vele, azóta is 10.0.
> 
> 
> --
> Magyar BSD Levelezőlista



További információk a(z) BSD levelezőlistáról