Daniels Blog
6Nov/130

Die Festplatte der PS3 auf eine größere Festplatte klonen mit Linux

2013-11-06-20-51-04-820

Die Festplatte meiner Uralt-PS3 wurde nun endlich mit ihren 80GB zu klein. Zum Glück hatte ich noch eine 500GB-Platte herumfliegen und habe diese meiner Konsole spendiert.

Die ganze Sache war leider ziemlich zeitaufwändig. Hätte ich eine weitere Platte für ein Backup mit dem PS3-Systemprogramm gehabt, hätte ich mir viel Kopiererei sparen können. Aber es ging auch so...

Für diese etwas komplizierte Methode braucht man:

  • Die alte Platte aus der PS3
  • Eine neue Platte
  • Einen PC mit genug Platz auf der Platte um die alte Platte komplett aufzunehmen
  • Einen SATA-USB-Adapter

AUSBAU: Zunächst baut man die Platte aus der PS3 aus. Das geht ziemlich einfach. An der linken Seite befindet sich eine Plastikabdeckung, die man aufwippen kann. Danach entfernt man die blaue Schraube und kann den Schlitten mit der Platte einfach aus der Konsole herausziehen.

ORIGINALPLATTE AUSLESEN: Nun benötigt man einen USB-SATA Adapter, um die Platte an einen Rechner anschließen zu können. Auf dem Rechner muss genug Platz sein, um die komplette Platte aufzunehmen. Das Auslesen selbst geht ganz einfach.

Zunächst /var/log/syslog beim Anstecken der Platte per USB mitlesen um den Devicenamen zu erhalten..


> tail -f /var/log/syslog
...
Nov  6 20:38:27 think kernel: [ 3035.910418] sd 7:0:0:0: [sdb] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
Nov  6 20:38:27 think kernel: [ 3035.913066] sd 7:0:0:0: [sdb] Write Protect is off
Nov  6 20:38:27 think kernel: [ 3035.913075] sd 7:0:0:0: [sdb] Mode Sense: 28 00 00 00
Nov  6 20:38:27 think kernel: [ 3035.914499] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.914507] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3035.919639] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3035.919646] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.013996]  sdb: unknown partition table
Nov  6 20:38:27 think kernel: [ 3036.019555] sd 7:0:0:0: [sdb] No Caching mode page found
Nov  6 20:38:27 think kernel: [ 3036.019562] sd 7:0:0:0: [sdb] Assuming drive cache: write through
Nov  6 20:38:27 think kernel: [ 3036.019567] sd 7:0:0:0: [sdb] Attached SCSI disk

Prima. Die PS3-Platte ist nun unter /dev/sdb erreichbar.

Nun kann die komplette Platte in eine einzelne Datei ausgelesen werden.

> sudo su
> dd if=/dev/sdb of=/tmp/ps3.disk bs=50000

Nun muss man warten, bis die Kopie fertig ist. Man kann sich allerdings in einem neuen Terminalfenster ansehen, wie weit der Kopiervorgang fortgeschritten ist:

> watch "ls -hla /tmp | grep disk"
-rw-r--r--  1 root root  43G Nov  6 21:13 ps3.disk

Der ganze Vorgang hat bei mir ziemlich genau eine Stunde gedauert.

N1600527+1 Datensätze ein
1600527+1 Datensätze aus
80026361856 Bytes (80 GB) kopiert, 3600,04 s, 22,2 MB/s

KOPIE AUF DIE NEUERE, GRÖßERE PLATTE ZURÜCKSPIELEN: Nun tauscht man die Platten am SATA-USB-Adapter aus und schließt die neue, größere Platte an. Das Zurückspielen der Daten dauert dann noch einmal genausolang und kann wieder mit "dd" erledigt werden.

> dd if=/tmp/ps3.disk of=/dev/sdb bs=50000

