Entre outras coisas, é possível obstruir / sobrepor estruturas de sistema de arquivos com montagens, assim, normalmente, não é permitido montar nada em qualquer lugar sem privilégios de root. Os casos em que isso é feito (ou parece ser feito), geralmente há um auxiliar de montagem envolvido que é executado como raiz (como fusermount, udisks, ...).
Se por algum motivo o uso de um auxiliar de montagem não for uma opção, "uma maneira amplamente suportada de copiar arquivos em uma imagem formatada" é usar mkisofs
, que cria uma imagem contendo seus arquivos e nenhuma raiz envolvida em lugar algum. / p>
Seria perfeitamente possível implementar o que o mkisofs
faz (e mais) em um programa de espaço do usuário, mas como a maioria das pessoas não tem problemas com montagem, não tenho certeza se esse programa existe para a maioria dos sistemas de arquivos. / p>
Para ext*
, há debugfs
, que faz parte dele.
$ echo Hello World > hello.txt
$ truncate -s 100M foobar
$ /sbin/mkfs.ext4 foobar
$ /sbin/debugfs -w foobar
debugfs 1.42.11 (09-Jul-2014)
debugfs: ls
2 (12) . 2 (12) .. 11 (20) lost+found
debugfs: mkdir hey
debugfs: mkdir what
debugfs: mkdir up
debugfs: ls
2 (12) . 2 (12) .. 11 (20) lost+found 12 (12) hey
13 (12) what 14 (956) up
debugfs: write hello.txt hello.txt
Allocated inode: 15
debugfs: cat hello.txt
Hello World
Então, isso parece funcionar. Automatizar é possível ( -f cmdfile
opção), mas parece lição de casa.