LINUX.ORG.RU

Китайская флешка


0

2

Принесли вчера китайскую флешку от именитого NoName. На флешке написано 16GB. Ядро ее детектит тоже как 16GB. Но монтировать не хочет, ругается на проблемы чтения по адресу старше 4GB.

Понятно, что это хитрожелтые китайцы так народ разводят. Но почему ядро ругается unhandled error и не может создать девайс в /dev?

Пробовал на ядре 2.6.39-gentoo и на ядре из ubuntu 11.04.
Как сие можно вылечить? Про бросание флешки в сторону мусорной корзины можно не говорить.

p.s. Владелец говорит, что под виндой оно монтируется и писать/читать на нее можно. Правда много не влазит ;)

★★★★★

Ответ на: комментарий от Evgueni

> Это что. У нас тут флешку на пол Терабайта покупали. В Китае, естественно.

Ну про внешние харды с флешкой внутри я знаю. На такой хард можно писать очень много, но сохраняется только пару последних гигабайт.

andreyu ★★★★★
() автор топика

Это четырёхгиговая флешка. Что там с ней делают дяди Ляо я побитно не знаю, но потом её впаривают именно нак 16-гиговую. И в рунете история уже давно баянится про http://demotivation.me/images/20110620/m7li7ewvmsq6.jpg

Lumi ★★★★★
()

flashboot.ru

Смотришь модель контроллера на своей флешке глазками или lsusb, выбираешь утилиту для контроллера флешки, ищешь венду, перепрошиваешь контроллер флешки.

adriano32 ★★★
()

Может ядро пытается читать GPT? По каким адресам пытается лезть ядро?

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

> Может ядро пытается читать GPT?

Не знаю.

По каким адресам пытается лезть ядро?


Точные цифры не знал, но в пересчете из 512 байтных блоков получалось почти 4GB.

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

> flashboot.ru

Смотришь модель контроллера на своей флешке глазками или lsusb, выбираешь утилиту для контроллера флешки, ищешь венду, перепрошиваешь контроллер флешки.


Спасибо, а без винды никак?

И все же интересно, почему ядро не хочет с ней работать? Винда то работает, пишет почти 4GB на нее.

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

Винда то работает

...ничего не проверяя. Что лучше, знать о неисправности сразу или когда важные файлы побитыми окажутся?

>>без винды никак?

Утилиты для контроллеров заточены под винду. Хочешь: разберись, переделай :)

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

>>Винда то работает

...ничего не проверяя. Что лучше, знать о неисправности сразу или когда важные файлы побитыми окажутся?


Согласен. Но вопрос в другом, почему в винде работает. А линуксовое ядро на не перехваченную ошибку ругается.

>без винды никак?

Утилиты для контроллеров заточены под винду. Хочешь: разберись, переделай :)



Возможно и занялся бы этим, но флешка не моя.

Вот приходит к вам с такой чудо-флешкой, и говорит - запиши мне на нее бла-бла-бла или вот принес тебе твой бэкап/проект. А вы ее в линуксовой системе примонтировать не можете. Даже устройство в /dev не появляется.

andreyu ★★★★★
() автор топика

Покажи логи. Насколько помню, идёт обращение к последнему сектору устройства.

Проблема встречалась на некоторых usb mass storage devices, кои сообщают ядру количество секторов (обычно на 1 больше реального размера).

Была такая проблема на моём стареньком никон д40 после обновления прошивки пришлось патчить ядро, добавляя новое проблемное устройство в черный список.

qbe
()

Столкнулся я с подобной проблемой, целая история была, купил в местном магазине на 16, симптомы идентичны, пошел менять...
Как только принес, объяснил в чем проблема (не пишет свыше 4 гб), сказали что ее надо на тестирование отправить куда то далеко (в поднебесную наверное), согласился подождать(купил с тем же объемом в другом магазине)
Пришел через месяц, вернули ее, сказали что все работает и менять не будут...
Нервы сдали, разозлился и принес ноут к ним, для демонстрации проблемы...
Пол часа ждал пока заполнит нужный объем и вуаля! Ошибка!
Дядя в очках с умным видом сел за мой ноут и с радость сообщил что у меня не Win$! А флешка исключительно под него собрана...
Еще пол часа я его убеждал вернуть мне деньги, но он решил проверить на магазинном компе, результат тот же - ошибка!
Итого: Вернули боблос с видом:«Больше сюда не приходи чьмо, нам и без тебя лохов хватает»

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

> Итого: Вернули боблос с видом:«Больше сюда не приходи чьмо, нам и без тебя лохов хватает»

Долго вы с ними возились, таких нужно на карандаш и к юристу. Спесь с таких уродов это быстро сбивает.

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

> Покажи логи. Насколько помню, идёт обращение к последнему сектору устройства.

Логи не сохранил, а флешка не моя. При случае сохраню все логи.

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

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

А что дало добавление устройства в черный список?

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

Ну на самом деле не совсем «чёрный» список, а drivers/usb/storage/unusual_devs.h , в котором для конкретного устройства заводил флаг US_FL_FIX_CAPACITY, что заставляло драйвер вычитать единицу из результата READ CAPACITY, при этом результат приводился к истинному.

(В свежих ядрах для многих mass storage devices включили эвристику - считается, что на флэш-накопителе всегда должно быть чётное количество секторов. US_FL_FIX_CAPACITY для части устройств продолжает использоваться)

Боюсь, данный метод с US_FL_FIX_CAPACITY не подойдёт для обхода проблемы китайских флэшек. Надо разобраться, что же именно читается из последнего сектора накопителя. Очень похоже на чтение GPT при заполнении /dev

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