[frissítve] Ubuntu zfs hiba reboot után, v. közvetlenül előtte?

 ( apostroph3 | 2019. augusztus 7., szerda - 11:51 )

Ma reggel, amikor bekapcsoltam a gépem, hogy a reggeli számítógéppel kapcsolatos rituáléimat elvégezzem, úgymint levelek, napi teendők átfutása ilyesmi..
..bekapcsoltam az otthoni gépem.

És baszott bebootolni!

Nem estem kétségbe.
Sosem esem kétségbe!
Úgy döntöttem, hogy inkább pánikba esem, elhatározásomat pedig tett követte.

Miután ez megvolt, gondoltam jól jönne egy kis merev magam elé bámulás, és valóban 5 perc ilyetén tevékenység jólesett.

Nos azért lassan felocsúdtam, és végiggondoltam mit kellene csinálni, de az ég egy adta világon semmi sem jutott eszembe, ezért kikapcsoltam és áramtalanítottam, hátha a window$tól ellesett módszer javít valamit a helyzeten. - mármint hogy legalább az agyamat rábírja a gondolkodásra - mert arra nem számítottam, hogy a gépnek is használni fog.
Nem is tett ilyet.

Tehát újrabootoltam recovery mode-ban, onnan pedig a root menüpontot választva legalább egy konzolhoz sikerült hozzáférni.

Na de most mihez kezdjek? :) Nézzem meg a dmesg milyen hibákat mutat? Hogy megvannak e a meghajtók, a modulok betöltődtek, hogy hány óra van, mer elkések?

:~# mount -a

szólottam

majd

:~# mount | grep zfs

és nem kaptam csak egy üres sor. V. még azt sem. csak egy soremelést.
Ne húzogasd itt a vállad, kiabáltam rá - gondoltam magamban -

:~# zpool status
no pools available

Na beletrafáltam, és ennyi az adatoknak, és kinyiffant a kettedik ssd. Gondoltam egyszerre, meg még hogy éljen a multitaszk:)

Itt hagytam abba, hogy áttérhessek más reggeli rituális tevékenységekhez, amiket e-helyt nem részletezek. megkímélve mindenkit.

És ha egyszer majd valamikor a jövőben hazaérek, talán folytatom is.
Feltéve persze, hogy nem a gép teljes és végleges pusztulása lesz az eredmény :)

-------------------------------------

Nos igen..
Az előző rész tartalmából.
Az alap rendszer megvan, mert van boot lemez/partició.
Van lib usr val temp, mert lefut a mount -a.

Viszont nem lehet az X-ről ide hajlítani a teret. Pedig ott jobb gépek vannak! jobbak mint a Ridges-en.

Összegezve amit tudok, nincs /usr, ami viszont már a második ssd-n található és mivel utólag lett telepítve tavaly, más, akkor kísérleti/teszt fájlrendszer, más típusú ssd..
Valamint nem az fstab mountolja..

Na-de mi tűnt el? Maga a meghajtó? A partíció? vagymi?

:~# fdisk -l
Disk /dev/sda: 119,2 GiB, 128032974848 bytes, 250064404 sectors
Disk model: INTENSO SSD 128G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7e4e0b26

Eszköz     Indítható     Start      Vége Szektorok   Size Id Típus
/dev/sda1               524288   1572863   1048576   512M 83 Linux
/dev/sda3              1572864 250062847 248489984 118,5G  5 Kiterjesztett
/dev/sda5              1574912 237142015 235567104 112,3G 83 Linux
/dev/sda6            237144064 250062847  12918784   6,2G 82 Linux lapozó / Sola


Disk /dev/sdb: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 850 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7d4f6e9a

Eszköz     Indítható Start      Vége Szektorok   Size Id Típus
/dev/sdb1             2048 976773167 976771120 465,8G 83 Linux


Disk /dev/sdc: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKX-0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb7c56989

kérdezem én, és a válasz azt mutatja, hogy lemez(ek) van(nak).
És - ahogy azt sejteni lehetett, és extra szuper érzékeim, no meg csodálatos kombinatórikai képességem megsúgták előre - megvannak a lemezek, azon a partíciók.

Hát legalábbis az sda-n és az sdb-n. Az sdc-n meg nincs. De nekem arra nem is kell!

Mélyebbre!

:~# zpool import /dev/sdb
  pool: ZDATA

	NAME        STATE     READ WRITE CKSUM
	ZDATA       ONLINE       0     0     0
	  sdb1      ONLINE       0     0     0
:~# zpool status
no pools available

Nahát ez nevetséges. úgy van hogy nincs?

:~# zdb -l /dev/sdb
failed to unpack label 0
failed to unpack label 1
------------------------------------
LABEL 2
------------------------------------
    version: 5000
    name: 'ZDATA'
    state: 0
    txg: 4913703
    pool_guid: 9097600813143649123
    errata: 0
    hostname: 'desktop'
    top_guid: 12591591779400640538
    guid: 12591591779400640538
    vdev_children: 1
    vdev_tree:
        type: 'disk'
        id: 0
        guid: 12591591779400640538
        path: '/dev/sdb1'
        whole_disk: 0
        metaslab_array: 34
        metaslab_shift: 32
        ashift: 9
        asize: 500102070272
        is_log: 0
        create_txg: 4
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
    labels = 2 3 

