ISO Image

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen

ISO Image von einer CD erstellen

Windows

Mit einem Brennprogramm, z.B. CDBurnerXP, ein ISO-Image erzeugen. Das Image am Server speichern, z.B.: im Laufwerk S:, das entspricht am Linux Server: /share.

Linux

  • Einfache Variante
dd if=/dev/cdrom of=/share/image.iso
  • Verbesserte Variante
isoinfo -d -i /dev/cdrom | grep -i -E 'block size|volume size'

ergibt zum Beispiel:

Logical block size is: 2048
Volume size is: 243744

Dann

dd if=/dev/cdrom of=test.iso bs=2048 count=243744

Details dazu: http://www.thomas-krenn.com/de/wiki/ISO_Image_von_CD_oder_DVD_unter_Linux_erstellen

ISO Image ins Linux Dateisystem einbinden

Das ISO-File wird als sogenanntes Loopback-Device gemountet. Der Befehl lautet:

mount -t iso9660 -o ro,loop=/dev/loop /Name_der_ISO_Datei /mnt/Name_der_Virtuellen_CD

Falls versteckte Dateien im ISO File sind, ist die Option -unhide wichtig. Diese Option ist z.B. notwendig für Video CDs von Video2Brain.

mount -t iso9660 -o unhide,ro,loop=/dev/loop /Name_der_ISO_Datei /mnt/Name_der_Virtuellen_CD

Bitte beachten: Wenn es bereits mehrere virtuelle CD Laufwerke gibt, dann muss eine Nummer in der Datei /dev/loop1 entsprechend erhöht werden, z.B.: /dev/loop4

Damit man sich den Befehl nicht merken muss, werden mit folgendem Script /root/bin/iso.sh, die vorhanden ISO Dateien gemountet. In diesem Script kann man bei Bedarf weitere Zeilen hinzufügen.

 # /root/bin/iso.sh
k=0
# Mounten der CD 'Interaktiv durch Oesterreich'
mkdir /mnt/I_aktiv &> /dev/null
mount -t iso9660 -o ro,loop=/dev/loop$k /divers/share/Interaktiv_durch_OE.iso /mnt/I_aktiv &> /dev/null

# Mounten der CD 'Erdkunde_USA'
k=`expr $k + 1`
mkdir /mnt/Erdkunde_USA &> /dev/null
mount -t iso9660 -o ro,loop=/dev/loop$k /divers/share/Erdkunde_USA.iso /mnt/Erdkunde_USA # &> /dev/null

exit

# Mounten der 'SUSE 10.1' Installations CDs
k=`expr $k + 1`
z=`expr $k + 5`
while [ $k -lt $z ]; do
  k=`expr $k + 1`
  mkdir /mnt/suse10.1/CD$k  &> /dev/null
  mount -t iso9660 -o ro,loop=/dev/loop$k /home/suse10.1/ISO/SUSE-Linux-10.1-GM-i386-CD$k.iso /mnt/suse10.1/CD$k
done

ISO Images beim Systemstart mounten

Das Shellscript /usr/local/bin in

/etc/init.d/boot.local

aufrufen. Dieses Skript wird vor den Runlevelskripten aufgerufen.

Anzahl der möglichen Loop Devices erhöhen

  • Loop Device Unterstützung im Kernel

In die Datei /boot/grub/menu.lst durch eine Startoption die Anzahl der möglichen Loop Devices erhöhen:

# Beispiel:
title 2.6.18.2-34-default
   root (hd0,1)
   kernel /boot/vmlinuz-2.6.18.2-34-default root=/dev/md0 resume=/dev/sda1 splash=silent vga=788 max_loop=16 showopts
   initrd /boot/initrd-2.6.18.2-34-default
  • Loop Device Unterstützung durch ein Kernel Modul: Modul loop

Folgende Datei editieren:

# /usr/src/linux/drivers/block 
static int max_loop = 16;

Hinweis: Eigentlich müsste es mit Bootparameter (siehe oben) gehen.

Außerdem eventuell folgende Datei editieren:

#  /etc/modprobe.conf.local
options max_loop=16
  • Erhöhen der Anzahl der Loop Devices

Eigentlich nicht notwendig, da dies automatisch erfolgt, trotzdem der Vollständigkeit halber der Befehl:

mknod /dev/loop8 b 7 8
mknod /dev/loop9 b 7 9
mknod /dev/loop10 b 7 10
# usw.
  • Modul laden
modprobe loop

oder

modprobe loop max_loop=16

Siehe Threads in www.Linuxforen.de: [1] und [2]

Siehe auch folgendes HowTo: http://do.nw.schule.de/mz/netz/support/arktur/faq/cdromserv.htm