Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] AVIRA ISO Image zwecks PXE Boot modifizieren  (Read 3972 times)

Offline ralfi

  • User
  • Posts: 389
[DE] AVIRA ISO Image zwecks PXE Boot modifizieren
« on: 2012/08/31, 12:36:42 »
Hallo allesamt,

nach ein bisschen ausprobieren und rumsuchen (... die Welt ist eine Google?) habe ich ein ganz bitterböses einfaches Skript geschrieben, um Dateien aus dem von AVIRA täglich zum Download zur Verfügung gestelltem ISO Image so zu modifieren, dass man es in einer PXE Umgebung starten kann. Hierzu muss in der initrd ein bisschen rumgehackt werden.

Das Skript kann bspw. in einen Cron-Job eingebunden und stellt so in der PXE-Umgebung jederzeit einen topaktuellen Virenscanner bereit. Die Pfade müssen natürlich angepasst werden!

Code: [Select]
#!/bin/sh
# AVIRA ISO Image initrd zwecks PXE Boot modifizieren

# wechseln in das skript-verzeichnis
cd /srv/install
# erstellen des temp. update-verzeichnisses und cd dorthin
mkdir avira
cd avira
# erstellen der beiden temp. verzeichnisse der original-cd und der zu modifizierenden initrd
mkdir isocd
mkdir initrdmount
# herunterladen des AVIRA antivir iso images
wget http://dl.antivir.de/down/vdf/rescuecd/rescuecd.iso
# alternativer link der englischen version
# wget http://professional.avira-update.com/package/rescue_system/common/en/rescue_system-common-en.iso
# antivir iso image mit loop in das temp. verzeichnis isocd einbinden
mount -o loop rescuecd.iso isocd/
# kopieren der zu modifizierenden initrd aus dem original image
cp isocd/initrd.gz .
# entpacken der initrd.gz
gzip -d initrd.gz initrd
# erweitern der initrd um einige mb
dd if=/dev/zero bs=1M count=250 >> initrd
# filesystem check der neuen initrd
e2fsck -fp initrd
# resize der neuen initrd
resize2fs initrd
# neue initrd in das temp verzeichnis initrdmount einbinden
mount -o loop initrd initrdmount
# erstellen des verzeichnisses zum kopieren der fehlenden dateien der initrd aus dem iso image
mkdir -vp initrdmount/media/Devices/sr0
# kopieren der verzeichnisse und dateien in die initrd
cp -r isocd/antivir/ initrdmount/media/Devices/sr0/
cp -r isocd/avupdate/ initrdmount/media/Devices/sr0/
cp -r isocd/system/ initrdmount/media/Devices/sr0/
# sicherheitshalber mal die rechte neu setzen
chmod 555 -R initrdmount/media/Devices/sr0/
# einbindung der neuen initrd in das filesystem aufheben
umount initrdmount
# modifizierte initrd komprimieren
gzip -9 initrd
# kopieren der modifizierten und komprimierten initrd in das tftp verzeichnis des avira images
cp -f initrd.gz /srv/tftp/avira_rescue/initrd.gz
# kopieren des kernel aus dem heruntergeladenen iso image in das tftp verzeichnis des avira images
cp -f isocd/vmlinuz /srv/tftp/avira_rescue/vmlinuz
# einbindung des iso images aufheben
umount isocd
# wechseln in das skript-verzeichnis
cd /srv/install/
# temp. verzeichnisse entfernen
rm -rf avira/
# fertsch


Der entsprechende Eintrag in der PXE Boot Menüdatei könnte dann so aussehen:

Code: [Select]
LABEL Avira
MENU LABEL ^Avira Antivirus Rescue Live-CD starten ...
KERNEL avira_rescue/vmlinuz
APPEND vga=scan nofb initrd=/avira_rescue/initrd.gz ramdisk_size=366000 root=/dev/ram0 rw console=/dev/vc/4
TEXT HELP
*** tgl. automatische Aktualisierung, kein Signaturdownload erforderlich ***
ENDTEXT
Gruss, ralfi

Niveau sieht von unten oft wie Arroganz aus ...