Benutzer-Werkzeuge

Webseiten-Werkzeuge


mount_iso

mount ISO

Linux

> mount -o loop /var/tmp/cdrom.iso /mnt
> losetup -a
/dev/loop0: [0006]:977176076 (/var/tmp/cdrom.iso), offset 1048576

LVM-Volumen aus einem Image mounten

Image-Infos anzeigen:

> fdisk -lu /var/tmp/host01.img

...
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cf766

              Device Boot      Start         End      Blocks   Id  System
/var/tmp/host01.img1   *        2048     1171455      584704   83  Linux
/var/tmp/host01.img2         1171456   639631359   319229952   8e  Linux LVM

mount der ersten primären Partition:

> mkdir /mnt_boot
> mount -r -o loop,offset=$((512*2048)) /var/tmp/host01.img /mnt_boot
> ls -lha /mnt_boot

umount der ersten primären Partition:

> umount /mnt_boot

mount eines LV:

> losetup -f
/dev/loop0
> losetup /dev/loop0 /var/tmp/host01.img
> kpartx -l /dev/loop0
loop0p1 : 0 1169408 /dev/loop0 2048
loop0p2 : 0 638459904 /dev/loop0 1171456

> kpartx -a /dev/loop0
> vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vgtrusty" using metadata type lvm2

> vgchange -ay vgtrusty
  3 logical volume(s) in volume group "vgtrusty" now active

> ls -lha /dev/vgtrusty/
total 0
drwxr-xr-x  2 root root  100 Apr  6 14:17 .
drwxr-xr-x 17 root root 5,1K Apr  6 14:17 ..
lrwxrwxrwx  1 root root    7 Apr  6 14:17 mysql -> ../dm-7
lrwxrwxrwx  1 root root    7 Apr  6 14:17 root -> ../dm-5
lrwxrwxrwx  1 root root    7 Apr  6 14:17 swap -> ../dm-6

> mkdir /mnt_lv
> mount /dev/vgtrusty/mysql /mnt_lv

umount des LV:

> umount /mnt_lv
> lvchange -an vgtrusty  
> vgchange -an vgtrusty
  0 logical volume(s) in volume group "vgtrusty" now active

> kpartx -d /dev/loop0
> losetup -d /dev/loop0
> losetup -f
/dev/loop0

vor FreeBSD 5

# vnconfig /dev/vn0c /var/tmp/cdrom.iso
# mount -t cd9660 /dev/vn0c /mnt
# umount /mnt
# vnconfig -u /dev/vn0c

ab FreeBSD 5

# mdconfig -a -t vnode -u 0 -f /var/tmp/cdrom.iso
# mdconfig -l
md0
# mdconfig -l -u md0
md0     vnode     2.2G  /var/tmp/cdrom.iso

oder

# mdconfig -l -u 0
md0     vnode     2.2G  /var/tmp/cdrom.iso
# mount -t cd9660 /dev/md0 /mnt
# umount /mnt
# mdconfig -d -u 0

Will man alle gemounteten vnodes ausführlich sehen, geht das so ganz gut:

# for i in $(mdconfig -l);do mdconfig -l -u ${i};done
md0     vnode     2.2G  /var/tmp/cdrom.iso
md1     swap     1024M
md2     vnode     679M  /home/kontor/technik/edv/iso/ubuntu/ubuntu-11.10-server-i386.iso

/home/bin/mount_img.sh

#!/bin/sh
#
################################################################################
#
# Diese Schritte sind nur als "root" ausfuehrbar!
# Ein MS-DOS-Disketten-Image soll gemountet werden:
#
# Beispiel fuer FreeBSD bis zur Version 4:
# ========================================
#
# vnconfig -c /dev/vn0c ~/kontor/SYS/msdos622.img
# mount -t msdos /dev/vn0c /mnt
#
#
# Unmounten des Images (loesen vom Image):
#
# umount /mnt
# vnconfig -u /dev/vn0c
#
#
# Beispiel fuer FreeBSD ab der Version 5:
# =======================================
#
# mdconfig -a -t vnode -u 1 -f ~/kontor/SYS/msdos622.img
# mount -t msdos /dev/md2 /mnt
#
#
# Unmounten des Images (loesen vom Image):
#
# for i in $(mdconfig -l);do mdconfig -l -u ${i};done
#
# umount /mnt
# mdconfig -d -u md1
#
# umount /mnt
# mdconfig -d -u 1
#
################################################################################

if [ "$(uname -s)" != "FreeBSD" ] ; then
      echo ""
      echo "Dieses Script laeft nur auf FreeBSD!"
      echo "ABBRUCH!"
      exit 1
