Efter att jag hade läst på lite om JFSs layout, samt gluttat på källkoden till JFSs analysprogram xpeek, så hade jag vad som behövdes.
Programmet kör i flera steg. Först scannar det efter troliga inodes, som den senare filtrerar enligt olika regler. När man har en mängd med OK inodes så skapar man först relationerna mellan dem (katalogstrukturen). Därefter extraherarr man alla namn, och efter det börjar själva dataåterskapningen.
I JFS är all data lagrad i B+träd, som man måste traversera för att hitta extent-deskriptorer. Dessa deskriptorer talar om var ett extent startar och slutar. Ett extent är ett kontinuerligt allokerat block av data. Har filen många extents/fragments så blir trädet stort och många fragment måste pusslas ihop för att få tillbaka filen. Vissa filer hade mer än 4000 fragment! inte undra på att disken har trashat lite!
Det här projektet är inte riktigt klart än, men det funkar nästan. Det har ett antal buggar som inte är helt fixade än men som sagt, det funkar.
Jag har fått det hostat på sourceforge.net (http://jfsrec.sourceforge.net). GPL förståss.
Ni får ursäkta detta titta-vad-jag-har-gjort-inlägg, men jag kunde inte uthärda tanken att lägga en månad eller mer på ett mer eller mindre ofrivilligt projekt utan att det resulterade i en tråd här.
