Як змонтувати файл зображення без кореня?


8

У мене є файл із файловою системою ext4 і хочу його монтувати, не використовуючи sudo кожного разу (сценарій повинен працювати з правами користувача). Файл, який я хочу змонтувати, і папка, в яку я теж хочу його встановити, знаходяться в моєму домашньому каталозі, який зашифрований, тому я не можу розмістити його в /etc/fstab.

Я намагався, fusermountале я завжди отримую повідомлення про помилки типу "fusermount: додаткові аргументи після точки монтування".



@muru Дякую, на жаль, це стосується ext2. Навіть якщо доступ до запису можливий, я не буду вести журнал, оскільки у ext2 не було журналу. Мені потрібен журнал.
UTF-8,

1
Тоді вам доведеться жити з тим, щоб якось вкоренитися.
муру

unix.stackexchange.com/a/32157/10805 Яку fusermountкоманду ви спробували?
earthmeLon

Відповіді:


2

Ви можете мати його в / etc / fstab. Мій домашній каталог зашифрований, але:

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

Якщо він каже, що оскільки він зашифрований, він не може поставити його в / etc / fstab, він має рацію. Це не повністю зможе.
Девід

Ну, ніщо не заважає мені написати це /etc/fstab, тому я спробував це, перш ніж опублікувати цей квест. Я знав, що він, ймовірно, не зможе його встановити, але припустив, що, можливо, він вийде з ладу без наслідків, і той факт, що він в змозі, /etc/fstabдозволив мені встановити його без кореня. На жаль, це призвело до того, що моя система не завантажилася, і мені довелося видалити лінію, щоб мати можливість знову використовувати свою машину.
UTF-8,

Девіде, все, що я написав, я виконував на ПК із дому, встановленого на зашифрованому розділі. І це спрацювало. І я не бачу, чому це не могло.
Алессандро

UTF-8, щоб він працював / дім повинен бути встановлений перед вашим файлом. Або ви встановлюєте, щоб ваш файл не монтувався автоматично, як я встановив, що він відповідає вказівкам, які я вам дав, вони є справжнім сценарієм.
Алессандро

Хто помістив ext4_fileфайл fstab?? Ви нічого не пропустили?
Мохаммед Холгі

2

Ви можете використовувати udiskctl:

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

Тепер ваш файл зіставлено на block device, і ви зможете встановити його як:

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

коли ви закінчите, unmount використовує:

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

нарешті, видаліть його:

$ udisksctl loop-delete -b /dev/loop6

Веселіться!


Я спробував встановити якийсь образ Linux, який я мав ( kali-linux-2019.1a-amd64.iso), але завжди отримую: Object /org/freedesktop/UDisks2/block_devices/loop5 is not a mountable filesystem.(Звичайно, коли номер пристрою змінюється.) Це відбувається навіть тоді, коли я намагаюся встановити його лише для читання. Монтаж його лише для читання за допомогою sudo mountвідмінно працює.
UTF-8

використовувати udisksctl loop-setup --file your_file.isoзнову, тому він дає вам новий пристрій циклу, і змонтуйте його (наприклад /dev/loop8). У моїй ОС він не працює, не використовуючи loop6і не знаю, чому. @ UTF-8
Mohammad Kholghi

2

GNOME Диск Image Mounter

Поруч udisksctlі guestmount( libguestfs-tools) ви можете просто:

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

З посібника :

Прийміть як звичайні файли, так і UR-файли GVfs (наприклад, smb: //filer/media/file.iso) ")

За замовчуванням зображення диска додаються лише для читання, скористайтеся опцією - писати, щоб змінити це.


1

guestmount хитрість 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

Спирається на:

  • реалізація файлових систем користувача
  • ЗАПУСК

Документи: http://libguestfs.org/guestmount.1.html

Тестовано на Ubuntu 18.04, libguestfs-інструменти 1: 1,36.13-1ubuntu3.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.