¿Cómo montar un archivo de imagen sin root?


8

Tengo un archivo con un sistema de archivos ext4 y quiero montarlo sin usar sudo cada vez (el script debe ejecutarse con derechos de usuario). El archivo que quiero montar y la carpeta en la que quiero montar también están en mi directorio de inicio que está encriptado, por lo que no puedo colocar la ubicación del archivo /etc/fstab.

Lo intenté fusermountpero siempre recibo mensajes de error como "fusermount: argumentos adicionales después del punto de montaje".



@muru Gracias, lamentablemente se trata de ext2. Incluso si el acceso de escritura es posible, no tendré un diario porque ext2 no tenía un diario. Necesito un diario
UTF-8

1
Entonces tendrás que vivir con tener que ser root de alguna manera.
muru

unix.stackexchange.com/a/32157/10805 ¿Cuál fue el fusermountcomando que probaste ?
earthmeLon

Respuestas:


2

Puede tenerlo en / etc / fstab. Mi directorio de inicio está encriptado, pero:

$ dd if=/dev/zero of=ext4_file bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB) copied, 0,0341311 s, 30,7 MB/s
$ /sbin/mkfs.ext4 -F ext4_file
mke2fs 1.42.12 (29-Aug-2014)

Filesystem too small for a journal
Discarding device blocks: done                            
Creating filesystem with 1024 1k blocks and 128 inodes

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

$ grep ext4_directory /etc/fstab
/home/alessandro/ext4_file /home/alessandro/ext4_directory ext4 noauto,user 0 0
$ mount ext4_directory
$ mount | grep ext4_directory
/home/alessandro/ext4_file on /home/alessandro/ext4_directory type ext4 (rw,nosuid,nodev,noexec,relatime,user=alessandro)

Si dice eso porque está encriptado, no puede ponerlo en / etc / fstab, tiene razón. Eso no lo monta completamente.
David

Bueno, nada me impide escribirlo /etc/fstab, así que lo intenté antes de publicar esta búsqueda. Sabía que probablemente no lo montaría, pero asumí que tal vez fallaría sin consecuencias y que el hecho de que esté dentro /etc/fstabme permitió montarlo sin root. Desafortunadamente, esto causó que mi sistema no se iniciara y tuve que quitar la línea para poder usar mi máquina nuevamente.
UTF-8

David, todo lo que escribí lo realicé en una PC con / home montado en una partición encriptada. Y funcionó. Y no puedo ver por qué no pudo.
Alessandro

UTF-8, para que funcione / en casa debe montarse antes de su archivo. O configura su archivo para que no se monte automáticamente, como lo configuré para que esté en las instrucciones que le di, son un escenario real.
Alessandro

¿Quién puso el ext4_filearchivo fstab? ¿No te saltaste nada?
Mohammad Kholghi

2

Puedes usar udiskctl:

$ udisksctl loop-setup --file your_file.iso
Mapped file your_file.iso as /dev/loop6.

Ahora, su archivo está asignado a un block device, y puede montarlo como:

$ udisksctl mount -b /dev/loop6
Mounted /dev/loop6 at /media/user/your_file.

cuando haya terminado, desmontar está usando:

$ udisksctl unmount -b /dev/loop6
Unmounted /dev/loop6.

finalmente, bórralo por:

$ udisksctl loop-delete -b /dev/loop6

¡Que te diviertas!


Traté de montar alguna imagen de Linux que tenía por ahí ( kali-linux-2019.1a-amd64.iso) pero siempre obtengo: Object /org/freedesktop/UDisks2/block_devices/loop5 is not a mountable filesystem.(Con el número de dispositivo variable, por supuesto). Esto sucede incluso cuando intento montarlo de solo lectura. Su montaje de solo lectura sudo mountfunciona bien.
UTF-8

use de udisksctl loop-setup --file your_file.isonuevo, por lo que le ofrece un nuevo dispositivo de bucle y monte ese (por ejemplo /dev/loop8). En mi sistema operativo, no funciona usando loop6y no sé por qué. @ UTF-8
Mohammad Kholghi

2

GNOME Disk Image Mounter

Al lado udisksctly guestmount( libguestfs-tools) puedes simplemente:

gnome-disk-image-mounter ~/ISOs/file.iso

Del manual :

Acepte archivos normales y URI de GVfs (como smb: //filer/media/file.iso) ")

De manera predeterminada, las imágenes de disco se adjuntan como de solo lectura, use la opción --escribible para cambiar esto.


1

guestmount truco de libguestfs

sudo apt-get install libguestfs-tools

# Workarounds for Ubuntu 18.04 bugs.
# /server/246835/convert-directory-to-qemu-kvm-virtual-disk-image/916697#916697
sudo rm -rf /var/cache/.guestfs-*
echo dash | sudo tee /usr/lib/x86_64-linux-gnu/guestfs/supermin.d/zz-dash-packages
sudo chmod +r /boot/vmlinuz-*

# Create a test image.
mkdir sysroot
dd if=/dev/urandom of=sysroot/myfile bs=1024 count=1024
virt-make-fs --format=raw --type=ext2 sysroot sysroot.ext2

# Mount it, have fun, unmount!
mkdir -p mnt
# /dev/sda becuase we have a raw filesystem.
guestmount -a sysroot.ext2.qcow2 -m /dev/sda mnt
cmp sysroot/myfile mnt/myfile
guestunmount mnt

Se basa en:

  • implementación de los sistemas de archivos por parte del usuario
  • FUSIBLE

Documentos: http://libguestfs.org/guestmount.1.html

Probado en Ubuntu 18.04, libguestfs-tools 1: 1.36.13-1ubuntu3.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.