|
Grotere harddisk in Philips HDR1000 Harddiskvideorecorder NEW: This page is also available in english!! Vrijdag, 26 maart 2004 Update Zondag, 25 juli 2004: Vanaf vandaag wordt de nederlandstalige versie van deze site niet meer geüpdatet! Voortaan update ik alleen de engelstalige versie. Inleiding Een paar maanden geleden heb ik voor weinig geld een Philips HDR1000 Harddiskvideorecorder gekocht. Er gaan dus geen banden in, maar alle opgenomen programma's worden op de interne harddisk bewaard. Deze harddisk is 40 GB groot, en kan dus 12 tot 38 uur aan beeld en geluid opslaan, afhankelijk van de gekozen kwaliteit (HQ, SQ of LP). Nu leek het me nuttig (en ook erg leuk) om eens te proberen er een grotere harddisk in te doen, aangezien programma's dan langer bewaard kunnen worden (omdat de schijf dan minder snel vol is dus). Inventarisatie Afgelopen dinsdag heb ik mijn harddiskvideorecorder maar eens opengeschroefd, en de harddisk eruit gesloopt, en als tweede schijf (/dev/hdb) in mijn PC geprikt om eens te kijken wat er nou eigenlijk op staat. Fdisk snapte er al niks van. Dan maar ff een hexdump gedaan, het volgende kwam er uit: 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 80 |................| 000001c0 00 01 7f 0c ff ff 00 3f 00 00 2d 41 04 c9 00 00 |....ÿÿ.?..-A.É..| 000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 aa 55 |..............ªU| 00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|Toch lijkt dit verdacht veel op een partitietabel! Maar als je goed kijkt, zie je dat op 000001be 01 80 staat, terwijl dit bij een normale partitietabel 80 01 moet zijn (mits de eerste partitie bootable is). En de laatst 2 bytes (op 000001fe) zijn aa 55, terwijl een normaal MBR dit juist andersom heeft. Van ieder word is dus de hoge en lage byte verwisseld... 00007e00 00 e9 50 00 49 48 49 4c 53 50 00 20 40 02 00 20 |.éP.IHILSP. @.. | 00007e10 00 02 00 00 f8 00 00 00 00 3f 00 80 00 00 00 00 |....ø....?......| 00007e20 0e 00 04 c9 26 48 00 00 00 00 00 00 00 02 00 00 |...É&H..........| 00007e30 00 01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00007e40 00 80 00 29 00 00 56 00 4c 4f 4d 55 4c 45 42 41 |...)..V.LOMULEBA| 00007e50 20 45 41 46 33 54 20 32 20 20 00 00 00 00 00 00 | EAF3T 2 ......| 00007e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|Verder begint gewoon op 00007e00 de eerste partitie, op 00007e02 zou ".PHILIPS" moeten staan, maar nu staat er dus "P.IHILSP". Verderop staat "VOLUMELABE FAT 32 ". Dus om de schijf leesbaar te maken moet deze in zijn geheel gedecodeerd gekopieerd worden naar een image of een andere schijf. Gelukkig beschikt het commando dd over de optie "conv=swab" (inderdaad, swap met een b), die precies doet wat hier gebeuren moet. Partitietabel leesbaar maken/schijf mountable maken Om dus deze schijf leesbaar te maken, moet deze gekopieerd worden naar een derde schijf (of bij gebrek aan een extra schijf via een image naar de originele schijf): dd if=/dev/hdb of=/dev/hdc conv=swabFdisk bleek de kopie op deze manier wel te zien, en ook was de enige partitie te mounten. De volgende bestanden bleken op de schijf te staan: -rwxr--r-- 1 root root 414720 Jan 1 1982 back.omp* -rwxr--r-- 1 root root 81920000 Jan 1 1982 D0000000.BIN* * -rwxr--r-- 1 root root 81920000 Jan 1 1982 D0000499.BIN* -rwxr--r-- 1 root root 108000 Jan 1 1982 D enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 D enter_file_name.omp* -rwxr--r-- 1 root root 1024 Jan 1 1982 disp_bak.cl8* -rwxr--r-- 1 root root 1024 Jan 1 1982 disp.cl8* -rwxr--r-- 1 root root 414720 Jan 1 1982 D_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 D_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 D_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 D_parts3.omp* -rwxr--r-- 1 root root 13600 Jan 1 1982 D_WParts.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 enter_file_name.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 E_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 E_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 E_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 E_parts3.omp* -rwxr--r-- 1 root root 13600 Jan 1 1982 E_WParts.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 F enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 F enter_file_name.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 F_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 F_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 F_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 F_parts3.omp* -rwxr--r-- 1 root root 13600 Jan 1 1982 F_WParts.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 G enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 G enter_file_name.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 G_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 G_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 G_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 G_parts3.omp* -rwxr--r-- 1 root root 512 Jan 14 1984 guide_user_bak.dat* -rwxr--r-- 1 root root 512 Jan 14 1984 guide_user.dat* -rwxr--r-- 1 root root 13600 Jan 1 1982 G_WParts.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 I enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 I enter_file_name.omp* -rwxr--r-- 1 root root 102900 Jan 1 1982 IndParts.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 I_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 I_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 I_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 I_parts3.omp* -rwxr--r-- 1 root root 13600 Jan 1 1982 I_WParts.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 logo.omp* -rwxr--r-- 1 root root 1024 Jan 1 1982 mark_bak.cl8* -rwxr--r-- 1 root root 1024 Jan 1 1982 mark.cl8* -rwxr--r-- 1 root root 43200 Jan 1 1982 MarkParts.omp* -rwxr--r-- 1 root root 421292 Jan 1 1982 ompfile.tb2* -rwxr--r-- 1 root root 48216 Jan 1 1982 osd_down.omp* -rwxr--r-- 1 root root 31600 Jan 1 1982 osd_up.omp* -rwxr--r-- 1 root root 1536 Jan 14 1984 rec_seq_bak.bin* -rwxr--r-- 1 root root 1536 Jan 14 1984 rec_seq.bin* -rwxr--r-- 1 root root 108000 Jan 1 1982 S enter_channel_name.omp* -rwxr--r-- 1 root root 108000 Jan 1 1982 S enter_file_name.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 S_parts1A.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 S_parts1B.omp* -rwxr--r-- 1 root root 676800 Jan 1 1982 S_parts2.omp* -rwxr--r-- 1 root root 414720 Jan 1 1982 S_parts3.omp* -rwxr--r-- 1 root root 13600 Jan 1 1982 S_WParts.omp* -rwxr--r-- 1 root root 17965056 Jan 1 1982 TAPE_LIB.BIN* -rwxr--r-- 1 root root 2048 Jan 14 1984 tuner_user_bak.dat* -rwxr--r-- 1 root root 2048 Jan 14 1984 tuner_user.dat* -rwxr--r-- 1 root root 512 Jan 1 1982 usrSet_bak.dat* -rwxr--r-- 1 root root 512 Jan 1 1982 usrSet.dat* -rwxr--r-- 1 root root 512 Jan 1 1982 VERSION.TXT** Hier heb ik dus niet alle 500 "D0000nnn.BIN" bestanden weergegeven. Er staan dus 500 van deze bestanden op, deze zijn allemaal 80mb groot, en vullen dus vrijwel de hele schijf. Opgenomen programma's staan dus IN deze bestanden.
Een nieuwe schijf initialiseren De HDR1000 blijkt goed met een 80GB schijf overweg te kunnen. Het enige probleempje is dat bij SQ en LP de nog vrije ruimte (in uren en minuten) niet wordt weergegeven wanneer er geen programma's zijn opgenomen. Blijkbaar is de firmware niet berekend op zo'n hoog aantal. In HQ wordt wel netjes aangegeven dat er 26 uur en 10 minuten vrij is. Als de harddisk een beetje voller is, wordt er ook in SQ en LP gewoon de vrije ruimte netjes aangegeven. Waar ook nog op gelet moet worden is de exacte grootte van de schijven. De originele 40GB schijf is precies 80293248 sectoren groot. Een 80GB schijf moet dus twee keer 80293248 groot zijn, oftewel 160586496 sectoren. Iets minder gaat ook nog wel, maar mijn 80GB schijf van 160086528 sectoren bleek toch iets te klein te zijn, waardoor ik genoodzaakt was het 1000e bestand te wissen (D0000999.BIN), ik sta er dus niet raar van te kijken als mijn HDR1000 raar doet wanneer hij er achter komt dat het laatste bestand ontbreekt... 1. Zorg dat je voldoende ruimte hebt op je PC (meer dan de grootte van de nieuwe harddisk), in de vorm van een tweede harddisk OF gewoon vrije harddiskruimte op een bestaande harddisk. 2. Partitioneer de nieuwe harddisk, 1 partitie, type c (Win95 FAT32 (LBA)) 3. Formatteer de partitie als FAT32 4. Mount de partitie (in onderstaand voorbeeld heb ik hem als /dev/hdb1 in /hdb1/ gemount) 5. Kopieer bestand ompfile.tb2 er naartoe en pak deze uit: belfast:/hdb1 # tar jxvf ompfile.tb26. Maak 1000 bestanden aan, met als naam D0000000.BIN t/m D0000999.BIN (voor 80GB schijf) deze bestanden worden NIET door de HDR1000 zelf aangemaakt: belfast:/hdb1 # for i in $(seq 1000 1999|cut -c2-);do dd if=/dev/zero of=d0000$i.bin bs=8192 count=10000;doneBestandsnamen zijn overigens NIET case-sensitive 7. Umount partitie 8a. Hele disk gecodeerd (met de swab-optie van dd dus) kopieren naar andere (identieke) schijf: belfast:/ # dd if=/dev/hdb of=/dev/hdc conv=swabOF 8b: Hetzelfde, maar dan eerst naar een image kopieren en dan van image terug naar dezelfde schijf: belfast:/ # dd if=/dev/hdb of=/images/hdr1000;dd if=/images/hdr1000 of=/dev/hdb conv=swab
Bij het aan- en uitzetten van de videorecorder verschijnt er altijd een PHILIPS-logo op het scherm, dit blijkt het bestand logo.omp te zijn. Dit bestand is een uit 8 bitplanes bestaand plaatje van 720 bij 576 pixels, zonder header en dus ook zonder palet. Het palet zit in bestand disp.cl8. Om het logo te kunnen bewerken is er nogal wat knip- en plakwerk nodig, de data lijkt nog het meest op een windows bmptje. Klik hier om het plaatje in bmp-vorm te downloaden, het ziet er niet echt uit (kleurtjes zijn anders, en het logo is gespiegeld) maar het is wel bewerkbaar en op te slaan. Het moet wel net zo fout worden opgeslagen als het ingeladen is (gespiegeld en bruin dus), en na het opslaan moet de header (de eerste 1078 bytes) weer verwijderd worden. Overige opmerkingen Ik hoop dat je het allemaal een beetje snapt, het documenteren vond ik nog het moeilijkste van dit hele project, dus ik kan me voorstellen als er misschien iets niet helemaal duidelijk is. Op zich kun je me daar wel over mailen, als het een beetje mee zit dan krijg je nog antwoord ook... |