Você quer libguestfs . Você pode usá-lo via guestfish ou guestmount , ou use a biblioteca diretamente por meio de sua interface C ou qualquer uma das muitas vinculações de idioma, como < a href="http://libguestfs.org/guestfs-python.3.html"> Python .
Estou tentando adaptar um tutorial em um script fácil de usar link .
Estou tentando reduzir o máximo possível a sudo / root (de preferência, somente para a etapa dd
final).
Minhas perguntas são:
Posso montar o sistema de arquivos ext4 sem privilégios sudo / root de alguma forma?
Posso montá-lo de maneira que os usuários / grupos no FS sejam ignorados de alguma forma (para que eu possa executar make install sem sudo)?
O sistema de arquivos está montado no loopback a partir de um deslocamento de um arquivo (por exemplo, -o loop,offset=62914560
).
Este arquivo é a imagem que será copiada no cartão SD usado para inicializar o Raspberry Pi.
Você quer libguestfs . Você pode usá-lo via guestfish ou guestmount , ou use a biblioteca diretamente por meio de sua interface C ou qualquer uma das muitas vinculações de idioma, como < a href="http://libguestfs.org/guestfs-python.3.html"> Python .
Sobre isso, vem-me à mente o seguinte.
Você pode adicionar uma linha ao seu /etc/fstab
para o dispositivo que deseja montar como um usuário com privilégios normais.
Uma linha de exemplo seria parecida com
/dev/mydevice /mnt/directory auto rw,user 0 0
Com essa linha, um usuário normal pode montar mydevice
a /mnt/directory
e, além disso, pode ler e gravar no dispositivo. Você só precisa invocar
mount mydevice
ou
mount /mnt/directory
Para uma excelente explicação da sintaxe de /etc/fstab
você deve olhar para
Como o raspberry
é um dispositivo usb, você pode conseguir isso de maneira mais elegante com udev
, adicionando uma regra específica do udev (montagem automática, etc.). Neste caso, deixe-me agora se você quiser ter mais uma explicação.
Você precisa de privilégios de superusuário para poder montar. Mas esses podem ser dados a você por comandos auxiliares setuid como sudo, mount ou fusermount. Em / etc / fstab, e admin pode conceder alguns meros usuários para montar um FS específico. Alguns usuários podem montar sistemas de arquivos via fusível (por exemplo, se o FS for ext, você pode usar o fuseext.
Ou talvez você possa fazer sem montar, usando aplicativos que podem escrever dentro de um sistema de arquivos. Por exemplo, debugfs pode gravar em uma imagem ext fs (criar diretórios, arquivos, alterar a propriedade ...), debugfs podem ser scripts facilmente Você também pode usar o qemu para executar um kernel Linux e comandos associados para gravar naquela FS.
Se o seu sistema usa os udisks (e o polkit permite que os udisks sejam montados para usuários não-root), você pode montar o arquivo com:
udisksctl loop-setup -f file.img -o <OFFSET>
<OFFSET>
é um valor inteiro para representar o número de bytes no qual iniciar a montagem de loopback. Você pode usar a opção -r
se quiser montar somente leitura.
Tags mount qt linux raspberry-pi