Warum bricht dieses Linux-Shellscript ab? Im Unterforum Hardware, Betriebssysteme, Programmiersprachen - Beschreibung: Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht.
Elektronik- und Elektroforum Forum Index >>
Hardware, Betriebssysteme, Programmiersprachen
Hardware, Betriebssysteme, Programmiersprachen : Alles zu Software, Hardware, Windows, Linux, Programmiersprachen
Anfragen zu Modding, Games, Cracks, etc. unerwünscht. |
Autor |
Warum bricht dieses Linux-Shellscript ab? |
|
|
|
|
BID = 818244
Racingsascha Schreibmaschine
Beiträge: 2247 Wohnort: Gundelsheim
|
|
Offtopic :
| Auf die Gefahr hin, dass das nicht erwünscht ist, aber ich schilder trotzdem mal die Situation:
Ich bin dabei meine Xbox (die erste) aufzubeißen um darauf Linux zu installieren. Dazu benutze ich xboxhdm (1.9) und Ndure (3.0). Das ist nicht das Problem, mein Problem ist folgendes:
Ndure erzeugt ein Shellscript, was durch eines kleinen live-Linux (erzeugt mit xboxhdm) auf einem Computer ausgeführt wird, um die entsprechenden Dateien auf der Festplatte der Xbox anzulegen etc. Davor soll man mithilfe des gleichen Scripts die Originalinhalte der Partition C: auf E: kopieren, sodass man ein "Backup" hat, indem man in dem Menü was am Anfang erzeugt wird, die Option 4 wählt. | Leider bricht dieses Shellscript dann mit der Meldung ala Line 252: unexpected "done" ab, was wohl die letzte Zeile ist. Einfach rauslöschen wär offensichtlich, aber warscheinlich zu einfach. Kann mir ein Linux-User einen Tipp geben?
Code : |
#!/bin/sh
#
# Softmod Installer For XboxHDM.
#
cd
tmpdir="/ndure"
echo="echo -e"
clear
/usr/bin/find-cd2 check
CDDEV="`df | grep CD | cut -c 1-8`"
if [ "$CDDEV" = "" ]; then
$echo "\nLinux CD not found! Insert it and try again...\n"
exit 1
fi
PMASTER=`fdisk -l | grep Disk | grep hda`
PMASTER=`detectpm | grep Model | cut -d ':' -f 2`
PMLOCK=`detectpm | grep 'Security locked' | cut -d ':' -f 2`
#
clear
if [ "$PMASTER" = "" ]; then
$echo "No xbox hard drive found on /dev/hda (primary master)"
$echo "This script assumes /dev/hda be the device to be used"
$echo "Please shut down you PC - connect your Xbox drive to the"
$echo "primary master and try again!\n\n"
exit 1
else
$echo "Found Harddrive on primary Master"
fi
$echo "We will now search /dev/hda for an xbox partition table...\n"
sleep 2
PART=TRUE
for nn in 50 51 52 53 54; do
if [ "`ls /dev/hda* | grep $nn`" = "" ]; then
PART=FALSE
fi
done
if [ "$PART" = "FALSE" ]; then
$echo "No xbox-partition table found on /dev/hda"
if [ "$PMLOCK" = "Yes" ]; then
$echo "Drive Primary Master is locked !"
fi
exit 1
else
$echo "Xbox-partition table found on /dev/hda"
fi
if [ -f /CD/ndure/checkid ]; then
$echo "\nFound sofmod package on CDROM...\n"
else
$echo "\nDid not find softmod installer package on CDROM..."
$echo "To install softmod with this tool you must DL"
$echo "and burn the sminstaller folder to the xboxhdm CD"
exit 1
fi
###### this part is experiment #####
mkdir -p $tmpdir
mkdir -p /xbox
mkdir -p /xbox/hack
mkdir -p /xbox/C
mkdir -p /xbox/E
##/bin/mount -o loop /CD/sminstaller/softmod /xbox/hack/
###########
printheader() {
clear
$echo "=================================================="
$echo " NDURE INSTALLER FOR XBOXHDM"
$echo "=================================================="
}
printheader
$echo " You have the following options :\n\n"
$echo " [1] Install Ndure [Install only ndure files]\n"
$echo " [2] Install Ndure [Replace C drive with Ndure]\n"
$echo " [3] Install UDDAE\n"
$echo " [4] Backup C:\\n"
$echo " [5] Restore C:\\n"
$echo " Make your choice [1-5] : \c"
read cmd
if [ $cmd -eq 1 ]; then
#
# Installs Ndure pc generated setup
#
clear
printheader
$echo " Installing Ndure"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/C/media
mkdir -p /xbox/C/bios
mkdir -p /xbox/C/shadowc
mkdir -p /xbox/E/ndts
mkdir -p /xbox/E/dash
mkdir -p /xbox/E/apps
sleep 2
$echo " Part 2 of 3"
cp -R /CD/ndure/C/xodash/*.xbe /xbox/C/xodash/
cp /CD/ndure/C/xodash/ernie.xtf /xbox/C/xodash/
cp /CD/ndure/C/xodash/xbox.xtf /xbox/C/xodash/
cp -R /CD/ndure/C/media/* /xbox/C/media/
cp -R /CD/ndure/C/bios/* /xbox/C/bios/
cp -R /CD/ndure/C/*.xbe /xbox/C/
cp -R /CD/ndure/E/dash/* /xbox/E/dash/
if [ -f /CD/ndure/E/ndts/default.xbe ]; then
cp -R /CD/ndure/E/ndts/* /xbox/E/ndts/
fi
if [ -f /xbox/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
rm /xbox/C/xboxdashdata.185ead00/settings_adoc.xip
fi
if [ -f /CD/ndure/E/boo1.bin ]; then
cp /CD/ndure/E/boot1.bin /xbox/E/
fi
if [ -f /CD/ndure/C/xboxdashdata.17cdc100/default.xip ]; then
mkdir -p /xbox/C/xboxdashdata.17cdc100
cp -R /CD/ndure/C/xboxdashdata.17cdc100/* /xbox/C/xboxdashdata.17cdc100/
fi
if [ -f /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip /xbox/C/xboxdashdata.185ead00/
fi
rm -rf /xbox/C/*.xtf
#if [ -f /xbox/C/XBox Book.xtf ]; then
#rm /xbox/C/XBox Book.xtf
#fi
if [ -f /CD/ndure/C/shadowc/shadowc.img ]; then
cp -R /CD/ndure/C/shadowc/* /xbox/C/shadowc/
fi
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
#
if [ $cmd -eq 2 ]; then
#
# Installs Ndure C replace
#
clear
printheader
$echo " Installing Ndure"
$echo " This will completely remove contents of C:\"
$echo " And replace them with contents of ndure/C/"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/E/dash
sleep 2
$echo " Part 2 of 3"
rm -rf /xbox/C/*
sleep 2
cp -R /CD/ndure/C/* /xbox/C/
cp -R /CD/ndure/E/* /xbox/E/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
#
if [ $cmd -eq 4 ]; then
#
# Create C backup
#
clear
printheader
$echo " Creating backup of C:\"
$echo " Please wait"
$echo " Part 1 of 2"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir /xbox/E/backup
sleep 2
$echo " Part 2 of 3"
cp -R /xbox/C/* /xbox/E/backup/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "\n Done.. now exiting"
exit 1
fi
####
if [ $cmd -eq 5 ]; then
#
# Restore C backup
#
clear
printheader
$echo " Restoring C:\ drive backup"
$echo " This option is only for if you"
$echo " Created backup before"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
sleep 2
$echo " Part 2 of 3"
if [ -f /xbox/E/backup/xboxdash.xbe ]; then
rm -rf /xbox/C/*
cp -R /xbox/E/backup/* /xbox/C/
else
$echo "\nDid not find backup"
exit 1
fi
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "Done.. now exiting"
exit 1
fi
#####
if [ $cmd -eq 3 ]; then
## Install uddae
clear
printheader
$echo " This will install uddae"
$echo " setup generated by ndure"
$echo " pc installer"
$echo " Please wait"
$echo " Part 1 of 3"
mount -t fatx /dev/hda51 /xbox/C
mount -t fatx /dev/hda50 /xbox/E
mkdir -p /xbox/C/xboxdashdata.17cdc100
sleep 2
$echo " Part 2 of 3"
if [ -f /CD/ndure/C/xboxdashdata.17cdc100/default.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.17cdc100/* /xbox/C/xboxdashdata.17cdc100/
else
$echo "\nDid not find uddae files"
exit 1
fi
if [ -f /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip ]; then
cp -R /CD/ndure/C/xboxdashdata.185ead00/settings_adoc.xip /xbox/C/xboxdashdata.185ead00/
else
$echo "\nDid not find settings_adoc.xip"
exit 1
fi
cp -R /CD/ndure/E/TDATA/fffe0000/music/ST.DB /xbox/E/TDATA/fffe0000/music/
sleep 2
$echo " Part 3 of 3"
umount /dev/hda51
umount /dev/hda50
$echo "Done.. now exiting"
exit 1
fi
done
|
|
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
[ Diese Nachricht wurde geändert von: Racingsascha am 1 Mär 2012 21:56 ] |
|
BID = 818246
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
|
Zu dem done gibt es auch kein for oder ähnliches. Hast du das Skript von aus einer englischen Seite rauskopiert? Falls ja gehört das done vermutlich nicht mehr zum Skript.
Anbei das gleiche Skript etwas sinnvoller eingerückt. Da sieht man sofort, dass das "done" überflüssig ist. Bei vernünftigem Syntax Highlighting (gvim ) wird das auch schön rot hervorgehoben.
_________________
Reboot oder be root, das ist hier die Frage. |
|
BID = 818253
Racingsascha Schreibmaschine
Beiträge: 2247 Wohnort: Gundelsheim
|
Nein, das ist direkt der Inhalt der Datei, die Ndure am Ende ausspuckt und man mit auf die live-CD brennt.
Das Done hätt' ich eher als das Ende des Scripts vermutet, nicht als endfor oder so.
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
[ Diese Nachricht wurde geändert von: Racingsascha am 1 Mär 2012 22:55 ]
|
BID = 818262
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Nein, das gibt es nicht. Das Skriptende entspricht dem Dateiende. Alternativ oder explizit kann man "exit" verwenden, bei Bedarf mit Exitcode, wie es mit "exit 1" mehrfach im Skript genutzt wird.
done ist unter bash jedenfalls das Ende einer (for)-Schleife.
Vielleicht sollte da statt der manuellen Auswahl mal ein "for cmd in 1 2 3; do" stehen
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 818482
Racingsascha Schreibmaschine
Beiträge: 2247 Wohnort: Gundelsheim
|
Es hat funktioniert
Allerdings nicht mit diesem Script.Auf instructables.com gab es ein nahezu identisches Howto, Hier konnte man sich ein funktionierendes Ndure-Script runterladen. Danach lief alles wie beschrieben. Jetzt leuchtet der Leuchtring orange und ich schreibe diesen Post mit X-DSL Allerdings erstmal als Live-CD, Denn eigentlich wollte ich Xubuntu oder Xebian, aber die finde ich nur auf einer dubiosen Isoseite die einen clickjacken will.
Trotzdem Danke für deine Hilfe
Der Screenshot stammt aus meinem PC, der das Bild der Xbox per TV-Karte anzeigt. Screenshotfunktionalität hab ich in X-DSL nicht gefunden.Wäre dann aber auch nicht authentisch
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
[ Diese Nachricht wurde geändert von: Racingsascha am 3 Mär 2012 13:15 ]
|
|
Zum Ersatzteileshop
Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum
Datenschutz
Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland
gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag heute wurden bisher 23 Beiträge verfasst © x sparkkelsputz Besucher : 182391810 Heute : 6548 Gestern : 6874 Online : 565 24.11.2024 20:25 0 Besucher in den letzten 60 Sekunden ---- logout ----viewtopic ---- logout ----
|
xcvb
ycvb
0.0412240028381
|