DIE NEUE PLATTE EINBAUEN: Nun hat man eine Kopie der Originalplatte auf der neuen Platte. Diese wird jetzt in die PS3 eingebaut. Wenn die PS3 hochfährt und noch alle Daten vorhanden sind und Spiele gestartet werden können, ist alles glatt gelaufen. Nun hat man zwar eine Kopie der alten Platte auf der Neuen, aber die alte Partitionierung wurde mitkopiert. Die neue Platte hat also auch nur den freien Platz der alten Platte verfügbar. Ich habe keine Möglichkeit gefunden, die Partition der Platte zu vergrößern, SONY nutzt leider kein Standard-Dateisystem. Deshalb sind die nächsten Schritte auch noch notwendig.

DIE ALTE PLATTE ZUM BACKUP DER SPIELDATEN DER PS3 NUTZEN: Die alte Platte wird nun wieder an den SATA-USB-Adapter gesteckt und mit FAT32 formatiert.

>  mkfs.vfat -I -F32 /dev/sdb 

Die formatierte alte Platte kann jetzt per USB an die PS3 angeschlossen werden. Mit ihr führt man nun über das Playstation-Menü eine Sicherung der Spieldateien durch.

Vor dem Backup sollte man seine Tropähen noch einmal synchronisieren. Sie werden mit dem lokalen Backup NICHT mitgesichert.

#PS3 Menü
 [PSN] > [Trophäen-Sammlung] > Dreieck > Trophäen synchronisieren.

Jetzt kann man endlich die Daten auf die alte angeschlossene Platte sichern:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Sichern]

DIE NEUE (EINGEBAUTE) PLATTE LÖSCHEN UND DANACH DIE SICHERUNG VON DER ALTEN PLATTE ZURÜCKSPIELEN:

Neue (eingebaute) Platte löschen:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Formatierungs-Dienstprogramm] > [Systemspeicher formatieren]

Jetzt steht endlich der volle Speicherplatz der neuen Platte zur Verfügung.

Nun muss nur noch das Backup von der alten Platte zurückgespielt werden:

#PS3 Menü
 [Einstellungen] > [System-Einstellungen] > [Datensicherungsprogramm] > [Wiederherstellen]

Voila, ich habe alle meine Daten komplett behalten, aber habe jetzt 420GIG mehr Platz und die Platte ist um einiges schneller als die alte. Sehr schön.

Anmerkungen:
Leichter wäre alles gegangen mit einer weiteren Platte, die ich leider nicht zur Verfügung hatte:
PS3-Platte direkt mit der PS3 auf die weitere Platte sichern -> Neue grosse Platte einbauen -> Alles von der weiteren Platte zurücksichern.

Wenn man einen PC zur Verfügung hat (ich hatte nur ein Notebook) sollte man die Kopiererei auch nicht über USB machen sondern die Platten direkt an die SATA-Ports des Boards hängen. Viel schneller.

20Mrz/120

Beliebige Videodateien mit ffmpeg für die PS3 in H264 konvertieren

Nach viel Sucherei und Ausprobiererei habe ich jetzt endlich herausgefunden, wie ich in möglichst guter Qualität und möglichst kleiner Dateigröße Dateien für den Mediaplayer der PS3 mit ffmpeg konvertieren kann. Die Videodateien jedes beliebigen Formates das ffmpeg unterstützt kommen in das konfigurierbare INDIR. Die konvertierten, auf der PS3 abspielbaren, Dateien landen in OUTDIR.

#!/bin/bash
# Eingangs und Ausgangsverzeichnis konfigurieren
INDIR=/home/user/vid_in
OUTDIR=/home/user/vid_out

# Eventuellen Whitespace aus den Dateinamen entfernen
find $INDIR -name "* *" -type f | rename 's/ /_/g'

for f in $(ls $INDIR)
do
# Mit ffmpeg in H264 und AAC konvertieren (Achtung, der ffmpeg-Befehl muss in EINE Zeile)
ffmpeg -y -i $INDIR/$f -vcodec libx264 -level 41 -crf 24 -threads 2 -acodec libfaac -ab 128k -ac 2 -ar 48000 $OUTDIR/$f.mp4
# Ende ffmpeg Befehl

# Die folgende Zeile kann auskommentiert werden, wenn die Originaldateien
# gelöscht werden sollen.
#rm $INDIR/$f

done

