Я имею файл с ext4 файловой системой в нем и хочу смонтировать его, не используя sudo каждый раз (сценарий должен работать с пользовательскими правами). Файл, который я хочу смонтировать и папка, которая я хочу смонтировать его также, оба находятся в моем корневом каталоге, который шифруется, таким образом, я не могу поместить расположение файла в /etc/fstab
.
Я попробовал fusermount
но я всегда получаю сообщения об ошибках как "fusermount: дополнительные аргументы после точки монтирования".
То, что можно сделать, установлено определенная команда для не необходимости в sudo пароле.
sudo visudo
И перешли вниз к
# User Privelege Specification
Для этого примера, который я отошлю к Вашей команде, которую Вы используете для монтирования ext4 как 'C', и мы назовем имя хоста 'хостом', Если Вы не будете знать, что Ваше имя хоста просто делает
hostname
Затем с заменой 'C' и 'размещает' с Вашей информацией, добавляет эту строку ниже пользовательских полномочий
host=root NOPASSWD:C
У Вас может быть он в/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)
Вы можете использовать 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.
, когда вы ' готово, демонтирование использует:
$ udisksctl unmount -b /dev/loop6
Unmounted /dev/loop6.
наконец, удалите его с помощью:
$ udisksctl loop-delete -b /dev/loop6
Веселитесь!
Кроме udisksctl
и guestmount
(libguestfs-tools
) вы можете просто:
gnome-disk-image-mounter ~/ISOs/file.iso
Принимать как обычные файлы, так и URI GVfs (например, smb: //filer/media/file.iso) ")
По умолчанию образы дисков прикреплены только для чтения, используйте опцию --writable, чтобы изменить это.
gnome-disk-image-mounter
является частью пакета gnome-disk-utility
, который также приносит gnome-disks
(запустите его с -h
для получения дополнительной информации). gio mount
. guestmount
обман libguestfs
sudo apt-get install libguestfs-tools
# Workarounds for Ubuntu 18.04 bugs.
# https://serverfault.com/questions/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.