web-dev-qa-db-fra.com

Quelle est la différence entre le montage et le montage -o loop

J'ai un fichier iso nommé ubuntu.iso.

Je peux mount avec la commande: mount ubuntu.iso /mnt. Après l'avoir monté, je peux le voir depuis la sortie de la commande df -h: /dev/loop0 825M 825M 0 100% /mnt.

Cependant, si j'exécute la commande mount -o loop ubuntu.iso /mnt, J'obtiendrai le même résultat.

Comme je le sais, le périphérique en boucle nous permet de visiter le fichier iso en tant que périphérique, je pense que c'est pourquoi nous ajoutons l'option -o loop. Mais je peux visiter mon fichier iso même si je n'exécute que mount ubuntu.iso /mnt.

Je ne vois donc pas la différence entre mount et mount -o loop.

31
Yves

Les deux versions utilisent des périphériques en boucle et produisent le même résultat; la version courte repose sur "l'intelligence" ajoutée à mount ces dernières années. mount -o loop indique explicitement à mount d'utiliser un périphérique de boucle; il laisse le périphérique de boucle lui-même jusqu'à mount, qui recherchera un périphérique disponible, le configurera et l'utilisera. (Vous pouvez également spécifier l'appareil avec par exemple. mount -o loop=/dev/loop1.)

L'astuce est que, quand on lui donne un fichier à monter, mount utilisera automatiquement un périphérique de boucle pour le monter si nécessaire - ie , le système de fichiers n'est pas spécifié ou libblkid détermine que le système de fichiers n'est pris en charge que sur les périphériques de bloc (et donc qu'un périphérique de boucle est nécessaire pour traduire le fichier en périphérique de bloc).

La section périphérique de boucle de la page de manuel mount a plus de détails.

49
Stephen Kitt

Le périphérique loop est principalement contrôlé par la commande losteup. Donc losetup -a vous donne un aperçu des périphériques de boucle utilisés et des fichiers joints. La commande mount peut monter le bloc périphérique uniquement. Le périphérique de boucle peut créer le périphérique de bloc virtuel à partir d'un fichier (périphérique de caractères).

En fait, il y a une grande différence entre ces commandes car sur les anciens systèmes Linux, le mount ne pouvait pas reconnaître le fichier comme le bon périphérique pour être monté, mais pendant le temps où la commande de montage a été exécutée avec beaucoup de fonctionnalités, elle peut donc décider d’appeler la commande losetup et monter le résultat. Mais si vous avez une image disque entière non pas au format iso mais par ex. avec MBR au début, la commande mount ne pouvait pas le reconnaître et vous devez trouver la partition utilisable (par exemple avec le parted disk_image.raw unit B print command) yoursef et ensuite le monter avec l'option de montage complète comman comme:

mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}

Dans cette syntaxe, le périphérique de boucle n'a pas été spécifié et il est supposé que le système choisit le premier libre (/dev/loop0, /dev/loop1 etc) Parmi les autres nouvelles fonctionnalités de la commande mount, vous n'avez pas besoin de spécifier le type de système de fichiers du périphérique de bloc monté (dans votre cas -t iso9660) si la prise en charge du système de fichiers a été installée.

9
schweik

Il n'y a aucune différence entre mount ubuntu.iso /mnt et mount -o loop ubuntu.iso /mnt.

Le premier est traité de manière transparente comme si vous aviez utilisé le second.

7
Emmanuel Rosa