• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
samba disk i sqllite error o e

[Risolto] SqlLite e samba (disk I/O error)
#1
Io un file db SqLite (metadata.db, quello di Calibre) sul NAS Synology ovviamente in una cartella sharata.

Faccio accesso da windows (tramite Database .Net) e riesco a interrogare le tabelle ottenendo i risultati e riesco a fare degli UPDATE e INSERT senza problemi.

Apro lo stesso db da Raspberry (tramite DB Browser for SqLite) riesco a vedere la struttura, fare SELECT e ottenere i risultati ma quando faccio una INSERT o UPDATE mi torna l'errore: disk I/O error.

Ho provato a copiare il file dal NAS al Raspberry e aprendo il file in locale riesco tranquillamente a modificare e inserire record.

Alcune info e prove che ho fatto:
  • l'utente di accesso al AS che utilizzo su Windows e Raspberry è lo stesso e ha tutti i diritti sulla cartella
  • guardando i grant della cartella e del file da Raspberry torna per entrambi: rwxrwxrwx
  • dal Raspberry ho creato nuovi file e modificato file presenti nella cartella di rete e me lo fa fare tranquillamente
  • in rete ho trovato che quando un db è in sola lettura l'errore che torna è differente
  • sembra che a livello db abbia i diritti poi quando prova a scrivere sul file esca l'errore
Dopo queste prove stavo dando la colpa a smb che per qualche motivo non mi permetteva di scrivere poi ho fatto un ulteriore tentativo e ho lanciato DB Browser for SqLite da linea di comando invece che dal menu grafico e invece di scrivere semplicemente "sqlitebrowser" ho scritto "sudo sqlitebrowser", mi si è aperto DB Browser e questa volta mi ha fatto modificare un record.

A questo punto direi che manca qualche diritto a pi ma sul file e la cartella più di dare rwxrwxrwx non saprei proprio cosa fare, tra l'altro non posso certo risolvere lanciando l'applicazione con sudo perché sono arrivato a fare le prove su DB Browser per fare verifiche e tentativi ma il problema iniziale è che Calibre Web che è in un container e gira come pi riesce a farmi vedere benissimo tutti i libri ma non riesco a fare modifiche per l'errore disk I/O error.

Avete qualche suggerimento?

Grazie

EDIT:
visto che lanciando da Raspberry "ls -l " il proprietario del file (come di tutti gli alti file della condivisione) risultava 1026 (id -nu 1026 torna "no such user") ho provato a mettere pi come proprietario sia del file che pure della cartella che contiene il file.
Anche questo non è servito, facendo UPDATE da DB Browser continua a dare lo stesso errore.
Risposta
#2
Quale Pi e SO? L'interfaccia grafica non ha tutti i permessi (non è root) per operare, quindi in alcune circostanze viene impedita l'esecuzione del comando. Nei SO di alcuni anni fa, era possibile fare il login come root (avendo precedentemente abilitato il superuser, compresa la password) ed era quindi possibile operare "liberamente". Negli ultimi SO l'interfaccia grafica non viene abilitata completamente come root, pur avendo abilitato il superuser; al massimo viene mostrato il cestino tramite il quale sono possibili diverse operazioni. Sull'ultimo SO, bookworm, il tentativo di entrare come root non fa altro che ripresentare, dopo un attimo di schermo nero, la schermata di login come semplice user.
Prova ad aggiungere l'user "pi" al gruppo "root" e riprova.
Altra prova è quella di installare uno dedi vecchi SO e fare il login come root.
Risposta
#3
(12/12/2023, 09:00)ippogrifo Ha scritto: Quale Pi e SO? 

Ho l'ultimo, ma al di la del fatto che non posso fare il downgrade cmq non mi aiuterebbe perché per cercare di capire il problema ho usato DB Browser for SqLite ma il vero problema è che su Calibre Web non riesco a modificare i dati dei libri perchè mi da "disk I/O error" mentre riesco a leggere tranquillamente i dati e a scrivere per esempio gli scaffali perchè li scrive su un altro file di sql lite che si crea in locale.


(12/12/2023, 09:00)ippogrifo Ha scritto: Prova ad aggiungere l'user "pi" al gruppo "root" e riprova.


In realtà se guardo i gruppi di cui fa parte pi con 
groups pi

mi risponde confermandomi che fa parte su sudo:
pi : pi adm dialout cdrom sudo audio video plugdev games users input render netdev spi i2c gpio lpadmin docker

Forse ho capito male e intendevi altro?
Risposta
#4
Mi auto rispondo così se a qualcuno capitasse una cosa simile ha una soluzione....o meglio un workaround.

Non ho capito come ma nella cartella Calibre che contiene il database come pi (ma anche con sudo) se creavo un file o una cartella la creavo di proprietà dell'utente 1023 e con diritti di scrittura solo per l'utente 1023 e per quelli del gruppo e altri solo di lettura, quindi di fatto riuscivo a creare un file, grande quanto volevo, perchè avevo i diritti di scrittura sulla cartella ma come ho scritto il file veniva creato in lettura e quindi dopo non riuscivo a modificarlo.
Nella 4 cartelle "parallele" a Calibre con stessi grant e stessi proprietari invece riuscivo a modificare tranquillamente.

Ho provato di tutto, dal cambiar ei grant della cartella, a impostare il setgid, a modificare umask a guardare con comando getfacl se le altre cartelle avevano diversità ma niente.

Alla fine ho creato una nuova cartella CalibreWeb, ho spostato tutti i file da Calibre a CalibreWeb, ho eliminato la cartella Calibre e poi ho rinominato CalibreWeb in Calibre. 
Ora tutto funziona regolarmente... mi rimane l'amaro in bocca di non aver capito il problema.

PS
Ah il fatto di poter creare e poi modificare un file era necessario perché SqlLite quando fai insert/update crea un file temporaneo prima di chiudere la transazione e poi lo elimina.
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect