วิธีการเมานท์ไฟล์ภาพโดยไม่รูท


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

เดวิดทุกอย่างที่ฉันเขียนฉันแสดงบนพีซีที่มี / home ประกอบเข้ากับพาร์ติชันที่เข้ารหัส และมันก็ใช้งานได้ และฉันไม่สามารถเห็นได้ว่าทำไมถึงทำไม่ได้
เลสซานโดร

UTF-8 สำหรับการทำงาน / ที่บ้านจะต้องติดตั้งก่อนไฟล์ของคุณ หรือคุณตั้งค่าไฟล์ของคุณไม่ให้ติดตั้งโดยอัตโนมัติเช่นฉันตั้งให้เป็นไปในทิศทางที่ฉันให้คุณมันเป็นสถานการณ์จริง
Alessandro

ใครใส่ext4_fileแฟ้มในfstab?? คุณไม่ข้ามอะไรเลยเหรอ?
Mohammad Kholghi

2

คุณสามารถใช้udiskctl:

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

ตอนนี้ไฟล์ของคุณถูกแม็พกับ a 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

เมานต์ Image Disk ของ GNOME

ด้านข้างudisksctlและguestmount( libguestfs-tools) คุณสามารถ:

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

จากคู่มือ :

ยอมรับทั้งไฟล์ปกติและ GVfs URIs (เช่น 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

พึ่งพา:

  • การใช้งานระบบไฟล์ของ userland
  • ฟิวส์

เอกสาร: http://libguestfs.org/guestmount.1.html

ทดสอบบน Ubuntu 18.04, libguestfs-tools 1: 1.36.13-1ubuntu3

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.