DVD-RAM a UDF

Martin Pokorny konf na cronax.com
Úterý Březen 8 00:02:28 CET 2005


Miroslav BENES napsal(a):

>
>>>
>>> BTW nepříjemné je, že se po přijení (podle bodu 4) nedají zapisovat 
>>> soubory s diakritikou v názvu - mc hlásí že je jméno souboru příliš 
>>> dlouhé (10 znaků). Přitom bez diakritiky uloží i mnohem delší ..
>>
>>
>>
>> Nepoužívejte MC prostě to neumí (diakritiku) taky jsem teď musel 
>> upravovat disk s fat a nechtěl mi některé soubory smazat (právama to 
>> není) z kde i z příkazové řádky to šlo.
>> Prostě jak je v nazvu mezera český znak nebo něco podobného tak se 
>> stím neumí MC pořádně vyrovnat - po příčině jsem nepátral.
>
>
>
> To je s prominutím nesmysl :
>
> a) mc na RH9 _umí_ pracovat s diakritikou (iso9660,vfat)
> b) stejnou chybu ("jméno příliš dlouhé") hlásí i prosté kopírování s cp
>
> Takže mc je v tom nevině.
>
>
> Zkoušel jsem se dívat do zdrojáků jádra (2.4.18) a zakopaný pes je asi 
> zde (/usr/linux/fs/udf/namei.c) :
> ...
> if (dentry)
>        {
>                if (!dentry->d_name.len)
>                {
>                        *err = -EINVAL;
>                        return NULL;
>                }
>
>                if ( !(udf_char_to_ustr(&unifilename, 
> dentry->d_name.name, dentry->d_name.len)) )
>                {
>                        *err = -ENAMETOOLONG;
>                        return NULL;
>                }
>
>                if (UDF_QUERY_FLAG(sb, UDF_FLAG_UTF8))
>                {
>                        if ( !(namelen = udf_UTF8toCS0(name, 
> &unifilename, UDF_NAME_LEN)) )
>                        {
>                                *err = -ENAMETOOLONG;
>                                return NULL;
>                        }
>                }
>                else if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP))
>                {
>                        if ( !(namelen = 
> udf_NLStoCS0(UDF_SB(sb)->s_nls_map, name, &unifilename, UDF_NAME_LEN)) )
>                        {
>                                *err = -ENAMETOOLONG;
>                                return NULL;
>                        }
>                }
>                else
>                        return NULL;
>        }
> ...
>
>
> Takže pokud se mu nelíbí délka názvu překódovaná z UDF na CS0 (OSTA 
> Compressed Unicode ??) nobo zpět, pak si stěžuje chybou "jméno příliš 
> dlouhé".
>
> Dalšími pokusy jsem zjistil :
>
> - vypadá to že není žádný problém pokud diskritika obsahuje jen znaky 
> obsažené i v iso8859-1 (ýáíé)
>
> - pokud svazek při připojování nepoužiju volbu "iocharset=.." ani 
> "utf8", pak se dá bez protestů uložit i soubor s "českými" 
> diakritickými znaky, ale tyto jsou zobrazeny špatně (z linuxu hned po 
> nakopírování jako paznaky, z Woken jako otazníky); soubory uložené z 
> Woken mají diakritiku v názvech také zmršenou
>
> - pokud svazek připojím pomocí "iocharset=iso8859-2", pak se soubory  
> s diakritikou v názvu uložené dříve ve Woknech zobrazí správně (a dají 
> se zkopírovat/otevřít). Kopírování "bez háčků" projde, znaky s "háčky" 
> neprojdou - je hlášena chyba "dlouhé jméno souboru"
>
> - pokud svazek připojím pomocí "utf8", pak se soubory s diakritikou v 
> názvu uložené dříve ve Woknech zobrazí _asi_ správně (tak nějak IMHO 
> vypadá UTF8 text na systému s iso8859-2), ale nově ukládáný soubor s 
> diakritikou vypadá jinak než soubor stejného jména uložený z Woken - 
> toto ale může mít na svědomí systém, který utf8 nepodporuje.
>
> Takže závěr : Protože můj RH9 nepodporuje utf8, nedá se na DVD-RAM 
> zformátovaném jako udf pracovat korektně s diakritikou. Ale s velkou 
> pravděpodobností to bude pracovat na systému s plnou podporou utf8. 
> Protoe ale zatím musím zůstat u RH9 (a hlavně iso8859-2), vykašlu se 
> zatím na kompatibilitu s Wokny a naformátuju to DVD-RAM médium jako ext2.
>
> Doplňkové dotazy :
> ------------------
> a) mám místo ext2 použít ext3 ? Sice bych se data míň bál (jenže pokud 
> na to médium budu jen zálohovat, pak pravěpodobnost výpadku proudu 
> zrovna během kopírování ja malá), ale na druhou stranu by se při 
> každém zápisu opakovaně "ošoupávaly" sektory na kterých je žurnál. A 
> navíc by ten zápis byl cca 2x pomalejší. Nebo se platu ?
>
> b) které live-distro by se dalo použít na případnou obnovu dat z 
> DVD-RAM pokud bych uvažoval o používání formátu udf ? Tedy které 
> live-distro si rozumí s mechanikou DVD-RAM, umí bez problému pracovat 
> s udf, běží na utf8 a není moc velké ?
>
>
> Předem děkuji za náměty a nápady.
>
>
Ja k plne spokojenosti pouzivam parametry
codepage=852,iocharset=utf8 
codepage by se melo starat o format kodovani na disku a iocharset o 
format, v jakem se nazev zobrazuje linuxu. Takze nazev ulozeni v 
codepage852 (= windows) se prekoduje, v mem pripade, do utf8 a to se 
zobrazi. Mam pocit, ze cp852 a ico8859-2 si jsou celkem blizke.
M.


Další informace o konferenci Linux