Je sais comment monter un lecteur qui a un fichier de périphérique correspondant dans/dev, mais je ne sais pas comment faire pour une image disque qui ne représente pas un périphérique physique et n'a pas d'analogue dans/dev (par exemple un Fichier ISO ou une image de disquette). Je sais que je peux le faire sous Mac OS X en double-cliquant sur l'icône de l'image disque dans le Finder, qui montera automatiquement le lecteur, mais j'aimerais pouvoir le faire à partir du terminal. Je ne sais pas s'il existe une façon générale de procéder sous Unix, ou si c'est spécifique à la plate-forme.
S'il s'agissait d'une image de disque dur avec une table de partition MBR, je rechercherais l'image pour trouver le décalage de la partition que je dois monter.
fdisk -lu /path/disk.img
Ensuite, je le montais en passant le décalage.
mount -o loop,offset=xxxx /path/disk.img /mnt/disk.img.partition
La valeur de décalage est en octets, tandis que fdisk
affiche un nombre de blocs, vous devez donc multiplier la valeur de la colonne "Begin" ou "Start" de la sortie fdisk
par 512
(ou quelle que soit la taille du bloc) pour obtenir le décalage à monter.
Sur les systèmes GNU GNU $ modernes, la commande mount
peut gérer cela:
mount -o loop file.iso /mnt/dir
pour démonter vous pouvez simplement utiliser la commande umount
umount /mnt/dir
Si votre système d'exploitation n'a pas cette option, vous pouvez créer un périphérique de boucle :
losetup -f # this will print the first available loop device ex:/dev/loop0
losetup /dev/loop0 /path/file.iso #associate loop0 with the specified file
mount /dev/loop0 /mnt/dir #It may be necessary specify the type (-t iso9660)
pour démonter, vous pouvez utiliser -d
:
umount /mnt/dir
losetup -d /dev/loop0
Si le fichier a des partitions, par exemple une image HD, vous pouvez utiliser le -P
paramètre (selon votre système d'exploitation), il mappera les partitions dans le contenu du fichier:
losetup -P /dev/loop0 /path/file.iso # will create /dev/loop0
ls /dev/loop0p* #the partitions in the format /dev/loop0pX
losetup -P
automatisation des images multi-partitions
Comment monter une image disque depuis la ligne de commande? | Unix & Linux Stack Exchange mentionné losetup -P
, et voici quelques fonctions Bash pratiques pour automatiser davantage les choses. Usage:
$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2
$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there
$ Sudo losetup -l
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO
/dev/loop1 0 0 0 0 /full/path/to/my.img
$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0
La source:
los() (
img="$1"
dev="$(Sudo losetup --show -f -P "$img")"
echo "$dev"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
echo "$dst"
Sudo mkdir -p "$dst"
Sudo mount "$part" "$dst"
done
)
losd() (
dev="/dev/loop$1"
for part in "$dev"?*; do
if [ "$part" = "${dev}p*" ]; then
part="${dev}"
fi
dst="/mnt/$(basename "$part")"
Sudo umount "$dst"
done
Sudo losetup -d "$dev"
)
Essayer:
mount -o loop /path/to/file.iso /mnt
Vous pouvez ajouter, après loop
:
-t msdos
pour disquette-t iso9660
pour l'image du CD-ROMLinux essaie généralement de deviner le type de fichier.