Jak zamontować plik obrazu bez roota?


8

Mam plik z systemem plików ext4 i chcę go montować bez użycia sudo za każdym razem (skrypt powinien działać z prawami użytkownika). Plik, który chcę zamontować, i folder, który też chcę zamontować, znajdują się w moim katalogu domowym, który jest zaszyfrowany, więc nie mogę umieścić w nim lokalizacji pliku /etc/fstab.

Próbowałem, fusermountale zawsze otrzymuję komunikaty o błędach, takie jak „fusermount: dodatkowe argumenty po punkcie montowania”.



@muru Dziękuję, niestety chodzi o ext2. Nawet jeśli dostęp do zapisu jest możliwy, nie będę mieć kronikowania, ponieważ ext2 nie miał kronikowania. Potrzebuję kronikowania.
— UTF-8

1
Wtedy będziesz musiał żyć jakoś rootować.
— muru

unix.stackexchange.com/a/32157/10805 Jakie było fusermountpolecenie, które wypróbowałeś?
— earthmeLon

Odpowiedzi:


2

Możesz go mieć w / etc / fstab. Mój katalog domowy jest zaszyfrowany, ale:

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

Jeśli mówi, że ponieważ jest zaszyfrowany, nie może umieścić go w / etc / fstab, to ma rację. To nie w pełni go montuje.
— David

Cóż, nic nie powstrzymuje mnie przed napisaniem tego /etc/fstab, więc wypróbowałem to, zanim opublikowałem to zadanie. Wiedziałem, że prawdopodobnie nie zamontuje go, ale założyłem, że może się nie powiedzie bez konsekwencji i że fakt, że jest /etc/fstabwłączony, umożliwił mi zamontowanie go bez rootowania. Niestety spowodowało to, że mój system nie uruchomił się i musiałem usunąć linię, aby móc ponownie korzystać z mojego komputera.
— UTF-8

David, wszystko, co napisałem, wykonałem na komputerze z / home zamontowanym na zaszyfrowanej partycji. I zadziałało. I nie rozumiem, dlaczego nie mógł.
— Alessandro,

UTF-8, aby działał / home musi być zamontowany przed plikiem. Albo ustawiasz, aby plik nie był montowany automatycznie, tak jak ja ustawiłem go zgodnie ze wskazówkami, które ci dałem, są to rzeczywiste scenariusze.
— Alessandro,

Kto umieścił ext4_fileplik fstab? Niczego nie pominąłeś?
— Mohammad Kholghi

2

Możesz użyć udiskctl:

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

Teraz twój plik jest zamapowany na a block device, i możesz go zamontować jako:

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

kiedy skończysz, odmontuj używa:

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

na koniec usuń:

$ udisksctl loop-delete -b /dev/loop6

Baw się dobrze!


Próbowałem zamontować jakiś obraz Linuksa, który miałem wokół ( kali-linux-2019.1a-amd64.iso), ale zawsze otrzymuję: Object /org/freedesktop/UDisks2/block_devices/loop5 is not a mountable filesystem.(Przy różnym numerze urządzenia, oczywiście). Dzieje się tak nawet wtedy, gdy próbuję zamontować go tylko do odczytu. Montowanie go tylko do odczytu za pomocą sudo mountdziała dobrze.
— UTF-8

użyj udisksctl loop-setup --file your_file.isoponownie, aby uzyskać nowe urządzenie pętli i zamontuj je (np /dev/loop8.). W moim systemie operacyjnym nie działa loop6i nie wiem dlaczego. @ UTF-8
— Mohammad Kholghi

2

GNOME Disk Image Mounter

Oprócz udisksctli guestmount( libguestfs-tools) możesz po prostu:

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

Z instrukcji :

Zaakceptuj zarówno zwykłe pliki, jak i identyfikatory URI GVfs (takie jak smb: //filer/media/file.iso) ")

Domyślnie obrazy dysków są dołączone tylko do odczytu, aby to zmienić, użyj opcji --writable.


1

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

Polega na:

  • implementacja systemów plików dla użytkowników
  • BEZPIECZNIK

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

Testowany na Ubuntu 18.04, libguestfs-tools 1: 1.36.13-1ubuntu3.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.