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