[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