6 votes

Est-il possible de monter une image de partition ext4 via FUSE ?

Je tente de monter une image de partition ext4 dans l'espace utilisateur. (pas de sudo, pas de configuration / modification de permissions spéciales sur /dev/loop0 ou /etc/fstab etc). Donc j'espère que FUSE viendra à la rescousse.

Cependant, il semble que chaque système de fichiers monté via le système FUSE doit avoir un pilote FUSE spécial, et je n'ai pas pu trouver de pilote FUSE ext4 en lecture-écriture pour Linux.

Y a-t-il un moyen de monter des images ext4 via FUSE (avec la permission d'écriture)?

3voto

Shayna Points 1

fuseext2 apparemment montera les partitions ext4 en lecture-écriture.

Attention : le support de ext4 n'est pas mentionné dans leur documentation, et les tentatives de montage sont accompagnées d'un avertissement :

Ceci est un code expérimental, ouvrir en lecture-écriture un vrai système de fichiers pourrait être
dangereux pour vos données. Veuillez ajouter "-o ro" si vous voulez ouvrir le fichier
image du système de fichiers en mode lecture seule, ou "-o rw+" si vous acceptez le risque de tester
ce module

2voto

Laurent Grégoire Points 121

Vous avez besoin d'un pilote de fuse spécifique pour chaque type de système de fichiers, car le but de fuse est d'avoir le code du système de fichiers qui s'exécute dans l'espace utilisateur. Ainsi, tout code de pilote de noyau préexistant, s'exécutant dans l'espace noyau (ext2, ext3, ext4, xfs...) ne peut pas être utilisé tel quel par fuse.

Rien n'empêche les développeurs de réutiliser une partie du code du pilote de noyau correspondant pour implémenter un pilote de fuse dans l'espace utilisateur. Mais de toute façon, vous devez toujours créer un nouveau pilote pour fuse pour chaque type de système de fichiers. Le code en C du noyau et le code en C dans l'espace utilisateur sont assez différents (pas de libc standard dans le noyau, les points d'entrée des pilotes n'ont pas la même signature, etc...)

1voto

Rafe Points 4602

guestmount astuce libguestfs

sudo apt-get install libguestfs-tools

# Solutions de contournement pour les bugs d'Ubuntu 18.04.
# 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-*

# Créer une image de test.
mkdir sysroot
dd if=/dev/urandom of=sysroot/myfile bs=1024 count=1024
virt-make-fs --format=raw --type=ext2 sysroot sysroot.ext2

# Monter, s'amuser, démonter !
mkdir -p mnt
# /dev/sda car nous avons un système de fichiers brut.
guestmount -a sysroot.ext2.qcow2 -m /dev/sda mnt
cmp sysroot/myfile mnt/myfile
guestunmount mnt

Repose sur :

  • l'implémentation de l'espace utilisateur des systèmes de fichiers
  • FUSE

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

Testé sur Ubuntu 18.04, libguestfs-tools 1:1.36.13-1ubuntu3.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X