From bb6400a33497204d7ca21e5b3328667dc640bc5a Mon Sep 17 00:00:00 2001 From: irina Date: Wed, 22 Jul 2009 12:03:54 +0000 Subject: [PATCH] Creado carpeta nfsexport donde solo va a ver ficheros y directorios que haya que exportar par el cliente. En boot se dejan scripts para que pueda arrancar el cliente pero que no se exporte por nfs como el initrd-generator o ej_script_init.sh git-svn-id: https://opengnsys.es/svn/trunk@162 a21b9725-9963-47de-94b9-378ad31fedc9 --- opengnsys-client/boot/ej_script_init.sh | 4 +++ opengnsys-client/boot/initrd-generator | 34 +++++++++--------- opengnsys-client/{boot => nfsexport}/bin/awk | Bin .../{boot => nfsexport}/bin/browser | Bin .../{boot => nfsexport}/bin/chntpw | Bin .../{boot => nfsexport}/bin/ctorrent | Bin .../{boot => nfsexport}/bin/fdisk | Bin .../{boot => nfsexport}/bin/hidrac | Bin .../{boot => nfsexport}/bin/kexec | Bin .../{boot => nfsexport}/bin/mkntfs | Bin .../{boot => nfsexport}/bin/ntfscat | Bin .../{boot => nfsexport}/bin/ntfsclone | Bin .../{boot => nfsexport}/bin/ntfscluster | Bin .../{boot => nfsexport}/bin/ntfscmp | Bin .../{boot => nfsexport}/bin/ntfscp | Bin .../{boot => nfsexport}/bin/ntfsfix | Bin .../{boot => nfsexport}/bin/ntfsinfo | Bin .../{boot => nfsexport}/bin/ntfslabel | Bin .../{boot => nfsexport}/bin/ntfsls | Bin .../{boot => nfsexport}/bin/ntfsresize | Bin .../{boot => nfsexport}/bin/ntfsundelete | Bin .../{boot => nfsexport}/bin/parted | Bin .../{boot => nfsexport}/bin/partimage | Bin .../{boot => nfsexport}/bin/sfdisk | Bin opengnsys-client/{boot => nfsexport}/bin/tftp | Bin .../etc/lang.es_ES.UTF-8.conf | 0 .../{boot => nfsexport}/etc/lang.es_ES.conf | 0 .../nfsexport/lib/modules/psmouse.ko | Bin 0 -> 78700 bytes 28 files changed, 20 insertions(+), 18 deletions(-) rename opengnsys-client/{boot => nfsexport}/bin/awk (100%) rename opengnsys-client/{boot => nfsexport}/bin/browser (100%) rename opengnsys-client/{boot => nfsexport}/bin/chntpw (100%) rename opengnsys-client/{boot => nfsexport}/bin/ctorrent (100%) rename opengnsys-client/{boot => nfsexport}/bin/fdisk (100%) rename opengnsys-client/{boot => nfsexport}/bin/hidrac (100%) rename opengnsys-client/{boot => nfsexport}/bin/kexec (100%) rename opengnsys-client/{boot => nfsexport}/bin/mkntfs (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfscat (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsclone (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfscluster (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfscmp (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfscp (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsfix (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsinfo (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfslabel (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsls (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsresize (100%) rename opengnsys-client/{boot => nfsexport}/bin/ntfsundelete (100%) rename opengnsys-client/{boot => nfsexport}/bin/parted (100%) rename opengnsys-client/{boot => nfsexport}/bin/partimage (100%) rename opengnsys-client/{boot => nfsexport}/bin/sfdisk (100%) rename opengnsys-client/{boot => nfsexport}/bin/tftp (100%) rename opengnsys-client/{boot => nfsexport}/etc/lang.es_ES.UTF-8.conf (100%) rename opengnsys-client/{boot => nfsexport}/etc/lang.es_ES.conf (100%) create mode 100644 opengnsys-client/nfsexport/lib/modules/psmouse.ko diff --git a/opengnsys-client/boot/ej_script_init.sh b/opengnsys-client/boot/ej_script_init.sh index b8841e3e..407a4fe4 100755 --- a/opengnsys-client/boot/ej_script_init.sh +++ b/opengnsys-client/boot/ej_script_init.sh @@ -17,6 +17,10 @@ mount -t nfs -onolock $DHCP_SERVER:/opt/opengnsys/images $OGIMAGES export PATH=$OGBIN:$OGLIB/engine/bin:$PATH export LD_LIBRARY_PATH=$OGLIB:$LD_LIBRARY_PATH +insmod $OGLIB/modules/psmouse.ko +mkdir -p /usr/local/Trolltech/QtEmbedded-4.5.1/lib/ +ln -s $OGLIB/fonts /usr/local/Trolltech/QtEmbedded-4.5.1/lib/fonts + . ATA.lib bash diff --git a/opengnsys-client/boot/initrd-generator b/opengnsys-client/boot/initrd-generator index 69e4eae9..c0508b6c 100755 --- a/opengnsys-client/boot/initrd-generator +++ b/opengnsys-client/boot/initrd-generator @@ -7,6 +7,8 @@ TMPINITRD=$TMP/initrd NEWROOT=$TMPINITRD/newroot DEST=$PWD LINUX=1 +CHROOTINITSCRIPT=/oginit +INITSCRIPT=$NEWROOT$CHROOTINITSCRIPT # Comprueba los argumentos pasados para modificar los valores por defecto function parsearParametros @@ -53,7 +55,7 @@ function descomprimir fi if [ -f $NEWROOT ];then - rm -rf $NEWROOT + rm -rf $NEWROOT fi mkdir -p $NEWROOT @@ -150,6 +152,9 @@ function agregarNuevoArranque cd $NEWROOT cd etc/ + #echo "s/debian-installer$/${OGINIT//\//\\\/}/" + #cat inittab | sed "s/debian-installer$/${OGINIT//\//\\\/}/" > inittab + perl -i -p -e "s/\/sbin\/debian-installer\$/${CHROOTINITSCRIPT//\//\/}/" inittab # Script inicial que ejecuta el resto de scripts de /etc/rcS.d/ #echo "#! /bin/sh" >> rc @@ -167,27 +172,20 @@ function agregarNuevoArranque #echo "::shutdown:/bin/umount -a -r" >> inittab #echo "::shutdown:/sbin/swapoff -a" >> inittab - # Ahora agregamos los scripts a rcS.d - cd rcS.d - # Primero ejecutamos el dhcp - echo "mkdir -p /var/state/dhcp" > S01dhclient - echo "/sbin/dhclient" >> S01dhclient - chmod +x S01dhclient + echo "#! /bin/sh" > $INITSCRIPT + echo "set -e" >> $INITSCRIPT + echo "mkdir -p /var/state/dhcp" >> $INITSCRIPT + echo "/sbin/dhclient" >> $INITSCRIPT # Montamos NFS y ejecutamos el script con nombre nuestra ip - echo "DHCP_SERVER=\`grep -h dhcp-server-identifier /var/lib/dhcp3/dhclient.* | sed 's/[^0-9]*\(.*\);/\1/' | head -1\`" > S02montarnfs - echo "IP=\`grep -h fixed-address /var/lib/dhcp3/dhclient.* | sed 's/[^0-9]*\(.*\);/\1/' | head -1\`" >> S02montarnfs - echo "mkdir -p /opt/opengnsys" >> S02montarnfs - echo "mount -t nfs -onolock \$DHCP_SERVER:/opt/opengnsys/client/ /opt/opengnsys/" >> S02montarnfs - echo "/opt/opengnsys/init/\$IP.sh" >> S02montarnfs - echo "sh" >> S02montarnfs - #echo "sh" >> S02montarnfs - chmod +x S02montarnfs + echo "DHCP_SERVER=\`grep -h dhcp-server-identifier /var/lib/dhcp3/dhclient.* | sed 's/[^0-9]*\(.*\);/\1/' | head -1\`" >> $INITSCRIPT + echo "IP=\`grep -h fixed-address /var/lib/dhcp3/dhclient.* | sed 's/[^0-9]*\(.*\);/\1/' | head -1\`" >> $INITSCRIPT + echo "mkdir -p /opt/opengnsys" >> $INITSCRIPT + echo "mount -t nfs -onolock \$DHCP_SERVER:/opt/opengnsys/client/ /opt/opengnsys/" >> $INITSCRIPT + echo "/opt/opengnsys/init/\$IP.sh" >> $INITSCRIPT - # Si el script anterior termina sin reinicar apagamos nosotros - echo "halt" > S99halt - chmod +x S99halt + chmod +x $INITSCRIPT } function comprimir diff --git a/opengnsys-client/boot/bin/awk b/opengnsys-client/nfsexport/bin/awk similarity index 100% rename from opengnsys-client/boot/bin/awk rename to opengnsys-client/nfsexport/bin/awk diff --git a/opengnsys-client/boot/bin/browser b/opengnsys-client/nfsexport/bin/browser similarity index 100% rename from opengnsys-client/boot/bin/browser rename to opengnsys-client/nfsexport/bin/browser diff --git a/opengnsys-client/boot/bin/chntpw b/opengnsys-client/nfsexport/bin/chntpw similarity index 100% rename from opengnsys-client/boot/bin/chntpw rename to opengnsys-client/nfsexport/bin/chntpw diff --git a/opengnsys-client/boot/bin/ctorrent b/opengnsys-client/nfsexport/bin/ctorrent similarity index 100% rename from opengnsys-client/boot/bin/ctorrent rename to opengnsys-client/nfsexport/bin/ctorrent diff --git a/opengnsys-client/boot/bin/fdisk b/opengnsys-client/nfsexport/bin/fdisk similarity index 100% rename from opengnsys-client/boot/bin/fdisk rename to opengnsys-client/nfsexport/bin/fdisk diff --git a/opengnsys-client/boot/bin/hidrac b/opengnsys-client/nfsexport/bin/hidrac similarity index 100% rename from opengnsys-client/boot/bin/hidrac rename to opengnsys-client/nfsexport/bin/hidrac diff --git a/opengnsys-client/boot/bin/kexec b/opengnsys-client/nfsexport/bin/kexec similarity index 100% rename from opengnsys-client/boot/bin/kexec rename to opengnsys-client/nfsexport/bin/kexec diff --git a/opengnsys-client/boot/bin/mkntfs b/opengnsys-client/nfsexport/bin/mkntfs similarity index 100% rename from opengnsys-client/boot/bin/mkntfs rename to opengnsys-client/nfsexport/bin/mkntfs diff --git a/opengnsys-client/boot/bin/ntfscat b/opengnsys-client/nfsexport/bin/ntfscat similarity index 100% rename from opengnsys-client/boot/bin/ntfscat rename to opengnsys-client/nfsexport/bin/ntfscat diff --git a/opengnsys-client/boot/bin/ntfsclone b/opengnsys-client/nfsexport/bin/ntfsclone similarity index 100% rename from opengnsys-client/boot/bin/ntfsclone rename to opengnsys-client/nfsexport/bin/ntfsclone diff --git a/opengnsys-client/boot/bin/ntfscluster b/opengnsys-client/nfsexport/bin/ntfscluster similarity index 100% rename from opengnsys-client/boot/bin/ntfscluster rename to opengnsys-client/nfsexport/bin/ntfscluster diff --git a/opengnsys-client/boot/bin/ntfscmp b/opengnsys-client/nfsexport/bin/ntfscmp similarity index 100% rename from opengnsys-client/boot/bin/ntfscmp rename to opengnsys-client/nfsexport/bin/ntfscmp diff --git a/opengnsys-client/boot/bin/ntfscp b/opengnsys-client/nfsexport/bin/ntfscp similarity index 100% rename from opengnsys-client/boot/bin/ntfscp rename to opengnsys-client/nfsexport/bin/ntfscp diff --git a/opengnsys-client/boot/bin/ntfsfix b/opengnsys-client/nfsexport/bin/ntfsfix similarity index 100% rename from opengnsys-client/boot/bin/ntfsfix rename to opengnsys-client/nfsexport/bin/ntfsfix diff --git a/opengnsys-client/boot/bin/ntfsinfo b/opengnsys-client/nfsexport/bin/ntfsinfo similarity index 100% rename from opengnsys-client/boot/bin/ntfsinfo rename to opengnsys-client/nfsexport/bin/ntfsinfo diff --git a/opengnsys-client/boot/bin/ntfslabel b/opengnsys-client/nfsexport/bin/ntfslabel similarity index 100% rename from opengnsys-client/boot/bin/ntfslabel rename to opengnsys-client/nfsexport/bin/ntfslabel diff --git a/opengnsys-client/boot/bin/ntfsls b/opengnsys-client/nfsexport/bin/ntfsls similarity index 100% rename from opengnsys-client/boot/bin/ntfsls rename to opengnsys-client/nfsexport/bin/ntfsls diff --git a/opengnsys-client/boot/bin/ntfsresize b/opengnsys-client/nfsexport/bin/ntfsresize similarity index 100% rename from opengnsys-client/boot/bin/ntfsresize rename to opengnsys-client/nfsexport/bin/ntfsresize diff --git a/opengnsys-client/boot/bin/ntfsundelete b/opengnsys-client/nfsexport/bin/ntfsundelete similarity index 100% rename from opengnsys-client/boot/bin/ntfsundelete rename to opengnsys-client/nfsexport/bin/ntfsundelete diff --git a/opengnsys-client/boot/bin/parted b/opengnsys-client/nfsexport/bin/parted similarity index 100% rename from opengnsys-client/boot/bin/parted rename to opengnsys-client/nfsexport/bin/parted diff --git a/opengnsys-client/boot/bin/partimage b/opengnsys-client/nfsexport/bin/partimage similarity index 100% rename from opengnsys-client/boot/bin/partimage rename to opengnsys-client/nfsexport/bin/partimage diff --git a/opengnsys-client/boot/bin/sfdisk b/opengnsys-client/nfsexport/bin/sfdisk similarity index 100% rename from opengnsys-client/boot/bin/sfdisk rename to opengnsys-client/nfsexport/bin/sfdisk diff --git a/opengnsys-client/boot/bin/tftp b/opengnsys-client/nfsexport/bin/tftp similarity index 100% rename from opengnsys-client/boot/bin/tftp rename to opengnsys-client/nfsexport/bin/tftp diff --git a/opengnsys-client/boot/etc/lang.es_ES.UTF-8.conf b/opengnsys-client/nfsexport/etc/lang.es_ES.UTF-8.conf similarity index 100% rename from opengnsys-client/boot/etc/lang.es_ES.UTF-8.conf rename to opengnsys-client/nfsexport/etc/lang.es_ES.UTF-8.conf diff --git a/opengnsys-client/boot/etc/lang.es_ES.conf b/opengnsys-client/nfsexport/etc/lang.es_ES.conf similarity index 100% rename from opengnsys-client/boot/etc/lang.es_ES.conf rename to opengnsys-client/nfsexport/etc/lang.es_ES.conf diff --git a/opengnsys-client/nfsexport/lib/modules/psmouse.ko b/opengnsys-client/nfsexport/lib/modules/psmouse.ko new file mode 100644 index 0000000000000000000000000000000000000000..f305164db78c2569724159f91df5f5250f75de30 GIT binary patch literal 78700 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 literal 0 HcmV?d00001