fi

VERSION="$(uname -r|cut -f1 -d'.')"
if [ "${VERSION}" -lt "5" ] ; then
      echo "Dieses Script arbeitet erst ab FreeBSD 5."
      exit 1
fi


if [ -n "${1}" ] ; then

    case "${1}" in


    [Cc][Dd])
      # CD9660 - mount
      DATEISYSTEM="cd9660"
        ;;


    [Ee][Xx][Tt])
      # EXT2FS - mount
      DATEISYSTEM="ext2fs"
        ;;


    [Dd][Oo][Ss])
      # MSDOSFS - mount
      DATEISYSTEM="msdosfs"
        ;;


    [Nn][Tt][Ff][Ss])
      # NTFS - mount
        # ntfs-3g -o permissions /dev/da6s1 /mnt/
      DATEISYSTEM="ntfs-3g"
        ;;


    [Uu][Ff][Ss])
      # UFS - mount
      DATEISYSTEM="ufs"
        ;;


    [Uu])
      # normales unmounten
        #echo "Welcher Mountpoint soll geloest werden (z.B. /mnt):"
      if [ -d "${2}" ] ; then
                VNODE="$(df "${2}" | awk '/^\/dev\// && /\/md[0-9]/ {print $1}')"
                if [ -n "${VNODE}" ] ; then
                        echo "umount \"${2}\""
                        umount "${2}"
                        echo "mdconfig -d -u ${VNODE}"
                        mdconfig -d -u ${VNODE}
                else
                        echo "
                        # umount des gemounteten Images
                        ${0} u [MountPoint]
                        ${0} u /mnt
                        "
                fi
        else
                echo "
                # umount des gemounteten Images
                ${0} u [MountPoint]
                ${0} u /mnt
                "
      fi
        ;;


    *)
      echo "
        ${0} cd   [cdrom.iso] [/mnt]
        ${0} ext  [linux.img] [/mnt]
        ${0} dos  [msdos.img] [/mnt]
        ${0} ntfs [mswin.img] [/mnt]
        ${0} ufs  [bsd.img]   [/mnt]
      oder
        ${0} u [/mnt]         # umount des gemounteten Images
      "
        ;;

    esac


    if [ -n "${DATEISYSTEM}" ] ; then
        if [ -f "${2}" ] ; then
                IMAGEFILE="${2}"
        else
                echo "
                ${0} cd   [cdrom.iso] [/mnt]
                ${0} ext  [linux.img] [/mnt]
                ${0} dos  [msdos.img] [/mnt]
                ${0} ntfs [mswin.img] [/mnt]
                ${0} ufs  [bsd.img]   [/mnt]
                "
        fi

        if [ -d "${3}" ] ; then
                MOUNTPOINT="${3}"
        else
                MOUNTPOINT="/mnt"
        fi

      VNODE="$(mdconfig -a -t vnode -f "${IMAGEFILE}")"
        if [ "${DATEISYSTEM}" != "ntfs-3g" ] ; then
                mount -t "${DATEISYSTEM}" /dev/${VNODE} "${MOUNTPOINT}"
        else
                ntfs-3g -o permissions /dev/${VNODE} "${MOUNTPOINT}"
        fi
    fi


else

      echo "
        ${0} cd   [cdrom.iso] [/mnt]
        ${0} ext  [linux.img] [/mnt]
        ${0} dos  [msdos.img] [/mnt]
        ${0} ntfs [mswin.img] [/mnt]
        ${0} ufs  [bsd.img]   [/mnt]
      oder
        ${0} u [/mnt]         # umount des gemounteten Images
      "

fi

DVD mit UDF

Leider kann mount_udf oft (in meinem Fall) eine UDF-DVD nicht mounten:

Image-Datei

# mdconfig -l
md0 
# mount -t udf /dev/md0 /mnt
mount_udf: /dev/md0: Invalid argument

das geht mit FreeBSD 8.0 leider nicht per mount, sondern nur mit udfclient:

# portinstall -prO sysutils/udfclient
# udfclient /var/tmp/cdrom.iso

DVD

mit FreeBSD 9.0 hat das mounten einer UDF-DVD geklappt:

# mount -t udf /dev/cd0 /cdrom

FreeBSD 8

# vi /etc/sysctl.conf
vfs.usermount=1
# vi /etc/devfs.conf
link    acd0    cdrom
own     acd0    root:operator
perm    acd0    0660
/home/http/wiki/data/pages/mount_iso.txt · Zuletzt geändert: von manfred