Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Файл по номеру сектора  (Прочитано 3268 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн yurik11

  • Автор темы
  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Файл по номеру сектора
« : 07 Января 2014, 12:03:25 »
Проверил свой диск с помощью  badblocks -v -s
Узнал номера битых секторов. В GParted определил, что они находятся на диске с ext4, куда смонтирован /home. Теперь хочу узнать к каким файлам эти сектора принадлежат. Поиск в сети результатов не дал, хотя очевидно эту информацию в файловая система содержит.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #1 : 07 Января 2014, 12:07:59 »
бывает БП.
Wars ~.o

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #2 : 07 Января 2014, 15:01:14 »
Для ext2/ext3/ext4 можно попробовать debugfs, но просмотрев сейчас по-диагонали документацию к этой утилите я не нашёл соответствующей команды.
« Последнее редактирование: 07 Января 2014, 21:05:01 от Self-Perfection »
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн yurik11

  • Автор темы
  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #3 : 07 Января 2014, 18:08:30 »
Спасибо за помощь. debugfs похоже решает эту задачу в 2 хода:
1. с помощью icheck по номеру сектора находим номер инода
2. с помощью ncheck по номеру инода находим имя файла.
Осталось разобраться с началом отсчета и размером сектора для icheck. Начало отсчета похоже - номер первого сектора логического диска, т.е. это число надо отнять от номера сектора физического диска. GParted считает размером сектора 512 байт, badblocks - 4 к. Думаю разберусь методом тыка, что надо скормить  icheck.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #4 : 09 Января 2014, 12:52:33 »
Размер сектора зависит от физических характеристик диска. По-сути сколько байт читается за одно обращение, обычно это было 512 байт, на больших дисках стали использовать 4Кбайта. Так что странно у вас как-то получается...

Оффлайн _angus_

  • Активист
  • *
  • Сообщений: 305
  • data recovery tech
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #5 : 09 Января 2014, 19:25:00 »
yurik11,
Вы не путайте сектор с кластером. Сектор (логический) -- это то, что минимально можно прочесть с диска "снаружи" (через интерфейс). Например, если диск имеет физический сектор 4096, а логический -- 512, то свой размер (число LBA) диск указывает в 512-байтных секторах. И тогда все _секторные_ смещения (например, смещение начала раздела и длина раздела в таблице) будут указаны именно в 512-байтовых секторах. Отсюда и проблемы с производительностью при невыравнивании разделов по границе физического сектора, -- диск-то всё равно отдаст или запишет то, что надо вам, с 512-байтовой дискретностью, но вот для этого ему при невыровненности придётся прочесть или записать два физических сектора. но это лирика. А файловая система оперирует значением кластера, размер которого прописывается в загрузочной записи файловой системы (т.е. у линуксовых систем -- суперблок), и все операции и все значения, касающиеся файлов, указываются в кластерах. То есть кластер есть некое количество _логических_ секторов, ну обычно 8, хотя всякое бывает. А с тем, чему равен физический сектор диска, размер кластера никак не связан.

Оффлайн yurik11

  • Автор темы
  • Любитель
  • *
  • Сообщений: 82
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #6 : 11 Января 2014, 21:08:38 »
Собственно диск дает информацию о размере сектора 512 байт.
(Нажмите, чтобы показать/скрыть)
Но badblocks при запуске без параметра -b (размер блока) в качестве размера берет 1024 байта и выдает примерно такой результат.
(Нажмите, чтобы показать/скрыть)

Видно, что ошибки сгруппированы по 4 k секторам. А виноват в этом сам диск или режим его чтения системой для меня загадка.

Оффлайн _angus_

  • Активист
  • *
  • Сообщений: 305
  • data recovery tech
    • Просмотр профиля
Re: Файл по номеру сектора
« Ответ #7 : 13 Января 2014, 03:07:05 »
У вашего диска (barracuda 7200.10) физический сектор 512 байт. Ошибки группами по 8 секторов именно потому, что система при работе ведёт чтение-запись на диск с дискретностью один кластер, который обычно равен 4096 байт (8 секторов вашего диска). Поэтому, например, если у вас диск неисправен и не может потом прочитать, что записал, то в реальном случае такие группы и будут возникать. Пишется-то всё равно кластер. Вот всякие низкоуровневые утилиты умеют ображаться к отдельному сектору на диске, но не драйвер файловой системы, для того только кластер существует. А "блоки" по килобайту -- это тоже такое логическое понятие, и у fdisk они тоже встречаются, да много где, но опять же -- с физической структурой диска это не имеет ничего общего.

 

Страница сгенерирована за 0.033 секунд. Запросов: 25.