научите помечать трудночитаемые сектора как BADы
Модератор: Модераторы разделов
-
- Сообщения: 10
- ОС: Arch Linux
научите помечать трудночитаемые сектора как BADы
добрый день, форумчане! столкнулся с задачей которую не смогу решить без помощи. Имею диск на 100 Гб на старом ноуте, на нём установлена система ArchLinux. Диск имеет кучу бэд-секторов, после стирания диска и подлечивания программой HDD-Regenerator на диске больше нет бэдов, зато осталась часть трудночитаемых секторов, т.е. сектор и не bad но и читается с задержкой (например в той же Victoria наглядно видна карта диска где отмечены цветными прямоугольниками сектора по их времени считывания). Я думаю вы как и я прекрасно понимаете что сектор который уже читается с задержкой (ещё не красный в Victoria но уже например тёмнокоричневый) в скором времени станет BAD и я потеряю данные. Мне бы очень хотелось научиться помечать такие сектора тоже как повреждённые чтобы система не писала в них информацию. С мануалом badblocks я знакомился, утилита позволяет выявлять bad-сектора и создавать список таких секторов. Но я хочу помечать не только полностью нечитаемые сектора а и трудночитаемые, установив например какой нибудь заданный фактор задержки чтения. Например в Victoria коричневый сектор это задержа 600 ms, зелёный сектор - 200ms и так далее. Так вот я хочу сектора с задержкой чтения в 600 ms пометить тоже как bad, может не утилитой badblocks а какой нибудь другой... Помогите советом пожалуйста.
-
- Сообщения: 1139
- ОС: Fedora
Re: научите помечать трудночитаемые сектора как BADы
Какой еще вы ждете совет? Срочно меняйте диск!
Нынешние диски сами умеют справляться со своими проблемами. Но если они уже вылезли наружу — дело совсем плохо.
Нынешние диски сами умеют справляться со своими проблемами. Но если они уже вылезли наружу — дело совсем плохо.
Спасибо сказали:
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
нет, с этим то я согласен. Но мне нужна помощь именно в том вопросе который я задал. Должна найтись программа, которая умеет создавать badblock list не только из полностью нечитаемых секторов, а и из трудночитаемых с указанием желаемой задержки в чтении.
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
Если блок читается медленно, это вовсе не значит, что он скоро вылетит. В Вашем случае это скорее всего заремапленные блоки и следующие за ними, задержка при последовательном чтении возникает из-за того, что приходится перепозиционировать головку.
В целом согласен, что диск надо срочно менять.
В целом согласен, что диск надо срочно менять.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 307
- ОС: Debian 9, macOS, Windows
Re: научите помечать трудночитаемые сектора как BADы
никогда непробовал - EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!!
hdparm - get/set SATA/IDE device parameters
hdparm [options] [device ...]
--make-bad-sector
Deliberately create a bad sector (aka. "media error") on the
disk. EXCEPTIONALLY DANGEROUS. DO NOT USE THIS OPTION!! This
can be useful for testing of device/RAID error recovery
mechanisms. The sector number is given as a (base10)
parameter after the option. Depending on the device, hdparm
will choose one of two possible ATA commands for corrupting
the sector. The WRITE_LONG works on most drives, but only up
to the 28-bit sector boundary. Some very recent drives (2008)
may support the new WRITE_UNCORRECTABLE_EXT command, which
works for any LBA48 sector. If available, hdparm will use
that in preference to WRITE_LONG. The WRITE_UNCORRECTABLE_EXT
command itself presents a choice of how the new bad sector
should behave. By default, it will look like any other bad
sector, and the drive may take some time to retry and fail on
subsequent READs of the sector. However, if a single letter f
is prepended immediately in front of the first digit of the
sector number parameter, then hdparm will issue a "flagged"
WRITE_UNCORRECTABLE_EXT, which causes the drive to merely flag
the sector as bad (rather than genuinely corrupt it), and
subsequent READs of the sector will fail immediately (rather
than after several retries). Note also that the --repair-
sector option can be used to restore (any) bad sectors when
they are no longer needed, including sectors that were
genuinely bad (the drive will likely remap those to a fresh
area on the media).
ad infinitum
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
Bizdelnick писал(а): ↑12.09.2016 13:11В Вашем случае это скорее всего заремапленные блоки и следующие за ними, задержка при последовательном чтении возникает из-за того, что приходится перепозиционировать головку.
ну скажем так. Во первых этот винт у меня на ноуте которому 12 лет. Во вторых я не хочу меня винт, для этого ноута его достаточно, я хочу его использовать дальше но убрать трудночитаемые сектора из файловой системы чтобы к ним не обращались при записи. В третьих, друзья не сочтите за упрёки, но я ведь не задал вопрос - что мне делать с посыпавшимся винтом? я попросил помощи в программе которая могла бы мне пометить трудночитаемые сектора как беды.
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
codemaster256 писал(а): ↑12.09.2016 14:57я хочу его использовать дальше но убрать трудночитаемые сектора из файловой системы
Вы их не уберёте. Если Вы заремапите «медленные» сектора, то в результате этого медленно читаться станут другие. Только резерв скорее исчерпаете. Можно их исключить при создании файловой системы (опция -l для mke2fs), но для этого придётся переформатировать раздел.
Дело в том, что Вы исходите из неверной предпосылки:
codemaster256 писал(а): ↑12.09.2016 02:36сектор который уже читается с задержкой (ещё не красный в Victoria но уже например тёмнокоричневый) в скором времени станет BAD
Это не обязательно так. Скорее всего будут сыпаться сектора, расположенные близко к повреждённым. То есть те, которые перед заремапленными (при тесте на последовательное чтение скорость для них будет нормальной) и те, которые после заремапленных (скорость пониженная). Заремапленные же сектора, которые всегда читаются медленно, вряд ли в скором времени выйдут из строя.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
Bizdelnick писал(а): ↑12.09.2016 15:14Вы их не уберёте. Если Вы заремапите «медленные» сектора, то в результате этого медленно читаться станут другие.
нет, вы не правы. Я хочу эти медленные сектора не ремапить а просто пометить в файловой системе как неиспользуемые.
эта команда умеет делать бэд-сектора на диске а мне это не нужно. Мне нужно внести в бедблок-лист те сектора которые плохо читаются а не только те которые вообще не читаются.
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
codemaster256 писал(а): ↑12.09.2016 19:13Мне нужно внести в бедблок-лист те сектора которые плохо читаются
В третий раз повторяю: они хорошо читаются, тормоза при последовательном чтении обусловлены перепозиционированием головки. Если хотите иметь призрачную надежду на то, что данные не накроются (хотя они со временем всё равно накроются), Вам надо исключать не «медленные» сектора, а довольно большую область вокруг умерших секторов (все «медленные» сектора + запас в обе стороны от них). Сделать это можно только вручную.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
Bizdelnick писал(а): ↑12.09.2016 19:24В третий раз повторяю: они хорошо читаются, тормоза при последовательном чтении обусловлены перепозиционированием головки.
я вас понимаю) но пожалуйста, помогите мне сделать именно то что я прошу) понимаете как это выглядит - это как будто вы пришли на рынок купить шорты а уже осень. И вы ищете выбираете а вам продавцы говорят - да какие шорты, вам нужны уже тёплые брюки и куртка, и куда бы вы не подошли а вам говорят что нужна тёплая одежда. Но вам нужны ШОРТЫ! вот так и мне) я хочу только одного - помощи в пометке плохочитаемых секторов точно так, как если бы они были бэдами и очень прошу - НИЧЕГО ДРУГОГО ))))))
давайте так. Имеем диск sda, c бэд-секторами и плохочитаемыми секторами
запускаем команду badblocks -sv -o badlist.txt /dev/sda - эта команда нам занесёт в файл badlist.txt все сектора которые не прочитались.
мне нужна такая же команда или модификация этой команды (например её патч) которая кроме бэд-секторов добавит мне в этот badlist.txt ещё и те сектора, чтение которых превышает например 200 ms
если средствами Линукс можно это сделать - пожалуйста помогите, если нет - просто скажите что никто не знает решения задачи. И я очень прошу - пожалуйста не нужно мне советовать как нужно ремонтировать диск с бэдами. Я эти диски разбирал до блока головок и менял на убитом винте головки с донора и считывал нужную информацию. Но в данном случае я прошу у вас не помощи в том как избавиться от диска. Я прошу конкретно того что прошу - как видоизменить команду badblocks или какую другую применить команду форматирования которая бы внесла мне в файл кроме бэдов ещё и плохочитаемые сектора с заданной мной задержкой при чтении.
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
codemaster256 писал(а): ↑12.09.2016 21:11мне нужна такая же команда или модификация этой команды (например её патч) которая кроме бэд-секторов добавит мне в этот badlist.txt ещё и те сектора, чтение которых превышает например 200 ms
Это невозможно хотя бы потому что время чтения зависит от текущего положения головки. Если мерять скорость последовательного чтения, то тормоза будут возникать, например, при переходе с одной пластины на другую.
codemaster256 писал(а): ↑12.09.2016 21:11если средствами Линукс можно это сделать - пожалуйста помогите, если нет - просто скажите что никто не знает решения задачи.
Так я вроде уже сказал:
Создайте файл со списком секторов и скормите его mke2fs.
Автоматизацией бессмысленных действий редко кто занимается.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
Bizdelnick писал(а): ↑12.09.2016 23:05Это невозможно хотя бы потому что время чтения зависит от текущего положения головки. Если мерять скорость последовательного чтения, то тормоза будут возникать, например, при переходе с одной пластины на другую.
ну не скажите. Если вы когда нибудь пользовались программой Victoria (например версией для Виндовс) то там всё наглядно показано. Запускаем программу, указываем ей логгировать сектора чтение которых выше определённого порога (например мной же указанные 200ms), прогоняем например первые 100 мегабайт где есть плохие области. Сохраняем лог, перезапускаем программу и снова прогоняем эти же 100 мегабайт - в итоге в логах будут указаны одни и те же сектора. Я проверял. Вот такие сектора я и хочу исключить как бедовые, только 200 ms может слишком мало, хотел бы указать например 500ms - вот такие действительно замедляют скорость работы винта и их совсем немного. Я написал мейнтейнеру программы badblocks - может он подскажет что можно придумать. Считаю нужно этой программе сделать патч чтобы она умела отсеивать не только беды а и медленночитаемые. Для этого нужно из исходников перекомпилировать утилиту badblocks но к сожалению я не программист. Хотя очень странно что за всю историю до сих пор не сделана такая замечательная утилита. Люди пачками выкидывают жёсткие диски а ведь можно было продолжать ними пользоваться используя такой метод.
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
Bizdelnick писал(а): ↑12.09.2016 23:05Это невозможно хотя бы потому что время чтения зависит от текущего положения головки. Если мерять скорость последовательного чтения, то тормоза будут возникать, например, при переходе с одной пластины на другую.
ну не скажите. Если вы когда нибудь пользовались программой Victoria (например версией для Виндовс) то там всё наглядно показано. Запускаем программу, указываем ей логгировать сектора чтение которых выше определённого порога (например мной же указанные 200ms), прогоняем например первые 100 мегабайт где есть плохие области. Сохраняем лог, перезапускаем программу и снова прогоняем эти же 100 мегабайт - в итоге в логах будут указаны одни и те же сектора. Я проверял. Вот такие сектора я и хочу исключить как бедовые, только 200 ms может слишком мало, хотел бы указать например 500ms - вот такие действительно замедляют скорость работы винта и их совсем немного. Я написал мейнтейнеру программы badblocks - может он подскажет что можно придумать. Считаю нужно этой программе сделать патч чтобы она умела отсеивать не только беды а и медленночитаемые. Для этого нужно из исходников перекомпилировать утилиту badblocks но к сожалению я не программист. Хотя очень странно что за всю историю до сих пор не сделана такая замечательная утилита. Люди пачками выкидывают жёсткие диски а ведь можно было продолжать ними пользоваться используя такой метод.
Bizdelnick писал(а): ↑12.09.2016 23:05Это невозможно хотя бы потому что время чтения зависит от текущего положения головки. Если мерять скорость последовательного чтения, то тормоза будут возникать, например, при переходе с одной пластины на другую.
уважаемый Bizdelnick! в любом случае я благодарен вам за оказываемую помощь и разьяснения. Но позвольте вас спросить, вы когда нибудь запускали тест скорости позиционирования головок жёсткого диска? если вы запустите такой тест (к примеру в АIDA64 под Виндовс) то вы увидите что жёсткие диски имеют среднее время перемещения головок равное 14-16 ms , а я говорю о времени в 200ms или 500ms. Вы поймите, та задержка о которой говорите вы несущественна по сравнению с задержкой при скорости чтения плохого сектора. Я понимаю что это могут быть заремапленные сектора, но вы поймите меня , поймите суть моего вопроса - я не спрашиваю о том почему у меня на диске есть такие сектора. Я спрашиваю о утилите которая могла бы мой вопрос решить. Если у меня есть на винте заремапленные сектора. то ДА, Я ИХ и хочу поместить в бед-блок лист ) надеюсь смог доступно обьяснить. Но похоже такой утилиты либо способа нет и о нём никто не знает. Надеюсь ответит мейнтейнер утилиты badblocks и что нибудь подскажет. Ведь с точки зрения программирования это проще простого - в текущей версии программы есть условие - не прочитался сектор вообще - добавляем в бедлист. В той версии что хочу я увидеть есть дополнительное условие - если сектор всё же прочитался но выше указанной мной задержки его тоже добавить в бедблок-лист. Вот и всё )
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
codemaster256 писал(а): ↑13.09.2016 02:16Если вы когда нибудь пользовались программой Victoria (например версией для Виндовс) то там всё наглядно показано.
Вот именно, что там наглядно что-то показано, но Вы не понимаете (и, вероятно, вообще никто кроме авторов не понимает), что именно. Вы говорите о какой-то скорости чтения, но что это за скорость? Скорость последовательного и случайного доступа в случае HDD — две очень большие разницы. В результате ремапа последовательный доступ перестаёт быть последовательным, отсюда и тормоза, которые Вы наблюдаете.
codemaster256 писал(а): ↑13.09.2016 02:29Запускаем программу, указываем ей логгировать сектора чтение которых выше определённого порога (например мной же указанные 200ms), прогоняем например первые 100 мегабайт где есть плохие области. Сохраняем лог, перезапускаем программу и снова прогоняем эти же 100 мегабайт - в итоге в логах будут указаны одни и те же сектора. Я проверял. Вот такие сектора я и хочу исключить как бедовые
Если у Вас уже есть сохранённый лог, то за чем дело стало?
codemaster256 писал(а): ↑13.09.2016 02:29Вы поймите, та задержка о которой говорите вы несущественна по сравнению с задержкой при скорости чтения плохого сектора.
Не понимаю. Не понимаю, на каком основании Вы решаете, что сектор «плохой». Контроллеру диска это лучше знать. Он такие сектора ремапит. Если он этого не делает, значит проблем с чтением нет, причина задержки в чём-то другом. Подробности надо смотреть в SMART, а гадать о наличии или отсутствии ошибок по косвенным параметрам бессмысленно.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 1139
- ОС: Fedora
Re: научите помечать трудночитаемые сектора как BADы
Плохая новость в том, что между пластинами диска и его интерфейсом есть контроллер. И что он делает, и как на самом деле организован диск - не знает никто кроме производителя. Авторы Виктории тут не исключение, и молиться на них глупо.
Спасибо сказали:
-
- Сообщения: 1354
Re: научите помечать трудночитаемые сектора как BADы
codemaster256
самая дубовая модификация -- добавить отдельную опцию для задания времени таймаута, по ней устанавливать test_func на свою функцию, скопировать функцию test_ro(), частично изменить ее, добавив вызовы clock_gettime до и после чтения группы блоков, если время окажется больше таймаута*число_блоков, вычислять медленный блок чтением по одному.
Кстати, подобный код для сбоев по чтению уже есть в конце цикла:
P.S. Добавлять вычисление времени чтения нужно в do_read(), возвращая это значение одним из параметров, поскольку do_read() сама использует задержки по завершении вызова read().
самая дубовая модификация -- добавить отдельную опцию для задания времени таймаута, по ней устанавливать test_func на свою функцию, скопировать функцию test_ro(), частично изменить ее, добавив вызовы clock_gettime до и после чтения группы блоков, если время окажется больше таймаута*число_блоков, вычислять медленный блок чтением по одному.
Кстати, подобный код для сбоев по чтению уже есть в конце цикла:
Код: Выделить всё
try = blocks_at_once;
currently_testing = first_block;
num_blocks = last_block - 1;
...
while (currently_testing < last_block)
{
...
got = do_read (dev, blkbuf, try, block_size, currently_testing);
...
if (got == 0 && try == 1)
bb_count += bb_output(currently_testing++, READ_ERROR);
currently_testing += got;
if (got != try) {
try = 1;
if (recover_block == ~0U)
recover_block = currently_testing - got +
blocks_at_once;
continue;
} else if (currently_testing == recover_block) {
try = blocks_at_once;
recover_block = ~0;
}
}
P.S. Добавлять вычисление времени чтения нужно в do_read(), возвращая это значение одним из параметров, поскольку do_read() сама использует задержки по завершении вызова read().
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
но ведь в логе этом много секторов, их сотни и даже больше) вручную внести несколько сотен секторов в badblock-list очень сложно и долго,да и непрактично. Ведь это не единственный винчестер на котором может понадобиться данная задача
bormant писал(а): ↑14.09.2016 11:32самая дубовая модификация -- добавить отдельную опцию для задания времени таймаута, по ней устанавливать test_func на свою функцию, скопировать функцию test_ro(), частично изменить ее, добавив вызовы clock_gettime до и после чтения группы блоков, если время окажется больше таймаута*число_блоков, вычислять медленный блок чтением по одному.
спасибо, наконец то нашёлся человек который понял чего я хочу) я так понимаю вы сейчас показали кусок кода из исходников программы badblocks ?
-
- Сообщения: 1144
- Статус: Slacker!
- ОС: Slackware64-current
Re: научите помечать трудночитаемые сектора как BADы
Если кандидатов на ремап уже сотни, дело дрянь. А список "бэдов" генерится badblocks (см. man badblocks), ключик -o, это простой текстовый файл, в нем по одному блоку на строку.
-
- Модератор
- Сообщения: 21169
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: научите помечать трудночитаемые сектора как BADы
codemaster256 писал(а): ↑15.09.2016 00:58но ведь в логе этом много секторов, их сотни и даже больше) вручную внести несколько сотен секторов в badblock-list очень сложно и долго,да и непрактично.
Конечно не надо вручную. На то есть sed (awk, perl — по вкусу). К тому же надо будет пересчитать смещение.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
насколько я понимаю в программе badblocks можно задавать число блоков которые прочитываются за один раз, но даже 1 блок такой это определённое количество секторов, получается нужно будет не целый блок отсеивать а медленный сектор в этом блоке, но я бы пожертвовал скоростью выполнения утилиты лишь бы она прошлась по всем секторам )
терпимо, самих бед-секторов очень очень много, но диск не посыпался везде, он где то в середине посыпался и немного вначале. я поставил Линукс в несколько разделов - в начальной области у меня корень, дальше где диск живой у меня /ush/share, ещё дальше папка /home, в таком виде у меня Линукс живёт уже два года, но когда обращается к плохим секторам происходит задержка при чтении. Конечно я не спорю что мне правильно подсказывают что скорость может падать не из за того что сектор плохой а потому что он заремаплен, но для меня нет разницы - хоть плохочитаемый, хоть заремапленный я хочу исключить такие сектора вообще из файловой системы, чтобы диск работал максимально быстро.
Bizdelnick писал(а): ↑15.09.2016 01:02codemaster256 писал(а): ↑15.09.2016 00:58но ведь в логе этом много секторов, их сотни и даже больше) вручную внести несколько сотен секторов в badblock-list очень сложно и долго,да и непрактично.
Конечно не надо вручную. На то есть sed (awk, perl — по вкусу). К тому же надо будет пересчитать смещение.
но ведь лог программы Виктория отличается от формата badblock-list, разве sed решит автоматически эту проблему?
-
- Сообщения: 1144
- Статус: Slacker!
- ОС: Slackware64-current
Re: научите помечать трудночитаемые сектора как BADы
Почему не решит? Sed и awk как раз и придуманы для операций над текстами. И да, в Victoria разве нельзя управлять форматом логов?
-
- Сообщения: 10
- ОС: Arch Linux
Re: научите помечать трудночитаемые сектора как BADы
за формат логов пока не знаю, не интересовался. Сама идея создать лог секторов чтение которых дольше чем я задам конечно неплохая, потом действительно можно все эти сектора перенести в badblock-list, правда я никогда не пользовался утилитами sed и awk, их ещё освоить надо. Но если в будущем понадобится сделать подобное на другом диске - это снова куча забот. Честно говоря выход из ситуации вижу в пересборке утилиты badblocks по рекомендациям, предложенным выше bormant
-
- Сообщения: 497
- ОС: Gentoo Linux
Re: научите помечать трудночитаемые сектора как BADы
А в linux нет утилиты, способной сделать тоже такой лог как и виктория? Самому сейчас нужно. Накатал скрипт, МЭДЛЕННО делает. Винды нету!
-
- Сообщения: 206
Re: научите помечать трудночитаемые сектора как BADы
на поркуа вообще винда когда victoria 3.52 работает из под дос, на крайняк можно скачать любой live-cd где есть и 3,52 и win-pe с викторией 4,47-4,48
-
- Сообщения: 497
- ОС: Gentoo Linux
Re: научите помечать трудночитаемые сектора как BADы
Воспользовался утилитой hdrecover: после неё на удивление все секторы стали нормально читаемы!
Спасибо сказали:
-
- Сообщения: 1
- ОС: gentoo
Re: научите помечать трудночитаемые сектора как BADы
whdd похожа на викторию, рисует через ncurses, вроде работает (окончания еще не дождался), но это не точно 

-
- Сообщения: 1
Re: научите помечать трудночитаемые сектора как BADы
Уважаемый codemaster256, вы нашли решение этой задачи? Не поделитесь?