|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
|
Восстановление bad секторов30.03.2022, 22:34. Показов 2983. Ответов 12
Может кто поможет, нужно найти код, выполняющий следующее:
1 - находит бэд блоки на HDD и SSD 2 - восстанавливает эти плохие сектора Причем нужно использовать "многократное чтение", а что означает "восстановить" не имею представления ![]() Сам искать информацию пытался, но кроме кучи неработающего кода и ссылок на WMI ничего не нашел
0
|
|
| 30.03.2022, 22:34 | |
|
Ответы с готовыми решениями:
12
Как получить список bad секторов на диске?
300+ (bad) секторов |
|
6 / 6 / 3
Регистрация: 24.03.2022
Сообщений: 22
|
||||||
| 31.03.2022, 01:43 | ||||||
Сообщение было отмечено matthews как решение
Решение
matthews, думаю, единственная загвоздка как восстанавливать,
с этим не сталкивался, но по всей видимости нужно переназначать блок из смарт-информации диска (как это делать нужно интересоваться) лично я занимался уничтожением данных, брал по пятьсот двенадцать байт заполнял значением или опустошал нулями. У меня есть программа на ассемблере (MS-Dos), если нужен исходный код - подарю, я его уже дарил китайцам, но что-то этот сайт пропал, он назывался "pudn.com" там можно было обмениваться кодом на код, мне нужно было что-то там, а они достаточно ушлые и ничего не принимали, ну я подумал, вот, интересно, и - взяли. Все довольны! Ну тебе конечно нужна программа под Windows (разумеется), тогда можно так читать как обычный файл, например:
1
|
||||||
|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
|
| 31.03.2022, 16:59 [ТС] | |
|
Спасибо огромное, ассемблера мне и так хватает)
Я как раз и пытаюсь реализовать все с помощью чтения, однако мне не совсем понятно, что делать с записью Т.е. я должен прочесть сектор в какой-то буффер,а далее с этого буффера записать значение обратно в сектор? Возможно ли при этом сохранить целостность данных в секторе? Узнавал по поводу восстановления, нужно добиться remap-а сектора, что-то на подобие функции из Victoria HDD. Т.е. мы читаем сектор огромное кол-во раз,чтобы привод обнаружил бэд сектор, тогда он сам чудо образом "лечит" его. Теперь мой главный вопрос - как пройтись по всем секторам носителя, знаю, что с помощью цикла, но не могу понять, какое условие ставить и какое число итераций. По факту мне нужно реализовать аналог CHKDSK на винде, это мой первый проект по системному программированию, поэтому могу задавать кучу неккоректных и глупых вопросов, за что и дико извиняюсь. Заранее спасибо за ответы!
0
|
|
|
|
||
| 01.04.2022, 09:26 | ||
|
подобное ПО предполагает знания файловой системы, а не разбора функций CreateFile\ReadFile\WritrFile. начните с чего-нить попроще.
1
|
||
|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
|||||||
| 01.04.2022, 17:15 [ТС] | |||||||
|
_lunar_, а вам не кажется, что тема создана не для высказывания своего личного мнения, а для оказания помощи человеку?) Несомненно я рад, что такой профессионал дела, как вы, дал мне совет, но если вам нечего изложить по данной теме, не могли бы вы просто не засорять топик :*
Я лезу в эту тему не из-за нечего делать, а по нужде. Для общего развития конечно я бы начал с чего-то попроще. Добавлено через 19 минут Если да, то еще вопрос ![]() Если появится ошибка, означает ли это, что бэдблок обнаружен? Опять же, если да, то как мне многократно прочесть именно его? И вообще, можно ли обойтись без записи в сектор, для выяснения нормальный это сектор или поврежденный?
0
|
|||||||
|
|
|||||||||
| 01.04.2022, 19:12 | |||||||||
|
это тоже самое, что повар начнёт собирать космический корабль. действительно, а что такого? у него же есть огромное желание построить оный.. я вам дал всё, что нужно. или вам сюда маны переписать? в гугле забанили? в untfs.dll есть класс NTFS_BAD_CLUSTER_FILE со следующими функциями
$Bad
1
|
|||||||||
|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
|
| 01.04.2022, 19:24 [ТС] | |
|
_lunar_, и как интересно вы поняли, что я не имею представления, о том что нужно сделать?
Если вы, сия, господь железа, почему же просто не взять и ответить на мои выше поставленные вопросы?) И мне вот интересно, что вы дали? Совет погуглить? Браво, только бревно не поймет, что для изучения вопроса нужно поискать инфу в интернете, чем я и занимался перед написанием этой темы. Мой деревянный друг, искренне соболезную, что ваше ЧСВ и попытки показать себя знающим тему, не дают вам просто взять и помочь мне. Надеюсь вы когда-нибудь окажетесь в подобной ситуации в реальной жизни. Удачи и спасибо за ответы! благодаря вам, я узнал, что такое гугл, вау, потрясающе Добавлено через 1 минуту _lunar_, Так, видимо я не дочитал ваш ответ до конца, поэтому реально извиняюсь, вы дали мне хорошую информацию.
0
|
|
|
6 / 6 / 3
Регистрация: 24.03.2022
Сообщений: 22
|
||||||
| 01.04.2022, 23:17 | ||||||
Сообщение было отмечено matthews как решение
Решение
Я смастерил набросок, думаю он поможет осмотреться.
Программу лучше всего запускать по-шагово, только! Кликните здесь для просмотра всего текста
2
|
||||||
|
20 / 9 / 2
Регистрация: 30.05.2018
Сообщений: 56
|
||
| 02.04.2022, 17:59 | ||
|
А для более новых винтов - битые сектора ремапятся на уровне винта без участия винды. Тут надо копать в сторону Extended Comprehensive SMART Error log…
1
|
||
|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
||
| 03.04.2022, 19:48 [ТС] | ||
|
JmpShort, Спасибо, буду отталкиваться от вашего ответа.
Есть один нюанс ,функция
0
|
||
|
6 / 6 / 3
Регистрация: 24.03.2022
Сообщений: 22
|
||
| 04.04.2022, 13:22 | ||
|
Если помните, по умолчания студия включает "UNICODE". Поэтому, чтобы проект - как-бы был универсален, вся эта путаница с макро-определениями. Вот и сейчас, возможно я вас запутал. Одним словом - все, что относится к строкам и начинается с "LP" можно назвать "char" (несколько грубо). Добавлю, самый интересный код обозначен в while(Размер>0) - отмечен кириллическим комментарием. Не забывайте, программу нужно изучать под отладчиком, вывод показан относительно, он не годится для проекта на выставку.
1
|
||
|
|
||
| 04.04.2022, 14:10 | ||
|
LP это вообще совсем о другом. L в данном случае это всего лишь макрос для совместимости древних программ - LPVOID и PVOID одно и тоже в современном программировании.P это pointer (указатель), поэтому это не char, а char *
3
|
||
|
0 / 0 / 0
Регистрация: 30.03.2022
Сообщений: 12
|
||||||
| 06.04.2022, 00:24 [ТС] | ||||||
|
JmpShort, У меня возникли проблемы с функцией WriteFile(), она просто не выполняется возвращая 0.
Может я что-то напутал с атрибутами открытия файла? GetLastError возвращает 5. Вот открытие файла:
Запускаю все от имени администратора, привилегии подняты. Причины отказа в доступе не вижу
0
|
||||||
| 06.04.2022, 00:24 | |
|
Помогаю со студенческими работами здесь
13
Проверка на наличие BAD-секторов Возможно ли зависания из-за BAD-секторов? Большая разница в количестве bad секторов Восстановление MBR секторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|