LINUX.ORG.RU

[Не готов]Как узнать неанглоязычную метку с FAT-раздела?

 


0

1

На XP задал такую метку

комментарий

При этом получился вот такой выхлоп blkid

/dev/sdc1: LABEL=«M-^JM-^NM-^LM-^LM-^EM-^MM-^R�M-^PM-^HM-^I» UUID=«E659-39B0» TYPE=«vfat»

dosfslabel /dev/sdc1 читает старую простую метку(метка хранится в 2-х местах и ХРень обновила её только в одном кажется).

Отвалилось автомонтирование в гноме, в /dev/disk/by-label/ соостветствующий файл устройства не появился. Похоже бошку снесло всем утилитам и разом.


Не проще вернуть метку на латинице? Когда fat создавали, юникода ещё не было.Едва ли хоть что-то предусматривает чтение не ASCII метки с fat. Кроме винды, когда её создала винда, разумеется.

fractaler ★★★★★
()
Ответ на: комментарий от fractaler

>Не проще вернуть метку на латинице?

Мне то проще. Но я, положим, думаю не только о себе, а рассматриваю общие случаи.

gogi
() автор топика

> «M-^JM-^NM-^LM-^LM-^EM-^MM-^R�M-^PM-^HM-^I»

декодер Лебедева это не берет. поэтому не совсем понятно в какой кодировке эта метка ставится, и в какой кодировке линукс ее пытается прочесть.

Komintern ★★★★★
()

Может кто-нибудь подскажет хоть как это

M-^JM-^NM-^LM-^LM-^EM-^MM-^R�M-^PM-^HM-^I

непотребство перекодировать каким-нибудь iconv?

gogi
() автор топика
Ответ на: комментарий от Komintern

>декодер Лебедева это не берет. поэтому не совсем понятно в какой кодировке эта метка ставится, и в какой кодировке линукс ее пытается прочесть.

Ага, мне тоже непонятно. Ну похоже хранится это дело как длинное имя файла. А оно там вроде в каком-то utf-16.

gogi
() автор топика
Ответ на: комментарий от Led

>Зачем? Просто поставь новую праильну метку

Я рассматриваю случай, когда эту метку ставлю не я. Но с ней приходится работать моему коду. Такое нужно или расшифровать или неподдерживать(пустая метка) как тот же cfdisk.

gogi
() автор топика
Ответ на: комментарий от gogi

Да не, всё оказалось дубово просто: строка хранится в CP866. Пропатчил blkid из busybox. Вот что выдало:

/dev/sdc1: LABEL="���������"
i=0, lable[i]=138
i=1, lable[i]=142
i=2, lable[i]=140
i=3, lable[i]=140
i=4, lable[i]=133
i=5, lable[i]=141
i=6, lable[i]=146
i=7, lable[i]=128
i=8, lable[i]=144
i=9, lable[i]=136
i=10, lable[i]=137
 UUID="E659-39B0"
gogi
() автор топика
Ответ на: комментарий от gogi

>Да не, всё оказалось дубово просто

Но однако же это не отменяет того факта, что в текущем виде десктопные утилиты на линуксе глючные в плане переваривания таких меток.

gogi
() автор топика
Ответ на: комментарий от geekless

>Т.е. хранится в той же кодировке, что имена файлов?

Да.

Тогда, логично, её надо преобразовывать в драйвере фс.


Драйвер фс получает доступ к фс после монтирования. А тут эти утилиты напрямую с диском общаются без этого драйвера.

gogi
() автор топика
Ответ на: комментарий от geekless

>Т.е. хранится в той же кодировке, что имена файлов?

Метка это и есть файл (8+3). // К.О.

anonymous
()

Кастую ТС посмотреть в hexedit в начальном секторе раздела метку в hex'e начиная со смещения 0x47 ЕМНИП и потом по таблице символов какой-то (КОИ8, cp1251) перевести.

adriano32 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.