Das in den Ubuntu-Repos vorhandene ffmpeg unterstützt leider kein H264, man muss ffmpeg selbst kompilieren um in den Genuß zu kommen. Das geht mit diesem Script hier ganz leicht:

http://pasindudps.blogspot.de/2011/10/install-ffmpeg-in-ubuntu-1110-oneiric.html

 

22Mai/100

Linux auf der PS3 – Ich habe aufgegeben :(

Nach fast einem Monat Warterei auf eine Lösung habe ich die "Anti-Linux"-Firmware installiert. Ich wollte wieder online zocken. Trotzdem kotzt es mich an.

8Apr/100

Mit der PS3 online zocken ohne Update 3.21 [defunct]

Leider funktioniert der Workaround seit dem 13. April nicht mehr. Sony überprüft inzwischen auch bei der Anmeldung ans PSN die Firmware-Version. Das Update Downgrade 3.21 für die PS3 entfernt die Linux-Unterstützung der PS3. Deshalb sollte man es nicht installieren, falls man die PS3 auch weiterhin als Linux-Rechner benutzen möchte. Um trotzdem mit der PS3 online zocken zu können muss man etwas tricksen und ihr vorgaukeln, es gäbe das Update auf 3.21 gar nicht. Danke an einige Unbekannte aus dem Golem-Forum, die die Methode zusammengebastelt haben. Ich habe sie lediglich in einem leicht zu benutzenden Skript zusammengefasst. Der Trick funktioniert so: Bevor die PS3 online geht, überprüft sie, ob sie die neueste Systemsoftware hat. Wenn nicht, wird der Benutzer zum Update aufgefordert und die Verbindung schlägt fehl. Zur Überprüfung verbindet sich die PS3 mit einem SONY-Server und liest dort eine Textdatei, in der die aktuelle Version hinterlegt ist.

Um der PS3 vorzugaukeln, dass sie bereits die aktuelle Version hat, benötigt man einen lokalen Proxy-Server (im Beispiel Squid), der die Anfrage an den SONY-Server an einen anderen Webserver umleitet, auf dem eine ältere Version der Textdatei liegt. Die PS3 denkt, dass sie aktuell ist und geht online.

Der Code wurde getstet unter einem Debian Lenny mit einem lokalen Webserver auf der Maschine. Er sollte aber auch unter Ubuntu ohne Probleme funktionieren.

Danach muss man in der PS3 als Proxy (Einstellungen -> Netwerk-Einstellungen -> Internetverbindungseinstellungen) lediglich noch die IP des Squid-Proxys angeben. Der Squid-Standardport ist 3128.

Leider ist das keine permanente Lösung. Sobald die ersten Games die Firmware 3.21 voraussetzen, werden diese durch diesen Workaround unspielbar. Aber wahrscheinlich ist ohnehin bald eine permanente Lösung verfügbar. Eventuell tut sich auch auf rechtlicher Seite etwas, da das Vorgehen von SONY klar gegen die EU-Direktive 1999/44 verstößt, die unter anderem vorschreibt, dass ein in der EU gekauftes Produkt die Funktion erfüllen muss, die dem Käufer zur Zeit des Kaufes bekanntgemacht wurde. Wörtlich: "fit for the purpose which the consumer requires them and which was made known to the seller at the time of purchase""

8Apr/100

Linux auf der PS3 offenbar gerettet

Letzte Woche hat die neue PS3-Firmware Blogger-Wellen geschlagen, da sie als einziges neues Feature den Support für das zusätzliche Betriebssystem auf der PS3 entfernte. Heute präsentierte "GeoHot" seinen angekündigten Weg aus der Misere:

Ich habe bisher nicht upgedatet, um das "Other OS" nicht zu gefährden, da ich mir damit eine Emu-Box bauen wollte. Bisher wurde der Patch von Geohot noch nicht veröffentlicht. Um weiterhin mit einer nicht aktualisierten PS3 online gehen zu können, kann mit einem Webproxy wie zum Beispiel Squid gebastelt werden. Ich bin gespannt. Mehr Infos hier: http://geohotps3.blogspot.com/