ich wollte die Installation von Linux auf einem Client automatisieren dabei wollte ich mit mit einem Pythonskript mehrere Systembefehle auf dem Zielclient ausführen lassen, jedoch bekomme ich da mit dem chroot immer Probleme, deshalb habe ich mir 2 Bashskripte geschrieben die ich dann mit Pyhton ausführen wollte, jedoch lassen sich die Bashskripte nur per hand nachdem die Installation einen Fehler bringt und man sich am Zielclient eingeloggt hat, ausführen.
Vielleicht kann mir ja einer weiterhelfen hier die Skripte:
Zunächst das Pythonskript für die Installation:
Code: Alles auswählen
source = DEPOT_MOUNT + '/install/linux'
tarfile = '/sarge_projektimage_sda6._.tar.gz'
# Get first harddisk
disk = getHarddisks()[0]
ui.getMessageBox().addText( "Verwende Festplatte %s (%s MB).\n" %(disk.device, disk.size) )
# Create new partitiontable
disk.deletePartitionTable()
# writing partition table of /dev/sda
execute ('/sbin/sfdisk /dev/sda < ' + source + '/partitiontable')
# format partitions
ui.getMessageBox().addText("Formatiere angelegte Partitionen\n")
execute ('/sbin/mkswap /dev/sda5')
execute ('/sbin/mkfs -t ext3 /dev/sda6')
execute ('/sbin/mkfs -t ext3 /dev/sda7')
ui.getMessageBox().addText("Formatierung abgeschlossen\n")
#mount sda6
ui.getMessageBox().addText("Mounte sda6\n")
execute ('/bin/mkdir /mnt/sda6')
execute ('/bin/mount /dev/sda6 /mnt/sda6')
#change directory to /mnt/sda6
ui.getMessageBox().addText("Wechsle ins Verzeichnis /mnt/sda6\n")
execute ('cd /mnt/sda6')
# unpack tar-image from netmount to local hdd
ui.getMessageBox().addText("Entpacke Tar-File\n")
execute ('/bin/tar xzpf ' + source + tarfile + ' -C /mnt/sda6')
# execute the final.sh to make devices and install GRUB-Bootloader
copy(source + '/chr.sh', '/mnt/sda6')
copy(source + '/final.sh', '/mnt/sda6')
#execute ('sh /mnt/sda6/final.sh')
#Do hardware inventory
hardwareInventory(filename=DEPOT_MOUNT + "/pcpatch/pclog/" + hostname + ".hw")
# Umount partition
disk.umountPartition(partition=1)
# Reboot
reboot()
Code: Alles auswählen
#!/mnt/sda6/bin/bash (ich habs auch schon mit /bin/bash oder /bin/sh ausprobiert aber ebenfalls erfolglos :-/ )
#final.sh
mount -o bind /proc /mnt/sda6/proc
mount -o bind /sys /mnt/sda6/sys
mount -o bind /dev /mnt/sda6/dev
/usr/sbin/chroot /mnt/sda6 ./chr.sh
Code: Alles auswählen
#!/bin/bash
mkinitrd -o /boot/initrd.img-2.6.26.5 2.6.26.5
grub-install /dev/sda