abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 16:00 | Nová verze

Google Chrome 90 byl prohlášen za stabilní. Nejnovější stabilní verze 90.0.4430.72 přináší řadu oprav a vylepšení (YouTube, Pete LePage z devadesátek :-)). Zdůraznit lze použití HTTPS jako výchozího protokolu při nezadání protokolu. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 37 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
včera 11:00 | Zajímavý projekt

Björn Ståhl představil desktopové prostředí Pipeworld postavené na Arcanu, tj. na jeho vlastním display serveru, herním enginu a realtimovém multimediálním frameworku v jednom. Videoukázka na YouTube.

Ladislav Hagara | Komentářů: 7
včera 10:00 | Komunita

Společnost System76 prodávající počítače s předinstalovaným Pop!_OS nebo Ubuntu oznámila, že v Pop!_OS 21.04 bude nové desktopové prostředí COSMIC vycházející z GNOME. Představení prostředí v příspěvku na blogu.

Ladislav Hagara | Komentářů: 4
včera 09:00 | Nová verze

nnn (Wikipedie), někdy také n³, je neortodoxní terminálový správce souborů. V den čtvrtých narozenin projektu byla vydána nová verze 4.0. Její kódový název je Sushi.

Ladislav Hagara | Komentářů: 0
včera 08:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2021-3472 v X.Org Serveru a XWaylandu. Chyba je zneužitelná k lokální eskalaci práv (pokud X server běží pod právy roota). Opravena je v upstream verzích X.Org Serveru 1.20.11 a XWaylandu 21.1.1.

Ladislav Hagara | Komentářů: 0
včera 07:00 | Nová verze

Bylo vydáno FreeBSD 13.0. Podrobnosti v poznámkách k vydání.

Fluttershy, yay! | Komentářů: 0
včera 01:00 | Zajímavý projekt

Collapse OS vznikl jako svobodný operační systém pro počítače v případě „pomalého kolapsu civilizace“ sestavitelné a udržovatelné ze součástek rozšířených zařízení jako kalkulátory Texas Instruments, a to za účelem programování dalších jednočipů pro automatizaci. Autor po roce a půl projekt označil za hotový, ale plánuje pokračovat v jeho vylepšování. Ke stažení jsou zdrojové kódy (pod GNU GPLv3) a dokumentace.

Fluttershy, yay! | Komentářů: 0
13.4. 14:33 | Komunita

Nvidia podpoří projekt Common Voice částkou 1,5 milionu dolarů. Mozilla píše o demokratizaci a diverzifikaci hlasové technologie. Nvidia prostě použije otevřenou databázi hlasových záznamů k trénování svého systému Jarvis, viz úvodní přednáška CEO Nvidie Jensena Huanga na NVIDIA GTC 2021.

Ladislav Hagara | Komentářů: 0
13.4. 09:00 | IT novinky

Tento týden probíhá virtuální konference NVIDIA GTC 2021 (GPU Technology Conference). Doporučit ke zhlédnutí lze úvodní přednášku CEO Nvidie Jensena Huanga. Z kuchyně představil celou řadu novinek (NVIDIA Grace CPU, NVIDIA DRIVE Atlan, AI-Capable Supercomputer Alps, …). Dění na konferenci lze sledovat na Twitteru.

Ladislav Hagara | Komentářů: 3
13.4. 08:00 | Nová verze

Byla vydána verze 6.0 softwaru pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Mutara. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 1
Kolik času v průměru denně trávíte videohovory/-konferencemi? (ať už v práci, škole nebo soukromě)
 (50%)
 (13%)
 (16%)
 (11%)
 (7%)
 (1%)
 (2%)
Celkem 318 hlasů
 Komentářů: 7, poslední 8.4. 12:14
Rozcestník

Oprava root dir na FAT16

25.12.2007 14:34 | Přečteno: 1093× | Linux | poslední úprava: 25.12.2007 15:39

Před týdnem mi po probuzení PDA ze suspendu přestaly fungovat nainstalované aplikace. Zjistil jsem že root dir na SD kartě (2GB, FAT16) najednou obsahuje nesmyslné položky. Bohužel jsem ta data potřeboval, tak jsem dd-čkem zkopíroval image na desktop, a sháněl něco čím to opravit. Nástrojů hafo (jak pro win tak pro lin), ovšem žádný nefungoval, tak jsem ho musel napsat sám.

Tento zápisek je pro případ, že by Windows Mobile 6 opět napadlo že zápis náhodného sektoru do root dir je dobrý nápad, a já bych to musel psát znovu. Algoritmus: načte se FAT, identifikují se konce chainů (0xffff marker), zpětně se dojde na začátek chainu, načte se cluster a otestuje se jestli je to začátek adresáře. Pokud ano a .. ukazuje na cluster 0, je tento chain adresářem odkazovaným z root dir. Takto nalezené adresáře se proto zapíšou jako nová root dir. Soubory v root dir mě nezajímají, to co jsem potřeboval bylo v adresářích. Jejich jména si skript samozřejmě musí vyvyslet.

Vážně by mě zajímalo co se vlastně stalo. FAT i data byly v pořádku, jen byl přepsán root dir. Taky jsem si všiml že poslední dva bajty boot sectoru nebyly jak má správně být 0xaa, 0x55 ale 0xff, 0x55.

from struct import unpack, pack
from string import split
from array import array

# read boot sec
f = open('image', 'r+')
bps, spc, res, fats, rdir, spf, secs, fat = \
    unpack('<11xHBHBH3xH8xI18x8s450x', f.read(512))
fat = split(fat)[0]
if fat != "FAT16": raise
rdir = (rdir * 32 + bps - 1) / bps
clu0 = res + fats * spf + rdir
clus = (secs - clu0) / spc
print "DISK: %d + %d * %d %s + %d" % (res, fats, spf, fat, rdir)
print "DATA: %d * %d * %d" % (clus, spc, bps)

# read fat
prev = {}
f.seek(res * bps)
for i, x in enumerate(array("H", f.read(spf * bps))):
    prev.setdefault(x, []).append(i)

# process chains
root = ''
for i in prev[0xffff]:
    chain = []
    while 1:
        chain.append(i)
        try: i, = prev[i]
        except: break
    if i < 2 or len(chain) > 5:
        continue
    # read first 2 dir entries
    f.seek((clu0 + (i - 2) * spc) * bps)
    n1, c1, s1, n2, c2, s2 = unpack('<' + '12s14xHI'*2, f.read(64))
    if n1 == '.          \x10' and c1 == i and s1 == 0 and \
       n2 == '..         \x10' and c2 == 0 and s2 == 0:
        root += 'DIR%-5d   \x10' % i + pack('<14xHI', i, 0)

# write new root dir
if len(root) > rdir * bps: raise
f.seek((res + fats * spf) * bps)
f.write(root + '\0' * (rdir * bps - len(root)))
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.