Gorcon hat geschrieben:@ amigaherbie
Kannst Du mir mal beschreiben wie man die HDD mit mehren Partitionen einer ganz bestimmten Größe einrichtet und diese dann auch auf der D-Box sichtbar macht.
Desweiteren die Scripte um eine bestimmte Partition als rw bzw. ro zu ändern. (eines der Scripte muss dann ja sicher in die recording.start und recording.end)
Gruß Gorcon
Hallo Gorcon,
hier die Skripte. Ich muß aber gleich sagen, daß die nicht von einem Profi geschrieben wurden. Insofern also verbesserungsfähig sind. Aber sie tun einwandfrei!
Der Anfang: recording.timer
#!/bin/sh
if [ -e /var/etc/.start_ide ]; then
hdparm -S0 -W1 /dev/ide/host0/bus0/target0/lun0/disc
fi
Damit wird die Platte bei Timeraufnahmen schon mal scharf gestellt (rotiert also dauernd) und der Writecache wird aktiviert (W1). Falls kein Writecache gewünscht, dann abändern auf W0 oder Parameter ganz weglassen.
Weiter im Text: recording.start
#!/bin/sh
if [ -e /var/etc/.start_ide ]; then
hdparm -S0 -W1 /dev/ide/host0/bus0/target0/lun0/disc
/bin/mount -n -o remount,rw /dev/ide/host0/bus0/target0/lun0/part2
fi
Falls ne Direktaufnahme verwendet wird, auch hier Dauerrotation und Writecache an. Danach /hdd auf RW remounten.
Das Ende der Aufnahme: recording.end
#!/bin/sh
if [ -e /var/etc/.start_ide ]; then
hdparm -S60 -W0 /dev/ide/host0/bus0/target0/lun0/disc
/bin/ls -R /hdd > /dev/null
/bin/du -a /hdd
/bin/mount -n -o remount,ro /dev/ide/host0/bus0/target0/lun0/part2
/bin/msgbox title="Hinweis" refresh=2 size=50 popup="Writecache deaktiviert, HDD ro" timeout=6
fi
Writecache aus, HDD Sleep nach 5 min. Danach 2 Zeilen Codes, damit die Platte etwas liest, vielleicht noch den Cache leert. Anschließend wieder remounten auf RO und Textausgabe auf Bildschirm, daß alles OK.
Essentiell für dieses Gedöns ist allerdings, daß die Platte/Partition von Beginn an RO gemountet wird, sonst ist es witzlos. Also muß eine veränderte init_ide nach /var/etc kopiert werden. Und diese muß dort natürlich auch ausgeführt werden! (Rechte auf 755 nicht vergessen!) Ich weiß nicht welche Images das alles unterstützen. Das JTG macht es jedenfalls.
Diese neue init_ide muß dann im Abschnitt, in dem gemountet wird, eben die Änderungen haben. Bei mir z.B. im Abschnitt für xfs sieht es so aus:
if [ -e /var/etc/.xfs ] ; then
insmod xfs
/bin/mount -n -t xfs -o rw /dev/ide/host0/bus0/target1/lun0/part2 /mnt/custom
/bin/mount -n -t xfs -o ro /dev/ide/host0/bus0/target0/lun0/part3 /mnt/filme
/bin/mount -n -t xfs -o ro /dev/ide/host0/bus0/target0/lun0/part2 /hdd
fi
Man sieht hier, daß mein DOM RW gemountet wird (target1 = Slave), die Archiv- und die Aufnahmepartition auf der Festplatte dagegen nur als RO.
---
Zum Thema Partitionieren können andere vielleicht genauere Infos geben. Ich hab mir einfach das Installationsskript angesehen, und dann entsprechend blauäugig einige Versuche gemacht, bis ich 128 MB für nen Swap reserviert hatte, 50 GB für die Aufnahmepartition, sowie den Rest der Platte als Archiv. Ich kann mich nicht mehr genau entsinnen, wie ich es per telnet eingegeben hab, aber so in etwa gings:
sfdisk /dev/ide/host0/bus0/target0/lun0/disc << EOF
,128,S
,50000
,,L
EOF
Mit dem Wert in der Zeile mit den 50000 bin ich nicht ganz sicher. Ich hab einige Versuche gestartet, bis ich eben etwa 50 GB hatte. Die Zeile mit dem ,,L gibt übrigens an, daß der Rest der Platte genutzt wird. Man muß das übrigens tatsächlich so seltsam per telnet eintippen (jede Zeile einzeln per Return abschicken!), oder aber man bastelt sich ein Skript daraus.
Man sollte sich allerdings ganz im klaren sein bei dieser Aufteilung:
die ganzen Skripte gehen von einer HDD mit einer Partition (ausgenommen der Swap) aus. Folglich greifen die immer nur auf die Aufnahmepartition (target0/part2) zu. Die anderen werden schlicht nicht beachtet. Die mitgelieferten Skripte im Image sind also für die Datenpartition wertlos und somit zu verändern um zu funktionieren! Um dennoch einen geschickten Umgang zu ermöglichen, sollte man einen der im Image verfügbaren 'links' in /mount benutzen und auf die zusätzliche Partition per softlink umbiegen. Damit kann man eine schöne Integration erreichen. So habe ich auf der Aufnahmepartiton einen Link Filme angelegt, der auf die Archivpartition zeigt.
So, und zum Ende noch die beiden Skripte für den Skriptordner (gehören nach /var/tuxbox/plugins), damit man die Partition wieder RW und RO schalten kann per Fernbedienung.
RW:
#!/bin/sh
#HDDRW - Geraete werden schreibfaehig geschaltet ! Gefahr !
version=0.1
name=amigaherbie
if [ ! -f /var/etc/.start_ide ]; then
msgbox title="Fehler" msg="~cIDE-Treiber nicht geladen !~n~c Bitte den IDE-Treiber in den Treiber- und Bootoptionen laden~n~c und die Dbox neu starten. "
exit;
fi
/bin/ls -R /hdd > /dev/null
/bin/du -a /hdd > /dev/null
sleep 5
/bin/mount -n -o remount,rw /dev/ide/host0/bus0/target0/lun0/part2
/bin/mount -n -o remount,rw /dev/ide/host0/bus0/target0/lun0/part3
/bin/msgbox title="HDDRW" refresh=2 size=50 popup="Geraete nun schreibfaehig!" timeout=3
exit 0
RO:
#!/bin/sh
#HDDRO - Geraete werden lesefaehig geschaltet
version=0.1
name=amigaherbie
if [ ! -f /var/etc/.start_ide ]; then
msgbox title="Fehler" msg="~cIDE-Treiber nicht geladen !~n~c Bitte den IDE-Treiber in den Treiber- und Bootoptionen laden~n~c und die Dbox neu starten. "
exit;
fi
/bin/ls -R /hdd > /dev/null
/bin/du -a /hdd > /dev/null
sleep 5
/bin/mount -n -o remount,ro /dev/ide/host0/bus0/target0/lun0/part2
/bin/mount -n -o remount,ro /dev/ide/host0/bus0/target0/lun0/part3
/bin/msgbox title="HDDRW" refresh=2 size=50 popup="Geraete nun nur lesefaehig" timeout=3
exit 0
Diese beiden Skripte bedürfen einer Überarbeitung, da nach jedem Aufruf noch ein Fenster offen bleibt, welches mit Home geschlossen werden muß. Aber hab ich etwa die Ahnung?
Das Sleep 5 dient der Chance eines Anlaufs der HDD. Ich hatte mehrfach das Phänomen, daß die HDD 'unsichtbar' wurde, weder remountet werden konnte, noch ein unmount ging. Nach einem Neustart von Neutrino war aber immer alles wieder ok. Es gab niemals einen Datenverlust dadurch. Der Fehler zeigte sich (so meine ich, weil ich es nicht untersucht habe) immer dann, wenn die HDD schlief, und ich dann ein Remount Skript aufrief.
So, jetzt reicht es mir mit dem Tippen. Ich hoffe mein Gedankengang ist halbwegs nachvollziehbar.