Come montare un file di immagine senza root?


8

Ho un file con un file system ext4 e voglio montarlo senza usare sudo ogni volta (lo script dovrebbe essere eseguito con i diritti dell'utente). Il file che voglio montare e anche la cartella su cui voglio montare sono entrambi nella mia directory home che è crittografata, quindi non posso inserire il percorso del file /etc/fstab.

Ho provato fusermountma ricevo sempre messaggi di errore come "fusermount: argomenti extra dopo il mountpoint".



@muru Grazie, sfortunatamente si tratta di ext2. Anche se l'accesso in scrittura è possibile, non avrò il journaling perché ext2 non aveva il journaling. Ho bisogno del journaling.
UTF-8

1
Quindi dovrai convivere con il dover essere root in qualche modo.
muru,

unix.stackexchange.com/a/32157/10805 Qual è stato il fusermountcomando che hai provato?
earthmeLon

Risposte:


2

Puoi averlo in / etc / fstab. La mia directory home è crittografata, tuttavia:

$ 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)

Se lo dice perché è crittografato, non può inserirlo in / etc / fstab, ha ragione. Questo non lo monta completamente.
David,

Bene, nulla mi impedisce di scriverlo /etc/fstab, quindi l'ho provato prima di pubblicare questa ricerca. Sapevo che probabilmente non l'avrebbe montato, ma supponevo che forse avrebbe fallito senza conseguenze e che il fatto che fosse dentro /etc/fstabmi ha permesso di montarlo senza root. Sfortunatamente ciò ha impedito l'avvio del mio sistema e ho dovuto rimuovere la linea per poter riutilizzare la mia macchina.
UTF-8

David, tutto quello che ho scritto l'ho eseguito su un PC con / home montato su una partizione crittografata. E ha funzionato. E non riesco a capire perché non sia stato possibile.
Alessandro,

UTF-8, affinché funzioni / home deve essere montato prima del file. Oppure imposti che il tuo file non venga montato automaticamente, come ho impostato per essere nelle direzioni che ti ho dato, sono uno scenario reale.
Alessandro,

Chi ha inserito il ext4_filefile fstab?? Non hai saltato niente?
Mohammad Kholghi,

2

Puoi usare udiskctl:

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

Ora, il tuo file è mappato su a block devicee puoi montarlo come:

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

quando hai finito, smonta sta usando:

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

infine, cancellalo con:

$ udisksctl loop-delete -b /dev/loop6

Divertiti!


Ho provato a montare qualche immagine Linux che avevo in giro ( kali-linux-2019.1a-amd64.iso) ma ottengo sempre: Object /org/freedesktop/UDisks2/block_devices/loop5 is not a mountable filesystem.(Con il numero del dispositivo che varia, ovviamente.) Questo succede anche quando provo a montarlo in sola lettura. Montandolo in sola lettura sudo mountfunziona perfettamente.
UTF-8

utilizzare udisksctl loop-setup --file your_file.isodi nuovo, in modo che ti dà un nuovo dispositivo di loop, e montare quella (ad esempio /dev/loop8). Nel mio sistema operativo, non funziona usando loop6e non so perché. @ UTF-8
Mohammad Kholghi,

2

GNOME Disk Image Mounter

Accanto udisksctle guestmount( libguestfs-tools) puoi semplicemente:

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

Dal manuale :

Accetta sia file regolari che URI GVfs (come smb: //filer/media/file.iso) ")

Per impostazione predefinita, le immagini del disco sono allegate in sola lettura, utilizzare l'opzione --writable per modificarlo.


1

guestmount inganno 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

Si affida a:

  • implementazione userland dei filesystem
  • FUSIBILE

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

Testato su Ubuntu 18.04, libguestfs-tools 1: 1.36.13-1ubuntu3.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.