Как узнать lba файла

Обновлено: 03.07.2024

-------
Восстановление информации и Ремонт HDD на АПК РС3000-UDMA + DE RE, PC3000-Express + DataExtractor + SSD Edition.

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: Intel i7-7700k
Материнская плата: ASUS STRIX Z270F GAMING
Память: KINGSTON HyperX Predator DDR4 3000MHz 16GB
HDD: SSD SAMSUNG 960 Pro 512GB M.2 PCIe, SAMSUNG HD502IJ
Видеокарта: ASUS GeForce GTX 1070 8GB GDDR5 256-bit DirectCU III Strix Gaming OC (STRIX-GTX1070-O8G-GAMING)
Звук: ASUS Xonar DX Audio Device
Блок питания: Chieftec A-80 CTG-650C
CD/DVD: LITE-ON iHAS124
Монитор: DELL UltraSharp U2414H
ОС: Microsoft Windows 10 Corporate x64

-------
Восстановление информации и Ремонт HDD на АПК РС3000-UDMA + DE RE, PC3000-Express + DataExtractor + SSD Edition.

Victoria только бэды ловит, но хард не разбивает…

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

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

Как узнать lba файла

Конфигурация компьютера
Процессор: Intel® Core™ i7-4790 Processor (8M Cache, up to 4.00 GHz) - FCLGA1150
Материнская плата: ASUS - Z97-PRO(Wi-Fi ac)
Память: Kingston 4 x 8GB Module - DDR3 1600MHz - HX318C10F/8
HDD: Intel® SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Видеокарта: Asus GeForce GTX 760 1085MHz 4GB PCI-Express 3.0 HDMI STRIKER
Звук: Focusrite Scarlett 6i6
Блок питания: Corsair 850W RM850 RM Series Power Supply
ОС: Windows 10 Pro (x64)
Hard drive Sentinel обнаружил 5 bad-секторов на диске WD-700.
Как же узнать, какие файлы лежат в bad-секторах?
в сети ничего грамотного не нашёл. Невнятно описывали работу через WinHex и т.д.
Спасибо за помошь
Конфигурация компьютера
Процессор: P IV 2600 512/800/S478
Материнская плата: ASUS P4P800 Deluxe rev.A2
Память: DDR 2048Mb PC3200: 2 x Kingston Kit of 2_KVR400X64C3AK2/1G 400МГц (512MB 64M x 64 -Bit x 2 pcs.)
HDD: WD5000ABYS 16Mb/7500/SATA300
Видеокарта: ATi Radeon 3650 512Mb TV OUT DVI
Звук: SoundMAX-integr.
Блок питания: Termaltake Purepower RX 550A W0143 550W, 01.2008г.
CD/DVD: RW NEC ND-4571A
Монитор: Nokia 710C (iiyama HM903DTA (Vision Master Pro 454) 19")
ОС: Windows 7 SP1 Ultimate Rus; WinXP SP3+ Prof Rus
Индекс производительности Windows: 4,1
Прочее: +(4-6) разномастных SATA/IDE-HDD (80-320Gb)

-------
Из двух зол, не выбирают ни одного!

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: Intel® Core™ i7-4790 Processor (8M Cache, up to 4.00 GHz) - FCLGA1150
Материнская плата: ASUS - Z97-PRO(Wi-Fi ac)
Память: Kingston 4 x 8GB Module - DDR3 1600MHz - HX318C10F/8
HDD: Intel® SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Видеокарта: Asus GeForce GTX 760 1085MHz 4GB PCI-Express 3.0 HDMI STRIKER
Звук: Focusrite Scarlett 6i6
Блок питания: Corsair 850W RM850 RM Series Power Supply
ОС: Windows 10 Pro (x64)
Конфигурация компьютера
Процессор: P IV 2600 512/800/S478
Материнская плата: ASUS P4P800 Deluxe rev.A2
Память: DDR 2048Mb PC3200: 2 x Kingston Kit of 2_KVR400X64C3AK2/1G 400МГц (512MB 64M x 64 -Bit x 2 pcs.)
HDD: WD5000ABYS 16Mb/7500/SATA300
Видеокарта: ATi Radeon 3650 512Mb TV OUT DVI
Звук: SoundMAX-integr.
Блок питания: Termaltake Purepower RX 550A W0143 550W, 01.2008г.
CD/DVD: RW NEC ND-4571A
Монитор: Nokia 710C (iiyama HM903DTA (Vision Master Pro 454) 19")
ОС: Windows 7 SP1 Ultimate Rus; WinXP SP3+ Prof Rus
Индекс производительности Windows: 4,1
Прочее: +(4-6) разномастных SATA/IDE-HDD (80-320Gb)

- запустите с LiveCD.

-------
Из двух зол, не выбирают ни одного!

Конфигурация компьютера
Процессор: Intel® Core™ i7-4790 Processor (8M Cache, up to 4.00 GHz) - FCLGA1150
Материнская плата: ASUS - Z97-PRO(Wi-Fi ac)
Память: Kingston 4 x 8GB Module - DDR3 1600MHz - HX318C10F/8
HDD: Intel® SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Видеокарта: Asus GeForce GTX 760 1085MHz 4GB PCI-Express 3.0 HDMI STRIKER
Звук: Focusrite Scarlett 6i6
Блок питания: Corsair 850W RM850 RM Series Power Supply
ОС: Windows 10 Pro (x64)

есть ли грамотно описаное и универсальное решение под Windows без танцев с бубном livecd и т.д.?
Спасибо

Например с WinHex

Если файловая система NTFS и он цела, то просто --- NFI.exe

Хотите установить --- какой файл битый, чтобы потом его заменить/удалить или ещё чего с ним сделать…
Для этого определите LBA проблемного сектора. Пусть, для примера это сектор 865864250 --- у Вас конечно другой будет. Здесь один тонкий момент --- секторы считаются не от начала харда, а от начала тома…

cmd
nfi.exe drive-letter logical-sector-number

drive-letter --- буква раздела. Переберите все разделы --- сектор (кластер должен быть на одном из разделов).
где logical-sector-number --- номер проблемного сектора от начала тома.

Вот так примерно
nfi.exe X: 865864250

Конфигурация компьютера
Процессор: Intel® Core™ i7-4790 Processor (8M Cache, up to 4.00 GHz) - FCLGA1150
Материнская плата: ASUS - Z97-PRO(Wi-Fi ac)
Память: Kingston 4 x 8GB Module - DDR3 1600MHz - HX318C10F/8
HDD: Intel® SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Видеокарта: Asus GeForce GTX 760 1085MHz 4GB PCI-Express 3.0 HDMI STRIKER
Звук: Focusrite Scarlett 6i6
Блок питания: Corsair 850W RM850 RM Series Power Supply
ОС: Windows 10 Pro (x64)
Спасибо, дорогой Tau_0, но чем и как определить LBA проблемного сектора?
Не понятна последовательность.
Не разобраться.
Конфигурация компьютера
Процессор: i7 3770k
Материнская плата: Asus P8Z77-V LE
Память: 4x4Gb ddr3 1333
HDD: SAMSUNG HD321KJ+WDC WD5000AACS
Видеокарта: intel hd 4000
Блок питания: Chieftech 600W CFT-600-14CS 2012г
CD/DVD: PIONEER DVR-216D SATA
Монитор: Samsung 961 BF

Да тут проще простого…

Утилитой Victoria fo Windows 4.46b, а можно и HDDScan взять, определяете LBA сбойных блоков секторов. В блоке по умолчанию 256 секторов --- это многовато будет. Поэтому затем выставляете Block Size (коэффициент блокирования) равным одному сектору. Секторы у Вас как на ладоне --- если только их не слишком много, то дальше совсем просто.

Берёте дисковый редактор, --- можно взять WinHex, но DMDE лучше подходит. И смотрите --- в какой том (диапазон) попадает сбойный сектор.

Как Victoria, так и HDDScan выдаст бэды, считая их от начала харда, а чтобы найти относительно начала тома, то делаете такую арифметику:
LBABadSector – StartLBA_Тома = Lba_Сектора_относительно_Начала_Тома.

Напускаете на Том NFI.ехе и имя проблемного файла у Вас в кармане…

Если плохо понятно, то приведите скрин DMDE и покажите сбойные секторы --- файлы вычислим (если сбои в файлах)…

Как узнать, какой файл лежит в известном секторе диска

При обнаружении bad -секторов программами типа Victoria будет весьма полезно узнать, какие именно файлы записаны в поврежденных секторах. Сопоставление принадлежности проблемного сектора конкретному объекту файловой системы также может пригодится при поиске содержащего строку файла, обнаруженную в секторе в процессе анализа дампа диска. Задача кажется сложной, на самом деле всё очень даже просто, если под рукой у вас имеется утилита NFI , входящая в состав пакета Sysinternals Suite.

Предположим, что при сканировании диска той же Victoria вы обнаружили bad -блок. Чтобы получить его номер, наведите на него мышку.

Victoria

В нашем примере это 14822144. Теперь это значение нужно скормить утилите NFI , правда, здесь есть одна маленькая проблема. Помимо номера блока в качестве обязательного аргумента нужно указать еще и букву логического раздела, а Victoria прямо не сообщает, в каком томе был обнаружен проблемный сектор. Зато она показывает начальные и конечные номера секторов, и это будет нашей подсказкой.

Переключитесь в Victoria в раздел «Редактор» и нажмите кнопку «Таблица разделов». Слева тут же появится таблица, в которой будут перечислены все логические разделы на сканируемом диске. Букву тома определяем по его размеру или имени, если Victoria его покажет.

Таблица разделов

Смотрим и видим следующую картину. Первый загрузочный том у нас начинается с сектора 2048 и заканчивается сектором 1126399 . Следующий том, определенный как системный, начинается с сектора 1126400 и заканчивается сектором 63895551 . Битый сектор же у нас имеет номер 14822144 .

Выполнив простейший арифметический подсчет, определяем, что блок находится на системном томе C.

Запустив командную строку от имени администратора переходим в папку с утилитой NFI.EXE и выполняем команду nfi.exe C 14822144 .

NFI

В результате получаем лежащий в проблемном секторе файл — pagefile.sys .

Как видите, ничего запредельно сложного, сомнения насчет расположения файла в данном секторе могут возникнуть, если только размер обнаруженного файла сопоставим с размером сектора. А всё потому, что Victoria работает с секторами всего диска, а утилита NFI.EXE — с секторами томов. Поэтому знать границы разделов не помешает.

Что касается сопоставления известного файла сектору, то тут еще всё проще, номер блока в два счета определит бесплатный шестнадцатеричный редактор WinHex.

Запустив приложение, выберите в меню «Tools» опцию «Open Disk».

WinHex

И укажите в открывшемся окне том, в котором лежит файл.

Open Disk

Вот и всё, осталось только найти во встроенном файловом менеджере нужный файл, выделить его и посмотреть в левый нижний угол рабочего окна редактора.

Нужный файл

Там, в строке состояния будет указан порядковый номер сектора, содержащего интересующий вас объект.

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

Привет друзья! По правильному статью нужно было бы назвать так: - Как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria, но очень много пользователей задают вопрос именно так: - Как программой Victoria проверить только диск C:? (ведь операционная система находится на диске C: и если она зависает, значит искать сбойные сектора нужно именно на диске C: (часто ошибочное мнение - примеч. администратора)) Начнём с того, что программа Victoria видит пространство жёсткого диска в адресации LBA (Logical block addressing) — механизм адресации и доступа к блоку данных на жёстком диске. Простыми словами, суть LBA состоит в том, что каждый блок секторов на жёстком диске имеет свой номер - число, начиная с нуля (первый блок LBA=0, второй LBA=1 и т.д). При тестировании накопителя программа Victoria все адресное пространство жёсткого диска разбивает на условные участки (блоки одинаковой длины), размер одного блока равен 256-ти секторам. И вот нам с вами нужно определить, с какого именно номера блока секторов начинается диск (C:) и каким номером заканчивается, уже затем, зная нужные цифры, мы зададим в программе Victoria нужный диапазон сканирования. Если вам немного непонятно о чём идёт речь, то смотрите следующие скриншоты и всё поймёте. Итак, войдём в Управление дисками моего компьютера и видим три жёстких диска, подключенных к моему компьютеру, предлагаю для примера рассмотреть второй винчестер WD объёмом 500 Гб (разделы F:, G:, H:)



Запускаем программу Victoria. Выбираем начальную вкладку Standard . Если у Вас несколько жёстких дисков, то в правой части окна выделите левой кнопкой мыши нужный Вам жёсткий диск, я выберу жёсткий диск WDC WD5000AAKX (500 Гб) и выделю его.

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

Затем перехожу на вкладку Advanced и жму на кнопку View part data. Как видим, программа отобразила значение номеров всех начальных и конечных секторов разделов. Например, первым разделом идёт диск (F:), начинается он с блока секторов: 2048 ( Start LBA) и заканчивается блоком 247681023 ( End LBA) , а размер всего раздела составляет 118 GB.

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

Теперь жмём на кнопку Test

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

и задаём параметры сканирования диска (F:), то есть Start LBA выставляем 2048, а End LBA 247681023, затем жмём на кнопку Start, начинается сканирование на предмет сбойных секторов только раздела (F:).

Как программой Victoria проверить только диск C:. Или как определить значение начальных и конечных секторов разделов жёсткого диска в программе Victoria и AOMEI Partition Assistant

Друзья, если у вас новый ноутбук с жёстким диском стиля GPT, то программа Victoria может отобразить некорректно номера всех начальных и конечных секторов разделов, в этом случае можно воспользоваться программой AOMEI Partition Assistant Standard Edition.

К примеру возьмём жёсткий диск моего ноутбука и узнаем номера начальных и конечных секторов диска (C:).



Запускаем программу AOMEI Partition Assistant.

В главном окне программы выбираем диск C:, щёлкаем на нём правой кнопкой мыши и выбираем Свойства,

При ответе на этот вопрос U & L под названием: Какую команду я использую, чтобы увидеть начальный и конечный блок файла в файловой системе? Я попытался выяснить, возможно ли определить LBA файла, используя его индекс.

Мой ответ определил, что я мог бы использовать hdparm как один метод для нахождения LBA:

Но мне было любопытно, был ли какой-нибудь метод, использующий индекс файла, чтобы также получить LBA; без использования hdparm .

Я думаю , что может быть альтернативные методы , скрывающиеся в инструментах filefrag , stat , debugfs и , tune2fs но дразнить его ускользает меня.

Кто-нибудь может придумать альтернативы?

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

filefrag

Я подозреваю, что вы могли бы использовать инструмент, filefrag чтобы сделать это, в частности, используя результаты его -e переключения, возможно, выполнив несколько вычислений, чтобы добраться туда, с которыми я не очень знаком.

иноды

Еще один потенциальный метод, который, как я подозреваю, может иметь потенциал, - это использовать информацию об индексах файла, либо напрямую, либо с помощью сложной математики, которая плохо документирована во внутренних сетях.

Сначала мы узнаем инод файла. Мы можем сделать это, используя stat команду или ls -i .

С информацией инода в руке, теперь мы можем открыть файловую систему этот файл находится по использованию инструмента debugfs .

ПРИМЕЧАНИЕ. Для определения файловой системы, в которой находится файл, вы можете использовать команду df <filename> .

Теперь у нас есть информация о экстентах выше, и вот тут я теряюсь и не знаю, как действовать дальше.

Ссылки

filefrag и debugfs смещение отчета, выраженное в количестве блоков файловой системы.

Чтобы получить смещение в количестве 512 байт, вам необходимо умножить размер блока в 512 байт. На ext4 FS размер блока часто составляет 4 КБ, поэтому вам нужно умножить на 8.

С помощью filefrag вы также можете использовать -b 512 опцию для получения смещения в 512 байт.

Вы можете получить размер блока с помощью stats команды debugfs или с помощью GNU stat:

(или любой файл в этой файловой системе).

Обратите внимание, что hdparm это утилита для жесткого диска, она будет пытаться задать смещение на диске, а не блочное устройство, на котором монтируется файловая система (при условии, что блочное устройство каким-то образом находится на диске). Это работает только для разделов (путем добавления содержимого /sys/class/block/the-block-device/start к фактическому смещению) и устройств md RAID 1, но не для других типов блочных устройств с поддержкой диска, таких как устройства отображения устройств, другие уровни RAID, устройства dmraid, loop, nbd. Также обратите внимание, что более старые версии hdparm полагались на ioctl FIBMAP, который ограничен в том, на каком блочном устройстве он может использоваться, в то время как более новые версии используют FIEMAP как filefrag .

Так, например, если у вас есть ext2 файловая система /dev/sda1 .

Вы можете получить эти два сектора (но обратите внимание, что файл, вероятно, использует только его часть):

При обнаружении bad -секторов программами типа Victoria будет весьма полезно узнать, какие именно файлы записаны в поврежденных секторах. Сопоставление принадлежности проблемного сектора конкретному объекту файловой системы также может пригодится при поиске содержащего строку файла, обнаруженную в секторе в процессе анализа дампа диска. Задача кажется сложной, на самом деле всё очень даже просто, если под рукой у вас имеется утилита NFI , входящая в состав пакета Sysinternals Suite.

Предположим, что при сканировании диска той же Victoria вы обнаружили bad -блок. Чтобы получить его номер, наведите на него мышку.

Victoria

В нашем примере это 14822144. Теперь это значение нужно скормить утилите NFI , правда, здесь есть одна маленькая проблема. Помимо номера блока в качестве обязательного аргумента нужно указать еще и букву логического раздела, а Victoria прямо не сообщает, в каком томе был обнаружен проблемный сектор. Зато она показывает начальные и конечные номера секторов, и это будет нашей подсказкой.

Переключитесь в Victoria в раздел «Редактор» и нажмите кнопку «Таблица разделов». Слева тут же появится таблица, в которой будут перечислены все логические разделы на сканируемом диске. Букву тома определяем по его размеру или имени, если Victoria его покажет.

Таблица разделов

Смотрим и видим следующую картину. Первый загрузочный том у нас начинается с сектора 2048 и заканчивается сектором 1126399 . Следующий том, определенный как системный, начинается с сектора 1126400 и заканчивается сектором 63895551 . Битый сектор же у нас имеет номер 14822144 .

Выполнив простейший арифметический подсчет, определяем, что блок находится на системном томе C.

Запустив командную строку от имени администратора переходим в папку с утилитой NFI.EXE и выполняем команду nfi.exe C 14822144 .

NFI

В результате получаем лежащий в проблемном секторе файл — pagefile.sys .

Как видите, ничего запредельно сложного, сомнения насчет расположения файла в данном секторе могут возникнуть, если только размер обнаруженного файла сопоставим с размером сектора. А всё потому, что Victoria работает с секторами всего диска, а утилита NFI.EXE — с секторами томов. Поэтому знать границы разделов не помешает.

Что касается сопоставления известного файла сектору, то тут еще всё проще, номер блока в два счета определит бесплатный шестнадцатеричный редактор WinHex.

Запустив приложение, выберите в меню «Tools» опцию «Open Disk».

WinHex

И укажите в открывшемся окне том, в котором лежит файл.

Open Disk

Вот и всё, осталось только найти во встроенном файловом менеджере нужный файл, выделить его и посмотреть в левый нижний угол рабочего окна редактора.

Нужный файл

Там, в строке состояния будет указан порядковый номер сектора, содержащего интересующий вас объект.

Если я знаю путь к файлу, то какой консольной командой определить с какого сектора (в LBA-адресации) начинается этот файл? (т.е. нужен номер этого сектора).

в lba пересчитать — твоё домашнее задание

нет такой программы:

$ aptitude search filefrag
$

Чего стесняетесь-то, самое время продемонстрировать всю мощь linux-конвейера с его пайпами. Найти программу, которая выдает информацию о диске, какой-нибудь калькулятор командной строки.

Чего стесняетесь-то, самое время продемонстрировать

неа, от домашки увиливать у тебя не выйдет

Дальше мысль не идёт

не, всё-таки не сходится:

то есть начало у файла - сектор 23280, это 0x5AF0
смотрим, что пишут в MBR:

Надо заметить, что 0x7c60 и 0x7c5c - это совсем не 0x5AF0

Ну тогда другой вопрос - как узнать, какой файл соответствует LBA-сектору 31836

это адрес переменной


Здесь константа грузится в регистр bx,
а потом регистр bx отправляется на заполнение структуры Device Address Packet (DAP) по адресу [si+8]

там как раз говорится, что по смещению 8 нужно уложить Quad word
Starting logical block address, on the target device, of the data to be transferred. This is a 64 bit unsigned linear address.

Да, спасибо, в этой части получилось и адрес первого сектора файла я выяснил. Но проблема в том, что мой MBR читает начиная с другого сектора. Т.е. не этот файл.

а ещё порядок операндов, по твоему регистр кладётся в константу? :3

а, второе отменяется

А в этой памяти у нас лежит единица (то есть сектор следующий за MBR):

Что совсем неверно, так как устанавливал grub2 я командой

т.е. на файловую систему, а не в MBR-Gap


Ставить загрузчик в раздел - странное решение. Ведь тогда его кто-то должен загрузить из раздела, а биос этого не умеет.

Читайте также: