Определить, какие секторы жесткого диска занимает данный файл?

849
HighCommander4

Есть ли способ узнать, какие сектора жесткого диска занимает данный файл?

Файловая система ext3 или ext4 в Linux.

2
Конечно, есть способ, но это не совсем то, что можно назвать «легким». Что вы пытаетесь достичь? msw 14 лет назад 0
Я выполняю операцию, которая требует чтения большого количества входных данных, и я хочу точно определить причину некоторых аномалий в производительности чтения. Я хочу знать, есть ли корреляция между производительностью чтения и физическим расположением входных файлов на диске. Для этого необходимо знать, какова физическая структура входных файлов на диске. HighCommander4 14 лет назад 0

1 ответ на вопрос

2
Slartibartfast

Если вы ищете блоки для файла /tmp/squiggle/smurf.tgz, в / tmp / filesystem, смонтированном из / dev / sdg4, введите:

# debugfs /dev/sdg4 > bmap /squiggle/smurf.tgz 0 > bmap /squiggle/smurf.tgz 1 > bmap /squiggle/smurf.tgz 2 > bmap /squiggle/smurf.tgz 3 .... 

Это то, что вы ищете?

Да, похоже, это то, что я ищу. У меня есть пара дополнительных вопросов: 1) Есть ли способ сделать это без привилегий root? 2) Может ли это быть написано в сценарии, или эти цифры могут быть запрошены программно? HighCommander4 14 лет назад 0
Это должно быть сценарием. Я бы сказал, что подключение ваших команд к stdin, вероятно, поможет. Будьте очень осторожны с этим, поскольку вы можете нанести МНОГО повреждения файловой системе с помощью debugfs. Что касается того, чтобы делать это без привилегий root, я не знаю, но я подозреваю, что нет. Файловая система предназначена для абстракции, которая скрывает эти детали от пользователя. Slartibartfast 14 лет назад 0