루트없이 이미지 파일을 마운트하는 방법?


8

ext4 파일 시스템이있는 파일이 있고 매번 sudo를 사용하지 않고 마운트하려고합니다 (스크립트는 사용자 권한으로 실행해야 함). 마운트하려는 파일과 마운트하려는 폴더가 모두 암호화 된 내 홈 디렉토리에 있으므로 파일 위치를에 넣을 수 없습니다 /etc/fstab.

시도 fusermount했지만 항상 "fusermount : 마운트 지점 뒤에 추가 인수"와 같은 오류 메시지가 나타납니다.



@muru 불행히도 이것은 ext2에 관한 것입니다. 쓰기 액세스가 가능하더라도 ext2에는 저널링이 없으므로 저널링이 없습니다. 저널링이 필요합니다.
UTF-8

1
그럼 당신은 어떻게 든 뿌리를 가지고 살아야합니다.
muru

unix.stackexchange.com/a/32157/10805fusermount 시도한 명령 은 무엇입니까 ?
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에 넣을 수 없습니다. 그것은 완전히 마운트되지 않습니다.
David

글쎄,에 글을 쓰지 못하게하는 것은 아무것도 /etc/fstab없으므로이 퀘스트를 게시하기 전에 시도했습니다. 나는 그것이 마운트되지 않을 것이라는 것을 알고 있었지만 결과가 없으면 실패 할 것이라고 /etc/fstab생각했고 그것이 뿌리없이 마운트 할 수 있다고 생각했습니다 . 불행히도 이로 인해 시스템이 부팅되지 않고 시스템을 다시 사용할 수 있도록 회선을 제거해야했습니다.
UTF-8

David, 내가 쓴 모든 것은 암호화 된 파티션에 / home이 마운트 된 PC에서 수행 한 것입니다. 그리고 그것은 효과가 있었다. 그리고 왜 그럴 수 없었는지 알 수 없습니다.
Alessandro

UTF-8은 / home이 작동하기 전에 파일보다 먼저 마운트되어야합니다. 또는 내가 지시 한 방향으로 설정 한 것처럼 파일이 자동으로 마운트되지 않도록 설정하면 실제 시나리오입니다.
Alessandro

누가 ext4_file파일을 넣었 fstab습니까 ?? 아무것도 건너 뛰지 않았습니까?
Mohammad Kholghi

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.

완료되면 마운트 해제는 다음을 사용합니다.

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

마지막으로 다음을 수행하여 삭제하십시오.

$ udisksctl loop-delete -b /dev/loop6

즐기세요!


나는 ( kali-linux-2019.1a-amd64.iso) 주변에 배치 한 Linux 이미지를 마운트하려고 시도 했지만 항상 얻을 수 있습니다 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. 내 OS에서는 사용이 작동 loop6하지 않으며 이유를 모릅니다. @ UTF-8
Mohammad Kholghi

2

그놈 디스크 이미지 마운터

udisksctlguestmount( libguestfs-tools) 만 있으면됩니다.

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

매뉴얼에서 :

일반 파일과 GVfs URI 모두 허용 (예 : smb : //filer/media/file.iso) ")

기본적으로 디스크 이미지는 읽기 전용으로 연결되어 있으며 --writable 옵션을 사용하여이를 변경하십시오.


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

에 의존:

  • 파일 시스템의 userland 구현
  • 퓨즈

문서 : http://libguestfs.org/guestmount.1.html

우분투 18.04, libguestfs-tools 1 : 1.36.13-1ubuntu3에서 테스트되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.