Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.
Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.
Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.
Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
Narazil jsem na zvláštnost, kterou se mi nedaří zatím lépe diagnostikovat. Po výpadku napájení na jednom z domácích serverů (nepříjemné, nutno řešit, ale nikoli fatálně kritické) přestalo být možné namountovat exportovaný NFS svazek - čímkoli.
Na serveru je nyní Gentoo, jádro 4.19.50, nebo 4.9.63 (zkoušel jsem obě verze) a bude 4.9.79, net-fs/nfs-utils-2.4.1-r1, jádro má zapnutou podporu verzí NFS 3 i 4.
Připojovat jsem se zkoušel jiným Gentoo s podobnými verzemi jádra i nfs-utils, Debianem 10 i serverem samotným - vše se stejným výsledkem, takže problém na klientech jsem vyloučil.
Dejme tomu, že exportuji složku __public, nijak nezáleží na tom, co vlastně exportuji a odkud, nebo s jakými volbami, ono to nakonec nefunguje stejně.
/home/__public 192.168.0.254(rw,async,all_squash,anonuid=65534,anongid=65533,no_subtree_check)
Připomínám, že v konfiguraci iptables změna nenastala a zkouším i přes localhost, kde není omezení žádné.
Pokus o mount dopadá takto:
mount -t nfs -o nfsvers=3 jmenoserveru:/home/__public /mnt/hdd/ mount.nfs: Stale file handle
umount /mnt/hdd umount: /mnt/hdd: nepřipojeno.
mount -t nfs -o nfsvers=4 jmenoserveru:/home/__public /mnt/hdd/
Mount bez explicitně zadané verze NFS se pokusí použít verzi 4.
Pokud by sožka nebyla exportována, tak pokus o mount selže se správnou chybou. Taktéž i pokud nejsou dostatečná práva atd...
Zkusil jsem exportovat složku z BTRFS a při pokusu o připojení to skončí vždy chybou mount.nfs: Stale file handle bez ohledu na verzi NFS.
ls /mnt/hdd ls: adresář '/mnt/hdd' nelze otevřít: Zastaralý ukazatel na soubor cd /mnt/hdd bash: cd: /mnt/hdd: Zastaralý ukazatel na soubor mount ... jmenoserveru:/home/__public on /mnt/hdd type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.254,local_lock=none,addr=192.168.0.254)
V logu se nezdá být cokoli užitečného:
Oct 15 12:29:34 jmenoserveru start-stop-daemon[17414]: Will stop /usr/sbin/rpc.mountd Oct 15 12:29:34 jmenoserveru rpc.mountd[8523]: Caught signal 15, un-registering and exiting. Oct 15 12:29:35 jmenoserveru start-stop-daemon[17418]: Will stop nfsd Oct 15 12:29:35 jmenoserveru kernel: nfsd: last server has exited, flushing export cache Oct 15 12:29:35 jmenoserveru start-stop-daemon[17449]: Will stop /sbin/rpc.statd Oct 15 12:29:35 jmenoserveru start-stop-daemon[17477]: Will stop /usr/sbin/rpc.idmapd Oct 15 12:29:35 jmenoserveru start-stop-daemon[17504]: Will stop /sbin/rpcbind Oct 15 12:29:36 jmenoserveru rpc.idmapd[17586]: Setting log level to 0 Oct 15 12:29:36 jmenoserveru rpc.statd[17598]: Version 2.3.4 starting Oct 15 12:29:36 jmenoserveru rpcbind[17597]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:29:36 jmenoserveru rpc.statd[17598]: Flags: TI-RPC Oct 15 12:29:36 jmenoserveru rpc.statd[17598]: Running as root. chown /var/lib/nfs to choose different user Oct 15 12:29:36 jmenoserveru rpc.mountd[17636]: Version 2.3.4 starting Oct 15 12:29:36 jmenoserveru kernel: NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory Oct 15 12:29:53 jmenoserveru rpcbind[17663]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:29:53 jmenoserveru rpcbind[17664]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:29:53 jmenoserveru rpcbind[17665]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:29:53 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:800 for /home/__public (/home/__public) Oct 15 12:29:53 jmenoserveru rpcbind[17666]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:29:54 jmenoserveru rpcbind[17667]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:29:54 jmenoserveru rpcbind[17668]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:29:54 jmenoserveru rpcbind[17669]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:29:54 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:752 for /home/__public (/home/__public) Oct 15 12:29:54 jmenoserveru rpcbind[17670]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:29:56 jmenoserveru rpcbind[17671]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:29:56 jmenoserveru rpcbind[17672]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:29:56 jmenoserveru rpcbind[17673]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:29:56 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:885 for /home/__public (/home/__public) Oct 15 12:29:56 jmenoserveru rpcbind[17674]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:17 jmenoserveru rpcbind[17830]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:49:17 jmenoserveru rpcbind[17831]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:17 jmenoserveru rpcbind[17832]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:49:17 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:828 for /home/__public (/home/__public) Oct 15 12:49:17 jmenoserveru rpcbind[17833]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:18 jmenoserveru rpcbind[17834]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:49:18 jmenoserveru rpcbind[17835]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:18 jmenoserveru rpcbind[17836]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:49:18 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:960 for /home/__public (/home/__public) Oct 15 12:49:18 jmenoserveru rpcbind[17837]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:20 jmenoserveru rpcbind[17838]: connect from 127.0.0.1 to getport/addr(status) Oct 15 12:49:20 jmenoserveru rpcbind[17839]: connect from 192.168.0.254 to getport/addr(nfs) Oct 15 12:49:20 jmenoserveru rpc.mountd[17636]: authenticated mount request from 192.168.0.254:750 for /home/__public (/home/__public) Oct 15 12:49:20 jmenoserveru rpcbind[17840]: connect from 192.168.0.254 to getport/addr(mountd) Oct 15 12:49:20 jmenoserveru rpcbind[17841]: connect from 192.168.0.254 to getport/addr(nfs)
Kdesi jsem se dočetl, že chyba Stale file handle by snad mohla souviset s nějakým zámkem po špatně odmountovaném svazku, ale nenašel jsem žádný detail, jak zjistit jaký konkrétně, jediné doporučení tam byl reboot. To jsem udělal opakovaně při změně jádra za jinou verzi. Nemělo to vliv.
Úplně původně jsem ani verzi NFS 4.x neměl povolenou, pro interní síť a dvě klientská PC mi v pohodě stačila verze 3.
HDD, ze kterého exportuji NFS má ReiserFS na dvou oddílech. Zkusil jsem exportovat jinou složku z jiného oddílu - žádný rozdíl.
Zkusil jsem promazat /var/lib/nfs/rmtab, žádný vliv. Pouze se přimountováním v rmtab vytvoří nový záznam. Další soubory v /var/lib/nfs jsou většinou prázné (0 bytů), kromě etab, obsahuje seznam exportovaných svazků a state, obsahuje nějaké 4 byty. Význam neznám.
Zkusil jsem HDD otestovat pomocí readonly badblocks -sv /dev/sda, vše ok. SMART ok, žádné chyby ve výpisu.
Ze zoufalství jsem zkusil přes noc i emerge -ave world, pro případ, že by výpadkem napájení došlo k poškození nějaké s NFS související knihovny. Nepomohlo. Všechny soubory jsou čerstvě zkompilované, včetně jádra, kontrolní součty balíčků ověřené, vše ok. Jen NFS nefunguje.
V conf.d jsou konfiguráky nfs a rpcbind, nfs je defaultní neprováděl jsem v něm změny.
# /etc/conf.d/nfs # If you wish to set the port numbers for lockd, # please see /etc/sysctl.conf # Optional services to include in default `/etc/init.d/nfs start` # For NFSv4 users, you'll want to add "rpc.idmapd" here. NFS_NEEDED_SERVICES="rpc.idmapd" # Options to pass to rpc.nfsd OPTS_RPC_NFSD="8" # Options to pass to rpc.mountd # ex. OPTS_RPC_MOUNTD="-p 32767" OPTS_RPC_MOUNTD="" # Options to pass to rpc.statd # ex. OPTS_RPC_STATD="-p 32765 -o 32766" OPTS_RPC_STATD="" # Options to pass to rpc.idmapd OPTS_RPC_IDMAPD="" # Options to pass to rpc.gssd OPTS_RPC_GSSD="" # Options to pass to rpc.svcgssd OPTS_RPC_SVCGSSD="" # Options to pass to rpc.rquotad (requires sys-fs/quota) OPTS_RPC_RQUOTAD="" # Timeout (in seconds) for exportfs EXPORTFS_TIMEOUT=30 # Options to set in the nfsd filesystem (/proc/fs/nfsd/). # Format is <option&rt;=<value&rt;. Multiple options are allowed. #OPTS_NFSD="nfsv4leasetime=30 max_block_size=4096"
Do rpcbind jsem zkusil přidat volbu -d jako debug.
# /etc/conf.d/rpcbind . # Options for `rpcbind`. #RPCBIND_OPTS="-l" RPCBIND_OPTS="-l -d"
Výsledkem -d je alespoň to málo ve /var/log/messages, co jsem přiložil, jinak by nebylo ani to.
V dmesg nic.
Nějaký další nápad?
Řešení dotazu:
Replaying journal: Done. Reiserfs journal '/dev/sda3' in blocks [18..8211]: 0 transactions replayed Checking internal tree.. finished Comparing bitmaps..finished Checking Semantic tree: finished No corruptions found There are on the filesystem: Leaves 101963 Internal nodes 648 Directories 4032 Other files 204770 Data block pointers 54142197 (0 of them are zero) Safe links 0
exportfs -ua exportfs -a # nebo exportfs -fZdar Max
cat /proc/fs/nfsd/versions -2 +3 +4 +4.1 +4.2
Ad use flagy:
[ebuild R ] net-fs/nfs-utils-2.4.1-r1::gentoo USE="caps ipv6 libmount nfsidmap nfsv4 nfsv41 tcpd uuid -junction -kerberos -ldap -nfsdcld (-selinux)" 0 KiB
A konfigurace jádra:
CONFIG_KERNFS=y CONFIG_NFS_FS=m CONFIG_NFS_V2=m CONFIG_NFS_V3=m # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=m # CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=m CONFIG_PNFS_BLOCK=m CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" CONFIG_NFS_V4_1_MIGRATION=y CONFIG_NFS_FSCACHE=y CONFIG_NFS_USE_LEGACY_DNS=y CONFIG_NFS_DEBUG=y CONFIG_NFSD=y CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set CONFIG_NFSD_V4=y CONFIG_NFSD_PNFS=y CONFIG_NFSD_BLOCKLAYOUT=y CONFIG_NFSD_SCSILAYOUT=y CONFIG_NFSD_FLEXFILELAYOUT=y CONFIG_NFS_COMMON=y
Další pokus, aktualizoval jsem jádro na verzi 5.3.0 a problém je stále stejný.
showmount -a vypíše zapamatované klienty s mountpointy, ale i když je prázdný a nenastane hláška mount.nfs: Stale file handle, tak to nefunguje.
Nejukecanější mount je k ničemu
mount.nfs: timeout set for Tue Oct 15 22:52:14 2019 mount.nfs: trying text-based options 'vers=4.2,addr=192.168.0.254,clientaddr=192.168.0.1'
NFS (4.2) se přimountuje bez stížností, ale nelze s ní pracovat, jakýkoli pokus končí nelze přistoupit k '/mnt/nfs': Zastaralý ukazatel na soubor.
A opět, nezáleží na tom, jestli je klient Gentoo, nebo Debian... čímž chci říct, že to není vada jednoho klienta. Ani to není omezení firewallu, do vnitřní sítě omezení iptables není.
Ukecaný pokus o přimountování NFS verzí 3 skončí vždy takto.
mount.nfs: timeout set for Tue Oct 15 23:01:48 2019 mount.nfs: trying text-based options 'nfsvers=3,addr=192.168.0.254' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: trying 192.168.0.254 prog 100003 vers 3 prot TCP port 2049 mount.nfs: prog 100005, trying vers=3, prot=17 mount.nfs: trying 192.168.0.254 prog 100005 vers 3 prot UDP port 42259 mount.nfs: mount(2): Stale file handle mount.nfs: trying text-based options 'nfsvers=3,addr=192.168.0.254' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: trying 192.168.0.254 prog 100003 vers 3 prot TCP port 2049 mount.nfs: prog 100005, trying vers=3, prot=17 mount.nfs: trying 192.168.0.254 prog 100005 vers 3 prot UDP port 42259 mount.nfs: mount(2): Stale file handle mount.nfs: trying text-based options 'nfsvers=3,addr=192.168.0.254' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: trying 192.168.0.254 prog 100003 vers 3 prot TCP port 2049 mount.nfs: prog 100005, trying vers=3, prot=17 mount.nfs: trying 192.168.0.254 prog 100005 vers 3 prot UDP port 42259 mount.nfs: mount(2): Stale file handle mount.nfs: Stale file handle
Proč?
I když koukám na komunikaci tcpdumpem a vidím, že oba stroje spolu komunikují, tak z toho nedovedu vykoukat víc, než že komunikace mezi nimi končí tímto:
NFS reply xid 3824853766 reply ok 88 getattr ERROR: Stale NFS file handle
Jak to donutit k nějakému ukecanějšímu výstupu ... kdekoli, ze kterého se dá něco dalšího poznat? Jediné, co jsem dokázal vypátrat, že se v minulých letech (jako např. 2008, 2012, 2014) různé bugy různým lidem s různými verzemi nfs-utils staly. Nic, co by pomohlo.
Zkusím prozatím updatnout to Gentoo, už to je asi 14 dnů od poslední aktualizace, třeba bude jiná verze nfs-utils.
Tiskni
Sdílej: