Vuoi libguestfs. Puoi usarlo tramite guestfish o guestmount, oppure utilizzare la libreria direttamente tramite la sua interfaccia C o uno qualsiasi dei tanti collegamenti linguistici, come Python.
Riguardo a questo mi viene in mente quanto segue.
Puoi aggiungere una riga al tuo /etc/fstab
per il dispositivo che desideri montare come utente con privilegi normali.
Una riga di esempio sarebbe simile a
/dev/mydevice /mnt/directory auto rw,user 0 0
Con questa linea un utente normale può montare mydevice
a /mnt/directory
e inoltre può leggere e scrivere sul dispositivo. Devi solo invocare
mount mydevice
o
mount /mnt/directory
Per un'eccellente spiegazione della sintassi di/etc/fstab
dovresti guardare
www.tuxfiles.org/linuxhelp/fstab.html
Dal momento che il raspberry
è un dispositivo USB puoi farlo in modo più elegante con udev
aggiungendo una regola udev specifica (montaggio automatico ecc.). In questo caso lasciami ora se vuoi avere un'ulteriore spiegazione.
Hai bisogno dei privilegi di superutente per essere in grado di montare. Ma quelli potrebbero essere dati da comandi setuid helper come sudo, mount o fusermount. In /etc/fstab, l'amministratore può concedere ad alcuni semplici utenti di montare FS specifici. Alcuni utenti possono essere autorizzati a montare filesystem tramite fuse (ad esempio, se FS è ext, potresti essere in grado di usare fuseext.
O forse puoi fare a meno del montaggio, usando applicazioni che possono scrivere all'interno di un filesystem. Ad esempio, debugfs può scrivere su un'immagine ext fs (creare dirs, file, cambiare proprietà...), debugfs può essere scriptato facilmente Puoi anche usare qemu per eseguire un kernel Linux e comandi associati per scrivere su quel FS.