0382: 31 CDs herunterladen und daraus eine BD erzeugenDieses Modul ist eine Sackgasse. Was hier steht, ist etwas umständlich und empfehle ich eigentlich nur dann, wenn Sie keinen mit "jigdo" ausgestatteten Internet-Rechner zur Verfügung haben (z.B. weil Ihr einziger Internetzugang ein mit Solarstrom betriebener Mini-PC ist, der seit mehreren Jahren nicht mehr gebootet wurde, um einen "uptime"-Rekord aufzustellen, und deshalb auf diesem Rechner nur ein sehr altes Linux läuft). Weil dieser Ansatz so witzig ist und ich die hochgezüchteten Shell-Skripte (die durchaus zum Ausschlachten noch zu gebrauchen sind) sonst wegwerfen müsste, gebe ich diesen Ansatz hiermit in einem separaten Modul zum Besten. 1. Die Download-Werkzeuge installierenSie brauchen "wget" und "jigdo". apt-get install wget apt-get install jigdo-file 2. BD-Image herunterladenKommen wir gleich zur Sache, ohne lange um den heißen Brei herumzureden. 2.1. Mehr Loop-Devices reservierenPer Default ist die Anzahl der mount-baren Loop-Devices unter Linux auf 8 beschränkt. Das können Sie selbst ausprobieren, indem Sie mal versuchen, mehr als 8 virtuelle Partitionen (zum Beispiel CD-Images) gleichzeitig zu mounten. Sie werden das nicht schaffen. Mit dem Versuch, die neunte virtuelle Partition zu mounten, erhalten Sie die Fehlermeldung "mount: could not find any free loop device". Ich werde Ihnen weiter unten empfehlen, 31 CD-Images gleichzeitig zu mounten. Damit das klappt, muss die Anzahl der möglichen Loop-Devices erhöht werden, zum Beispiel auf 64. Editieren Sie dazu die Datei "/etc/modules". Ändern Sie den Eintrag "loop" um in "loop max_loop=64". Der neue Inhalt der Datei könnte nun wie folgt aussehen: # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. loop max_loop=64 sbp2 Starten Sie den Rechner neu, damit die Option wirksam wird. 2.2. CD-Images herunterladenLaden Sie zunächst die 31 CD-Images herunter. Erzeugen Sie dazu eine Datei mit dem Namen "1get_debian.sh" und geben Sie ihr Ausführungsrechte: >1get_debian.sh chmod 755 1get_debian.sh Füllen Sie die Datei mit folgendem Inhalt: #!/bin/bash DEBIAN_PATH1="6.0.4" DEBIAN_IMG_NAME="debian-604-i386-CD-" if !(test -d "tmp"); then mkdir tmp fi rm tmp/*.iso for LOOP in `seq 1 31`; do if !(test -e ${DEBIAN_IMG_NAME}${LOOP}.iso); then cd tmp wget http://cdimage.debian.org/debian-cd/${DEBIAN_PATH1}/i386/iso-cd/${DEBIAN_IMG_NAME}${LOOP}.iso cd .. mv tmp/${DEBIAN_IMG_NAME}${LOOP}.iso . fi done Wenn Sie soweit sind, dann starten Sie das Skript: ./1get_debian.sh Wenn das Skript läuft, dann lädt es der Reihe nach alle CD-Images herunter. Im "tmp"-Verzeichnis befindet sich immer das Image, das aktuell heruntergeladen wird. Wenn es fertig ist, dann verschiebt das Skript das Image eine Verzeichnis-Ebene höher. Wenn Sie den Rechner zwischendurch ausschalten müssen, dann brechen Sie das Skript per <Ctrl>+<C> ab. Wenn Sie später da weitermachen wollen, wo Sie vorher aufgehört haben, dann starten Sie das Skript einfach erneut. Das Skript löscht zunächst den angebrochenen Download vom letzten mal, da er nutzlos ist (die Debian-Server unterstützen offenbar die "--continue"-Option von "wget" nicht). Anschließend überspringt das Skript alle die Images, die bereits vollständig heruntergeladen wurden. Es lädt dann genau das Image erneut herunter, bei dem Sie beim letzten Mal den Download-Prozess abgebrochen hatten. Wenn alle 31 Images heruntergeladen wurden, befinden sie sich fein säuberlich in dem Verzeichnis, in dem sich auch das Download-Skript befindet. 2.3. CD-Images mountenIm nächsten Schritt können Sie die CD-Images zu einem BD-Image konvertieren. Damit das klappt, müssen Sie die CD-Images aber zunächst mounten. Erzeugen Sie dazu eine Datei mit dem Namen "2mount_cd-images.sh" und geben Sie ihr Ausführungsrechte: >2mount_cd-images.sh chmod 755 2mount_cd-images.sh Füllen Sie die Datei mit folgendem Inhalt: #!/bin/bash DEBIAN_IMG_NAME="debian-604-i386-CD-" if !(test -d "/mnt"); then mkdir /mnt fi for LOOP in `seq 1 31`; do if !(test -d "cd-nummer-${LOOP}"); then mkdir /mnt/cd-nummer-${LOOP} fi mount -t iso9660 ${DEBIAN_IMG_NAME}${LOOP}.iso /mnt/cd-nummer-${LOOP} -o loop done Für das Umounten erzeugen Sie anschließend eine Datei mit dem Namen "3umount_cd-images.sh" nebst Ausführungsrechten: >3umount_cd-images.sh chmod 755 3umount_cd-images.sh Und das ist der Inhalt: #!/bin/bash if !(test -d "/mnt"); then exit fi for LOOP in `seq 1 31`; do if test -d "/mnt/cd-nummer-${LOOP}"; then umount /mnt/cd-nummer-${LOOP} rmdir /mnt/cd-nummer-${LOOP} fi done 2.4. CD-Images in ein BD-Image konvertierenJetzt haben Sie alles, was Sie brauchen, um schnell an ein BD-Image zu kommen. Wie lange der Prozess dauern wird, hängt davon ab, wie schnell Ihre Festplatte ist. Wenn Sie die Wahl zwischen einer USB- und einer eSATA-Festplatte haben, dann benutzen Sie für diesen Schritt die eSATA-Festplatte. Und los geht es: Mounten Sie die CD-Images und laden Sie die Image-Datei (inklusive der Checksummen) wie folgt vom Server herunter: mkdir bd cd bd wget http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-bd/MD5SUMS wget http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-bd/SHA1SUMS wget http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-bd/MD5SUMS.sign wget http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-bd/SHA1SUMS.sign wget http://cdimage.debian.org/debian-cd/6.0.4/i386/jigdo-bd/debian-604-i386-BD-1.jigdo wget http://cdimage.debian.org/debian-cd/6.0.4/i386/jigdo-bd/debian-604-i386-BD-1.template jigdo-lite debian-604-i386-BD-1.jigdo cd .. Sobald Sie den "jigdo-lite"-Befehl abgesetzt haben, werden Sie gleich am Anfang gefragt, ob Sie bereits CD-Images auf Ihrem Rechner haben. Bei "Files to scan:" geben Sie nun den Pfad an, in dem alle Ihre CD-Images gemountet sind: /mnt Jetzt durchsucht "jigdo" alle 31 Unterordner, die sich im Verzeichnis "/mnt" befinden.
|