Úgy látszik az adatok legalább léteznek, csak elérhetetlenek. Nem értem.
És ha már. akkor bootolás közben miért nem olvassa be a partíciót a zfs? Elindul-e a folyamat? És ha nem, hol nem? Vagy inkább hol/honnan kellene elindulnia, ha nem.

sacc/kb

:~# systemctl status z[2xTAB]
zed.service               zfs-import.target         zfs.target
zfs-import-cache.service  zfs-load-module.service   zfs-zed.service
zfs-import-scan.service   zfs-mount.service         
zfs-import.service        zfs-share.service         
root@desktop:~# systemctl status zfs-import-cache.service 
● zfs-import-cache.service - Import ZFS pools by cache file
   Loaded: loaded (/lib/systemd/system/zfs-import-cache.service; disabled; vendor
   Active: inactive ...
     Docs: man:zpool(8)

vagy valami ilyesmi, emlékezetből. Mire én bekapcsoltam, és buzgón imádkoztam :)

:~# systemctl enable zfs-import-cache.service
...
...
:~# systemctl status zfs-import-cache.service 
● zfs-import-cache.service - Import ZFS pools by cache file
   Loaded: loaded (/lib/systemd/system/zfs-import-cache.service; enabled; vendor
   Active: active (exited) since Wed 2019-08-07 10:36:38 CEST; 8h ago
     Docs: man:zpool(8)
  Process: 1326 ExecStart=/sbin/zpool import -c /etc/zfs/zpool.cache -aN (code=e
 Main PID: 1326 (code=exited, status=0/SUCCESS)

aug 07 10:36:38 desktop systemd[1]: Starting Import ZFS pools by cache file...
aug 07 10:36:38 desktop systemd[1]: Started Import ZFS pools by cache file.

:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.0.0-23-generic
cryptsetup: ERROR: Couldn't resolve device 
    UUID=fb1e0935-bb32-47d2-8198-ac7bdd8ffe54
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries 
    nor crypto modules. If that's on purpose, you may want to uninstall the 
    'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs 
    integration and avoid this warning.
W: initramfs-tools configuration sets RESUME=UUID=fb1e0935-bb32-47d2-8198-ac7bdd8ffe54
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/sda6
I: (UUID=53142763-e835-4298-a829-2937ff0a7f9e)
I: Set the RESUME variable to override this.

:~# update-grub
...
...

:~# shutdown -r now

Vagy bukunk, vagy a mennybe megyünk. De megyünk..

Gond nélkül bebootolt. Ha!
Feltehetném a kérdést, hogy a csodába kapcsolt ki a zfs automatikus indítása. és miért csak a cache. Ugyan volt kernel upgrade nem olyan rég, de azóta volt reboot is.

Csupa rejtély.
Elwindow$osodunk?

De félre a búval, hiszen vigadni, ünnepelni jöttünk össze!
Kár lenne áskálódni pörlekedni.. Ki ölt meg kit?
...

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ő.

Tippre: zpool import parancsot adtál ki -o cachefile=none nélkül mielőtt az initrd-t generáltad, így létrejött az egyébként nem használt fájl, és mivel létezett, így a zfs-import-cache lépett életbe zfs-import-scan helyett, ami vagy megtalálta a cache-be felvett lemezt vagy nem, de a root pool nem volt a cache-ben, emiatt nem is lett bootkor importálva. Ez ellen azt lehet tenni, hogy vagy nagyon figyelsz mindig, vagy ennek a mintájára a 4.10-es pont alapján létrehozol egy service fájlt ami mindenképpen importálja a boot poolt.

szerk: egészen pontosan a ConditionPathExists=!/etc/zfs/zpool.cache miatt a zfs-import-scan nem futhat, mert ha létezik ilyen fájl az initrd generálásakor, akkor be lesz includolva, és bootkor emiatt nem fog indulni ez a service.

pedig amióta az ubi telepítette, ill frissítheti a kernelt + zfs-t + zfsutils*-t nem lett bolygatva, vagyis 'gyári' beállításokon kell(ene) lennie.

és nem változott sok hónapja a lemezek körül sem semmi..
ahogy a beállítások sem.

Használsz snapshotokat? Akkor vissza lehetne nézni hogy mi is volt a helyzet.

Nincs external zfs lemezed amit kézzel csatoltált fel nemrég? Nálam ez tudott bekavarni mielőtt jobban figyeltem.

snapshotokat igen. de már késő van ehhez, ha rászánom magam, akkor már csak holnap..

Ok, szoktam figyelni a zfs-es posztokat. :) Nálam már csak az fut, kivéve raspberry pi-ken, plusz az a sparse zvol amit btrfs-re formáztam hogy a pi-k snapshotjait fogadni tudja. (Vicces, mert tudja trimmelni magát: a btrfs snapshotok deduplikálását követően visszaesik a zvol fogyasztása is.)