DVD-RAM a UDF
Miroslav BENES
miroslav.benes na zdas.cz
Pondělí Březen 7 09:27:05 CET 2005
>>
>> 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.
Miroslav BENEŠ
System administrator
ŽĎAS a.s.
Další informace o konferenci Linux