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

Я dd_rescue'd жесткий диск, и я знаю, где сбойные блоки. У меня все еще есть диск со мной, таким образом, я могу получить любую информацию, необходимую от УМНОГО или fdisk.

Я хотел бы знать, возможно ли видеть, физически, где эти сбойные блоки расположены. Я услышал о секторах, дорожках, цилиндры (по крайней мере, в старых дисках), но я не знаю точно, как диск организован, или математика, вовлеченная в отображение блока к физическому сектору. Я уверен, что это будет хорошим местом для запуска, и я буду искать его, как только я могу, но так как это - ситуация, которую я имею теперь, я задаю вопрос заранее, таким образом, любой может помогать мне раньше.

Идеально, у меня было бы (литеральное) изображение кругового диска, и я смогу точно определить, где, в диске, скажем, блок № 1000.

Действительно ли это выполнимо? Вероятно, не в дисках с выравнивающими износ методами, но по крайней мере на внешнем жестком диске, такими как Western Digital Caviar Green, которая является той, с которой я смотрю на, по 40k сбойным блокам.

Это - академический вопрос. Этому диску больше не будут, очевидно, доверять, но я хотел бы смочь видеть, существует ли физический шаблон.

6
задан 9 October 2014 в 03:27
1 ответ

Это действительно невозможно с современными дисками.

В старые времена диски были, по сути, немыми устройствами (упрощающими, но придерживающимися меня). Система запрашивала данные конкретного цилиндра (физически кольцо на диске), головки (2 головки на блюдечке) и сектора (в каждом кольце был сектор, пронумерованный от 1 до чего угодно). Контроллер велел диску переместиться в такое и такое место расположения CHS и прочитать или записать данные. Вы знали, что цилиндр 0 находится вблизи края диска, а самый высокий цилиндр - у корня. Действительно, древние диски имели физическую метку, где в каждом цилиндре находился сектор 1, так что можно было открыть диск и почти увидеть расположение данных.

Сегодняшние диски имеют постоянные форматирования, которые включают в себя адресную информацию, истинные физические адреса, а не логические, представленные контроллеру. Когда у диска запрашивается перемещение головки на большой адрес блока (LBA) 0, он привязывается к физическому сектору (возможно, к реальному первому сектору, или к ближайшему сектору, если только он не был перемещен). Но диск предсказывает, где будет находиться этот сектор, на основе алгоритма угадывания. Затем он ждет, когда следующий сектор пролетит под головой, читая адрес - если он угадал неправильно, он подстраивается, если просто угадал правильно, то он читает/записывает сектор. Этот процесс угадывания необходим, потому что диск физически расширяется по мере нагревания, в результате чего сектор находится в другом месте, когда диск теплый или холодный. Кроме того, в каждом цилиндре нет последовательного числа секторов. Старые диски CHS физически имели сектора разного размера из-за системы адресации. Современные диски имеют одинаковые сектора размера, потому что они просто последовательно нумеруются от 0 до любого другого.

Чтобы дополнить вопрос, так как диск обнаруживает сектора, которые могут или действительно имеют проблемы, он их бесшумно воспроизводит (SMART показывает, но это не ошибка для операционной системы хоста, пока она не станет нечитаемой - или SCSI дискам можно сказать, чтобы они уведомили операционную систему хоста). Поэтому логические LBA, которые вы видите, могут не соответствовать физическим адресам, встроенным в диск

.
9
ответ дан 3 December 2019 в 00:18

Теги

Похожие вопросы