Efter 55 dygn är nu Fabbes BBS åter öppen för inloggning!
En liten beskrivning av dom 12-16 timmars arbete jag lagt ner på detta för
den som bryr sig och kanske uppskattar arbetet:
Den 25 juli blev NiKom-partitionen på BBS-datorn full och när plats sedan
hade skapats på disken och processerna fick skriva klart hade data
försvunnit. Märkligt nog verkar också data ha skrivit i fel filer --
filsystemet måste ha fått fnatt när det blev fullt och buffertar fylldes.
Jag ägnade många timmar åt att försöka klura ut hur NiKom lagrar
binärdatat och att försöka fixa det. Första försöket gick snett och utan
effekt. Nästan tre veckors klurande och uppgivenhet, tills jag upptäckte
att den lagade filen hade sparats med fel namn!
Med rätt namn sparat fungerade BBS:en mycket bättre, men fel kvarstod. En
text gav felmeddelande när man försökte läsa den. Inte så farligt kan
tyckas, men det gjorde att man inte kunde lista texter förbi den texten,
och inte heller fungerade "lista ärenden" bra. En massa klurande och
studerande av binärdata följde, och tillslut frågade jag Bosna efter
NiKom-källkoden (som jag också haft, men slarvat bort).
Efter att ha studerat källkoden och börjat förstå den fann jag ut en massa
intressant som gick att utläsa ur binärdatat, och även några fel som jag
fixade. Datat för en ärenderad: "Basens födelsedagsbarn" hade delvis
hamnat som data för vilket möte texten skulle ligga i. (Bytesen "else" låg
respresenterade som mötesnamn). Med detta fixat fungerade texten lite
bättre, men fortfarande fick man ett felmeddelande när man försökte lista
texten (däremot gick den att läsa!).
Nu var jag säker på att dom filer jag grävt i var rätt, så jag började
titta på en annan fil, textmot.dat som är full av obegriplig binärdata.
Efter att ha kikat på källkoden igen gjorde jag efter en del gissningar
antagandet att resten i divisionen textnummer/32768 multiplicerat med två
motsvarade positionen i den filen för....öh, vad nu den här filen håller
lagrat. Jag gissar att det är rättigheter för texten. Intressant nog dom
två bytes som låg på den positionen just datat "se" (som i ärendet där!)
och övriga bytespar i filen innehöll alltid en nollbyte följt av något
annat, om det inte var två $FF-bytes. Jag chansade och ersätte bytesen med
en kopia av dom två bytes som låg före, och VIPS fungerade lista ärenden!
Nåja, VIPS och VIPS. Varje ändring jag gjorde måste sparas lokalt i min
linuxburk, FTP:as till BBS-datorn, BBS-datorn måste bootas om och BBS:en
startas på nytt. Det tog en jävla tid att testa varje hypotes.
Nu trodde jag allt var bra. Men så upptäckte jag att hela BBS-systemet
bara innehöll 512 texter! Lägsta textnummer var bara 512 lägre än högsta
textnummer. Hjälp! Varför?
Tillbaka till källkoden över hur filen sysinfo.dat lagrar datat. Ändrade
datat för "lästa text" och bootade om. Felet kvarstod. Ägnade en timme åt
att studera källkoden igen och insåg att den aldrig använder den där
sysinfo-datat om lägsta text (trots att den lagrar det) utan istället
läser rådatat och klurat ut vilken som är lägsta textnummer. Men VARFÖR då
bara 512 texter? Efter ytterligare en timmes klurande fann jag svaret: Min
gamla felsparade fil, Head508.dat som jag sparat istället för Head805.dat,
låg kvar som en extra kopia. Eftersom 508 var det lägsta numret på någon
headx.dat-fil lurades systemet att tro att detta var det lägsta
textnumret. Nu var det enkelt att radera 508-filen och VIPS så fungerade
basen! Detta var på fredagkväll, och jag ägnade 4-5 timmar åt intensivt
arbete på detta då.
Senaste två dygnen har jag ägnat åt att ta backup på BBS:en (senaste
backupen var från februari!) och sedan att ställa fram klockan ett dygn,
låta BBS:en ägna 8-9 minuter åt att räkna ut alla födelsedagar, ställa
fram ett dygn till, födelsedagsberäkning, osv. :) Går rätt smidigt om man
spelar GTA San Andreas samtidigt och bara pausar när man hör BBS-datorn
sluta rassla. Över 7 timmar tog det för BBS-datorn att beräkna fram alla
födelsedagar, skriva brev och skriva i mötet Användarna på basen.
Justja, jag har rensat ut grejer från NiKom-partitionen också, så nu finns
det plats som borde räcka några år framåt, och garanterat fram till nyår.
Och senast då hoppas jag BBS:en kör OpenKom istället.
Hoppas folk uppskattar allt arbete man lagt ner på det här. Är ju inte
världens aktivitet på basen nuförtiden, men jag vet att en del har saknat
den iaf.
Seså, vad väntar du på? Logga in nu då! Adressen är som vanligt:
telnet://fabbe.se
Hälsningar
Fabian Norlin / Sysop #0