Сообщение из сектора 6

Обновлено: 18.05.2024

В первую очередь хочу сказать спасибо Charles Kludge и nonym4uk за помощь в написании этой статьи.

Итак, S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя.
Много пользователей знает что такое S.M.A.R.T., немного меньше даже знают как его получить. Но когда встает вопрос проанализировать полученную таблицу, обычно дело стопорится. В этой статье я приведу основные значения и их расшифровку

SMART производит наблюдение за основными характеристиками накопителя, каждая из которых получает оценку. Характеристики можно разбить на две группы:
параметры, отражающие процесс естественного старения жёсткого диска (число оборотов шпинделя, число премещений головок, количество циклов включения-выключения);
текущие параметры накопителя (высота головок над поверхностью диска, число переназначенных секторов, время поиска дорожки и количество ошибок поиска).

Технология SMART позволяет осуществлять:
мониторинг параметров состояния;
сканирование поверхности;
сканирование поверхности с автоматической заменой сомнительных секторов на надёжные.

Следует заметить, что технология SMART позволяет предсказывать выход устройства из строя в результате механических неисправностей, что составляет около 60 % причин, по которым винчестеры выходят из строя.
Предсказать последствия скачка напряжения или повреждения накопителя в результате удара SMART не способна.

Следует отметить, что накопители НЕ МОГУТ сами сообщать о своём состоянии посредством технологии SMART, для этого существуют специальные программы.

Любая программа, показывающая S.M.A.R.T. для каждого атрибута имеет несколько значений, разберемся сначала с ними - ID, Value, Worst, Threshold и RAW. Итак:

ID (Number) — собственно, сам индикатор атрибута. Номера стандартны для значений атрибутов, но например,из-за кривизны перевода один и тот же атрибут может называться по-разному, проще орентироваться по ID, логично?

Worst — наихудшее значение, которого достигало значение Value за всю жизнь винчестера. Измеряется тоже в уе. В процессе работы оно может уменьшаться либо оставаться неизменным. По нему тоже нельзя однозначно судить о здоровье атрибута, нужно сравнивать его с Threshold.

RAW (Data) — самый интересный, важный и нужный для оценки показатель. В большинстве случаев он содержит в себе не уе, а реальные значения, выражаемые в различных единицах измерения, напрямую говорящие о текущем состоянии диска. Основываясь именно на этом показателе, формируется значение Value (а вот по какому алгоритму оно формируется — это уже тайна производителя, покрытая мраком). Именно умение читать и анализировать поле RAW даёт возможность объективно оценить состояние винчестера.

Теперь перейдем непосредственно к самим атрибутам.

01 (01) Raw Read Error Rate - Частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Для всех дисков Seagate, Samsung (семейства F1 и более новые) и Fujitsu 2,5″ это — число внутренних коррекций данных, проведенных до выдачи в интерфейс, следовательно, на пугающе огромные цифры можно реагировать спокойно.

02 (02) Throughput Performance - Общая производительность диска. Если значение атрибута уменьшается, то велика вероятность, что с диском есть проблемы.

03 (03) Spin-Up Time - Время раскрутки пакета дисков из состояния покоя до рабочей скорости. Растет при износе механики (повышенное трение в подшипнике и т. п.), также может свидетельствовать о некачественном питании (например, просадке напряжения при старте диска).

04 (04) Start/Stop Count - Полное число циклов запуск-остановка шпинделя. У дисков некоторых производителей (например, Seagate) — счётчик включения режима энергосбережения. В поле raw value хранится общее количество запусков/остановок диска.

06 (06) Read Channel Margin - Запас канала чтения. Назначение этого атрибута не документировано. В современных накопителях не используется.

07 (07) Seek Error Rate - Частота ошибок при позиционировании блока магнитных головок. Чем их больше, тем хуже состояние механики и/или поверхности жёсткого диска. Также на значение параметра может повлиять перегрев и внешние вибрации (например, от соседних дисков в корзине).

08 (08) Seek Time Performance - Средняя производительность операции позиционирования магнитными головками. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.

09 (09) Power-On Hours (POH) - Число часов (минут, секунд — в зависимости от производителя), проведённых во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MTBF — mean time between failure).

10 (0А) Spin-Up Retry Count - Число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность неполадок с механической частью.

11 (0В) Recalibration Retries - Количество повторов запросов рекалибровки в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность проблем с механической частью.

12 (0С) Device Power Cycle Count - Количество полных циклов включения-выключения диска.

13 (0D) Soft Read Error Rate - Число ошибок при чтении, по вине программного обеспечения, которые не поддались исправлению. Все ошибки имеют не механическую природу и указывают лишь на неправильную размётку/взаимодействие с диском программ или операционной системы.

100(64) Erase/Program Cycles (для SSD) Общее количество циклов стирания/программирования для всей флэш-памяти за всё время ее существования. Твердотельный накопитель имеет ограничение на количество записей в него. Точные значения (ресурс) зависят от установленных микросхем флэш-памяти.
В накопителях Kingston — объём стёртого в гигабайтах.

103(67) Translation Table Rebuild (для SSD) Количество событий, когда внутренние таблицы адресов блоков были повреждены и впоследствии восстановлены. Raw-значение этого атрибута указывает фактическое количество событий.

170(AA) Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Иногда raw-значение содержит фактическое количество использованных резервных блоков.
170 атрибут связан с атрибутом 5, числом использованных резервных блоков.

173(AD) Wear Leveller Worst Case Erase Count (для SSD) Максимальное количество операций стирания, выполняемых для одного блока флэш-памяти.

174(AE) Unexpected Power Loss (для SSD) Число неожиданных отключений питания, когда питание было потеряно до получения команды на отключение диска. На жестком диске срок службы при таких отключениях намного меньше, чем при обычном отключении. На SSD существует риск потери внутренней таблицы состояний при неожиданном завершении работы.

177(B1) Wear Leveling Count (для SSD)
Wear Range Delta В зависимости от производителя, максимальное количество операций стирания, выполняемых для одного блока флэш-памяти[источник не указан 269 дней] или разница между максималоьно изношенными (больше всего раз записанными) и минимально изношенными (записанными наименьшее число раз) блоками[4].

179(B3) Used Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Raw-значение этого атрибута иногда содержит фактическое количество использованных резервных блоков.

180(B4) Unused Reserved Block Count (для SSD) Состояние пула резервных блоков. Значение атрибута показывает процент оставшегося пула. Raw-значение этого атрибута иногда содержит фактическое количество неиспользованных резервных блоков.

181(B5) Program Fail Count (для SSD) Число попыток, когда запись во флэш-память не удалась. Raw-значение показывает фактическое количество отказов.

182(B6) Erase Fail Count (для SSD) Количество сбоев операции стирания на флэш-памяти. Raw-значение показывает фактическое количество отказов.

184 (B8) End-to-End error - Назначение зависит от производителя.
У HP (часть технологии HP SMART IV) увеличивается в случае, когда после передачи данных через кэш-память чётность данных между хостом и жёстким диском не совпадает.
У Kinston это количество ошибок чтения из флэш-памяти.

185 (B9) Head Stability Стабильность головок (Western Digital).

187 (BB) Reported UNC Errors - Количество ошибок, которое накопитель сообщил хосту (интерфейсу компьютера) при любых операциях, обычно это ошибки данных на диске, которые не исправлены средствами ECC

189 (BD) High Fly Writes - содержит количество зафиксированных случаев записи при высоте "полета" головки выше рассчитанной, скорее всего, из-за внешних воздействий, например, вибрации.
Для того, чтобы сказать, почему происходят такие случаи, нужно уметь анализировать логи S.M.A.R.T., которые содержат специфичную для каждого производителя информацию

190 (BE) Airflow Temperature (WDC) - Температура воздуха внутри корпуса жёсткого диска. Для дисков Seagate рассчитывается по формуле (100 - HDA temperature). Для дисков Western Digital — (125 - HDA).

191 (BF) G-sense error rate - Количество ошибок, возникающих в результате ударных нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера.
Актуален для мобильных винчестеров. На дисках Samsung на него часто можно не обращать внимания, т.к. они могут иметь очень чувствительный датчик, который, образно говоря, реагирует чуть ли не на движение воздуха от крыльев пролетающей в одном помещении с диском мухой.
Вообще срабатывание датчика не является признаком удара. Может расти даже от позиционирования БМГ самим диском, особенно, если его не закрепить. Основное назначение датчика – прекратить операцию записи при вибрациях, чтобы избежать ошибок.

Функция с переменным числом параметров, как узнать кличество переданных параметров?
Добрый вечер, можно не использовать int n, а каким то другим способом узнать количество переданных.


Функция с переменным числом параметров находящая максимальный элемент в списке параметров
Написать функцию с переменным числом параметров:Максимальный из элементов в списке параметров.

Укажите соответствие между наборами параметров подпрограмм и названиями разновидностей параметров
Ниже представлены заголовки процедуры и функции, а также обращения к процедуре и функции. .

Обработка одномерного массива с использованием параметров и функций без параметров
Удалить максимальный из четных элементов. Пример: из массива A: 2 3 4 7 5 должен получиться .

192 (C0) Power-off retract count (Emergency Retry Count) - для разных винчестеров может содержать одну из следующих двух характеристик: либо суммарное количество парковок БМГ диска в аварийных ситуациях (по сигналу от вибродатчика, обрыву/понижению питания и т.п.), либо суммарное количество циклов включения/выключения питания диска (характерно для современных WD и Hitachi).

193 (C1) Load/Unload Cycle - Количество циклов перемещения блока магнитных головок в парковочную зону / в рабочее положение.

194 (C2) HDA temperature - Здесь хранятся показания встроенного термодатчика для механической части диска — банки (HDA — Hard Disk Assembly). Информация снимается со встроенного термодатчика, которым служит одна из магнитных головок, обычно нижняя в банке. В битовых полях атрибута фиксируются текущая, минимальная и максимальная температура. Не все программы, работающие со SMART, правильно разбирают эти поля, так что к их показаниям стоит относиться критически.
В SSD это температура внутри корпуса SSD или температура печатной платы

195 (C3) Hardware ECC Recovered - Число коррекции ошибок аппаратной частью диска (чтение, позиционирование, передача по внешнему интерфейсу). На дисках с SATA-интерфейсом значение нередко ухудшается при повышении частоты системной шины — SATA очень чувствителен к разгону.
У накоителей Kingston идентичен атрибутам 201 и 204

196 (C4) Reallocation Event Count - содержит количество операций переназначения секторов.
Косвенно говорит о здоровье диска. Чем больше значение – тем хуже. Однако, нельзя однозначно судить о здоровье диска по этому параметру, не рассматривая другие атрибуты.
Этот атрибут непосредственно связан с атрибутом 05. При росте 196 чаще всего растёт и 05. Если при росте атрибута 196 атрибут 05 не растёт, значит, при попытке ремапа кандидат в бэд-блоки оказался софт-бэдом (подробности см. ниже), и диск исправил его, следовательно, сектор был признан здоровым, и в переназначении не было необходимости.
Если атрибут 196 меньше атрибута 05, значит, во время некоторых операций переназначения выполнялся перенос нескольких повреждённых секторов за один приём.
Если атрибут 196 больше атрибута 05, значит, при некоторых операциях переназначения были обнаружены исправленные впоследствии софт-бэды.

Учитываются как успешные, так и неуспешные попытки операций переназначения секторов.

198 (C6) Uncorrectable Sector Count - количество плохих секторов, найденных диском при фоновом самосканировании; ухудшение этого параметра говорит о быстрой деградации поверхности.

200 (C8) Write Error Rate / Multi-Zone Error Rate - Показывает общее количество ошибок, происходящих при записи сектора, а так же общее число ошибок записи на диск. Может служить показателем качества поверхности и механики накопителя.

202 (CA) Data Address Mark errors - Number of Data Address Mark (DAM) errors (or) vendor-specific.

203 (CB) Run out cancel - Количество ошибок ECC (Error Correcting Code — код, корректирующий ошибки).

204 (CC) Soft ECC correction - Количество ошибок ECC, скорректированных программным способом.

205 (CD) Thermal asperity rate (TAR) - Количество ошибок из-за повышенной температуры.

206 (CE) Flying height - Расстояние между головкой чтения-записи и поверхностью диска во включенном состоянии.

207 (CF) Spin high current - Величина силы тока при раскрутке диска.

208 (D0) Spin buzz - - Кол-во попыток раскрутки шпинделя из-из недостаточной мощности питателя.

209 (D1) Offline seek performance - Производительность поиска во время офлайновых операций

(Drive’s seek performance during offline operations.)

210(D2) Vibration During Write - вибрация во время записи. (Maxtor 6B200M0 200GB и Maxtor 2R015H1 15GB)

211(D3) Vibration During Read - вибрация во время чтения.

212(D4) Shock During Write - удары во время записи.

220 (DC) Disk Shift - Дистанция смещения блока дисков относительно шпинделя. В основном возникает из-за удара или падения. Единица измерения неизвестна. При увеличении атрибута диск быстро становится неработоспособным.

221 (DD) G-Sense Error Rate - Число ошибок, возникших из-за внешних нагрузок и ударов. Атрибут хранит показания встроенного датчика удара.

222 (DE) Loaded Hours - Время, проведённое блоком магнитных головок между выгрузкой из парковочной области в рабочую область диска и загрузкой блока обратно в парковочную область.

223 (DF) Load/Unload Retry Count - Количество новых попыток выгрузок/загрузок блока магнитных головок в/из парковочной области после неудачной попытки.

224 (E0) Load Friction - Величина силы трения блока магнитных головок при его выгрузке из парковочной области.

225 (E1) Load Cycle Count - Количество циклов перемещения блока магнитных головок в парковочную область.

226 (E2) Load 'In'-time - Время, за которое привод выгружает магнитные головки из парковочной области на рабочую поверхность диска.

227 (E3) Torque Amplification Count - Количество попыток скомпенсировать вращающий момент.

228 (E4) Power-Off Retract Cycle - Количество повторов автоматической парковки блока магнитных головок в результате выключения питания.

231 (E7) Temperature - Температура жёсткого диска. Для SSD диска этот параметр называется SSD Life Left (остаток жизни SSD) - приблизительное кол-во оставшихся циклов перезаписи SSD.

232(E8) Available Reserved Space (SSD) - Зависит от производителя.
Для SSD Kingston — количество оставшихся резервных служебных блоков. Исходно (в новом накопителе) равно числу Reserve Block Count. Для некоторых накопителей — значение атрибута 170, выраженное в гигабайтах

233(E9) Power-On Hours - количество часов в вкл. состоянии.

233(E9) Intel SSD Media Wearout Indicator - индикатор износа носителя. 100% для нового.

234(EA) Количество неисправимых ошибок ECC
Меньше

235(EB) Power Fail Backup Health Зависит от производителя.
У некоторых SSD показывает возможность сохранить данные из кэша в микросхемы флэш после внезапного отключения питания

240 (F0) Head flying hours - Общее время нахождения блока головок в рабочем положении в часах.

241(F1) Total LBAs Written - У HDD — полное число записанных секторов.
У SSD Kingston — объём записанного за всё время жизни накопителя, в гигабайтах.

242(F2) Total LBAs Read - У HDD — полное число прочитанных секторов.
У SSD Kingston — объём прочитаного из микросхем накопителя за всё время его жизни, в гигабайтах.

249(F9) NAND Writes (1GiB) Всего записей NAND. Необработанное значение сообщает количество записей в NAND с шагом 1 ГБ.

250 (FA) Read error retry rate - Число ошибок во время чтения жёсткого диска.

254(FE) Free Fall Event Count - содержит зафиксированное электроникой количество ускорений свободного падения диска, которым он подвергался, т.е. проще говоря, показывает, сколько раз диск падал.

Касаемо ссд.
Для разных моделей SSD, параметры SMART различны, одни и те же цифры. И спецификации ATA и NVMe отличаются. Запрашиваемые данные в ином формате, вот почему еще недавно ВСЕ проги не читали SMART корректно для NVMe, за исключением родных от вендора. Поэтому фирменный софт кажет корректнее для SSD.

Почему количество параметров типа равно количеству параметров функции?
Почему количество параметров типа равно количеству параметров функции даже когда некоторые типы.

Файлы параметров не найдены в этом проекте.Добавьте фалй параметров и повторите попытку
хочу установить параметры приложения (applicationsettings) для формы, а именно: хочу сделать так.

Передача параметров через список параметров формы
Hi all! У кого есть опыт передачи параметров через заголовочный список параметров формы? .

Комбинирование программных параметров текста и параметров из layout
Есть класс, отображающий layout на котором есть элемент TextView. В layout textView имеет вид: .

Так власти США отреагировали на начало специальной военной операции России в Донбассе, напоминает РБК.

Правительство Великобритании вместе с США вводит санкции против банка ВТБ в ответ на проводимую Россией спецоперацию на Украине. Об этом говорится в опубликованном в четверг британским правительством обновленном санкционном списке, передает ТАСС.

\n \n\t\t\t \n\t\t\t \n\t\t \n\t","content":"\t\t

\n\t\t\t\u0412\u044b \u043d\u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0441\u0430\u0439\u0442\u0435.\n\t\t \n\t\t

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

Способов разбиения дисков на разделы на сегодняшний день существует два. Первый способ — использовать MBR. Этот способ применялся еще чуть ли не с появления жестких дисков и работает с любыми операционными системами. Второй способ — использовать новую систему разметки — GPT. Этот способ поддерживается только современными операционными системами, поскольку он еще относительно молод.

Структура MBR

До недавнего времени структура MBR использовалась на всех персональных компьютерах для того, чтобы можно было разделить один большой физический жесткий диск (HDD) на несколько логических частей — разделы диска (partition). В настоящее время MBR активно вытесняется новой структурой разделения дисков на разделы — GPT (GUID Partition Table). Однако MBR используется еще довольно широко, так что посмотрим что она из себя представляет.

MBR всегда находится в первом секторе жесткого диска. При загрузке компьютера, BIOS считывает этот сектор с диска в память по адресу 0000:7C00h и передает ему управление.

Итак, первая секция структуры MBR — это секция с исполняемым кодом, который и будет руководить дальнейшей загрузкой. Размер этой секции может быть максимум 440 байт. Далее идут 4 байта, отведенные на идентификацию диска. В операционных системах, где идентификация не используется, это место может занимать исполняемый код. То же самое касается и последующих 2 байт.

Начиная со смещения 01BEh находится сама таблица разделов жесткого диска. Таблица состоит из 4 записей (по одной на каждый возможный раздел диска) размером 16 байт.

Структура записи для одного раздела:

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

Следующие три байта — это так называемые CHS-координаты первого сектора раздела.

По смещению 04h находится код типа раздела. Именно по этому типу можно определить что находится в данном разделе, какая файловая система на нем и т.п. Список зарезервированных типов разделов можно посмотреть, например, в википедии по ссылке Типы разделов.

После типа раздела идут 3 байта, определяющие CHS-координаты последнего сектора раздела.

CHS-координаты сектора расшифровываются как Cylinder Head Sector и соответственно обозначают номер цилиндра (дорожки), номер головки (поверхности) и номер сектора. Цилиндры и головки нумеруются с нуля, сектор нумеруется с единицы. Таким образом CHS=0/0/1 означает первый сектор на нулевом цилиндре на нулевой головке. Именно здесь находится сектор MBR.

Все разделы диска, за исключением первого, обычно начинаются с нулевой головки и первого сектора какого-либо цилиндра. То есть их адрес будет N/0/1. Первый раздел диска начинается с головки 1, то есть по адресу 0/1/1. Это все из-за того, что на нулевой головке место уже занято сектором MBR. Таким образом, между сектором MBR и началом первого раздела всегда есть дополнителььные неиспользуемые 62 сектора. Некоторые загрузчики ОС используют их для своих нужд.

Проблема с CHS-координатами состоит в том, что с помощью такой записи можно адресовать максимум 8 Гб диска. В эпоху DOS это было приемлемо, однако довольно скоро этого перестало хватать. Для решения этой проблемы была разработана система адресации LBA (Logical Block Addressing), которая использовала плоскую 32-битную нумерацию секторов диска. Это позволило адресовать диски размером до 2Тб. Позже разрядность LBA увеличили до 48 бит, однако MBR эти изменения не затронули. В нем по-прежнему осталась 32-битная адресация секторов.

Итак, в настоящее время повсеместно используется LBA-адресация для секторов на диске и в структуре записи раздела адрес его первого сектора прописывается по смещению 08h, а размер раздела — по смещению 0Ch.

Для дисков размером до 8Гб (когда адресация по CHS еще возможна) поля структуры с CHS-координатами и LBA-адресации должны соответствовать друг другу по значению (корректно конвертироваться из одного формата в другой). У дисков размером более 8Гб значения всех трех байт CHS-координат должны быть равны FFh (для головки допускается также значение FEh).

В конце структуры MBR всегда находится сигнатура AA55h. Она в какой-то степени позволяет проверить, что сектор MBR не поврежден и содержит необходимые данные.

Расширенные разделы

Разделы, отмеченные в таблице типом 05h и 0Fh, это так называемые расширенные разделы. С их помощью можно создавать больше разделов на диске, чем это позволяет MBR. На самом деле расширенных разделов несколько больше, например есть разделы с типами C5h, 15h, 1Fh, 91h, 9Bh, 85h. В основном все эти типы разделов использовались в свое время различными операционными системами (такими как например OS/2, DR-DOS, FreeDOS) с одной и той же целью — увеличить количество разделов на диске. Однако со временем различные форматы отпали и остались только разделы с типами 05h и 0Fh. Единственное исключение — это тип 85h. Он до сих пор может использоваться в Linux для формирования второй цепочки логических дисков, скрытых от других операционных систем. Разделы с типом 05h используются для дисков менее 8Гб (где еще возможна адресация через CHS), а тип 0Fh используется для дисков больше 8Гб (и используется LBA-адресация).

В первом секторе расширенного раздела находится структура EBR (Extended Boot Record). Она во многом схожа со структурой MBR, но имеет следующие отличия:

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

В отличие от MBR, где позволяется создавать не более четырёх разделов, структура EBR позволяет организовать список логических разделов, ограниченный лишь размером раздела-контейнера (того самого, который с типом 05h или 0Fh). Для организации такого списка используется следующий формат записей: первая запись в таблице разделов EBR указывает на логический раздел, связанный с данным EBR, а вторая запись указывает на следующий в списке раздел EBR. Если данный логический раздел является последним в списке, то вторая запись в таблице разделов EBR должна быть заполнена нулями.

Формат записей разделов в EBR аналогичен формату записи в структуре MBR, однако логически немного отличается.

Признак активности раздела для разделов структуры EBR всегда будет 0, так как загрузка осуществлялась только с основных разделов диска. Координаты CHS, с которых начинается раздел используются, если не задействована LBA-адресация, также как и в структуре MBR.

А вот поля, где в режиме LBA-адресации должны находиться номер начального сектора и количество секторов раздела, в структуре EBR используются несколько иначе.

Для первой записи таблицы разделов EBR в поле начального сектора раздела (смещение 08h) записывается расстояние в секторах между текущим сектором EBR и началом логического раздела, на который ссылается запись. В поле количества секторов раздела (смещение 0Ch) в этом случае пишется размер этого логического раздела в секторах.

Для второй записи таблицы разделов EBR в поле начального сектора раздела записывается расстояние между сектором самой первой EBR и сектором следующей EBR в списке. В поле количества секторов раздела в этом случае пишется размер области диска от сектора этой следующей структуры EBR и до конца логического раздела, относящегося к этой структуре.

Таким образом, первая запись таблицы разделов описывает как найти, и какой размер занимает текущий логический раздел, а вторая запись описывает как найти, и какой размер занимает следующий EBR в списке, вместе со своим разделом.

Структура GPT

В современных компьютерах на смену BIOS пришла новая спецификация UEFI, а вместе с ней и новое устройство разделов на жестком диске — GUID Partition Table (GPT). В этой структуре были учтены все недостатки и ограничения, накладываемые MBR, и разработана она была с большим запасом на будущее.

Кроме того, в отличие от MBR, структура GPT хранит на диске две своих копии, одну в начале диска, а другую в конце. Таким образом, в случае повреждения основной структуры, будет возможность восстановить ее из сохраненной копии.

Рассмотрим теперь устройство структуры GPT подробнее. Вся структура GPT на жестком диске состоит из 6 частей:

LBA-адрес Размер (секторов) Назначение
LBA 0 1 Защитный MBR-сектор
LBA 1 1 Первичный GPT-заголовок
LBA 2 32 Таблица разделов диска
LBA 34 NN Содержимое разделов диска
LBA -34 32 Копия таблицы разделов диска
LBA -2 1 Копия GPT-заголовка

Защитный MBR-сектор

Первый сектор на диске (с адресом LBA 0) — это все тот же MBR-сектор. Он оставлен для совместимости со старым программным обеспечением и предназначен для защиты GPT-структуры от случайных повреждений при работе программ, которым про GPT ничего не известно. Для таких программ структура разделов будет выглядеть как один раздел, занимающий все место на жестком диске.

Структура этого сектора ничем не отличается от обычного сектора MBR. В его таблице разделов дожна быть создана единственная запись с типом раздела 0xEE. Раздел должен начинаться с адреса LBA 1 и иметь размер 0xFFFFFFFF. В полях для CHS-адресации раздел соответственно должен начинаться с адреса 0/0/2 (сектор 1 занят под саму MBR) и иметь конечный CHS-адрес FF/FF/FF. Признак активного раздела должен иметь значение 0 (неактивный).

При работе компьютера с UEFI, данный MBR-сектор просто игнорируется и никакой код в нем также не выполняется.

Первичный GPT-заголовок

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

Структура GPT-заголовка:

Смещение (байт) Размер поля (байт) Пример заполнения Название и описание поля
0x00 8 байт 45 46 49 20 50 41 52 54 Сигнатура заголовка. Используется для идентификации всех EFI-совместимых GPT-заголовков. Должно содержать значение 45 46 49 20 50 41 52 54, что в виде текста расшифровывается как "EFI PART".
0x08 4 байта 00 00 01 00 Версия формата заголовка (не спецификации UEFI). Сейчас используется версия заголовка 1.0
0x0C 4 байта 5C 00 00 00 Размер заголовка GPT в байтах. Имеет значение 0x5C (92 байта)
0x10 4 байта 27 6D 9F C9 Контрольная сумма GPT-заголовка (по адресам от 0x00 до 0x5C). Алгоритм контрольной суммы — CRC32. При подсчёте контрольной суммы начальное значение этого поля принимается равным нулю.
0x14 4 байта 00 00 00 00 Зарезервировано. Должно иметь значение 0
0x18 8 байт 01 00 00 00 00 00 00 00 Адрес сектора, содержащего первичный GPT-заголовок. Всегда имеет значение LBA 1.
0x20 8 байт 37 C8 11 01 00 00 00 00 Адрес сектора, содержащего копию GPT-заголовка. Всегда имеет значение адреса последнего сектора на диске.
0x28 8 байт 22 00 00 00 00 00 00 00 Адрес сектора с которого начинаются разделы на диске. Иными словами — адрес первого раздела диска
0x30 8 байт 17 C8 11 01 00 00 00 00 Адрес последнего сектора диска, отведенного под разделы
0x38 16 байт 00 A2 DA 98 9F 79 C0 01 A1 F4 04 62 2F D5 EC 6D GUID диска. Содержит уникальный идентификатор, выданный диску и GPT-заголовку при разметке
0x48 8 байт 02 00 00 00 00 00 00 00 Адрес начала таблицы разделов
0x50 4 байта 80 00 00 00 Максимальное число разделов, которое может содержать таблица
0x54 4 байта 80 00 00 00 Размер записи для раздела
0x58 4 байта 27 C3 F3 85 Контрольная сумма таблицы разделов. Алгоритм контрольной суммы — CRC32
0x5C 420 байт 0 Зарезервировано. Должно быть заполнено нулями

Система UEFI проверяет корректность GPT-заголовка, используя контрольный суммы, вычисляемые по алгоритму CRC32. Если первичный заголовок поврежден, то проверяется контрольная сумма копии заголовка. Если контрольная сумма копии заголовка правильная, то эта копия используется для восстановления информации в первичном заголовке. Восстановление также происходит и в обратную сторону — если первичный заголовок корректный, а копия неверна, то копия восстанавливается по данным из первичного заголовка. Если же обе копии заголовка повреждены, то диск становится недоступным для работы.

У таблицы разделов дополнительно существует своя контрольная сумма, которая записывается в заголовке по смещению 0x58. При изменении данных в таблице разделов, эта сумма рассчитывается заново и обновляется в первичном заголовке и в его копии, а затем рассчитывается и обновляется контрольная сумма самих GPT-заголовков.

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

Следующей частью структуры GPT является собственно таблица разделов. В настоящее время операционные системы Windows и Linux используют одинаковый формат таблицы разделов — максимум 128 разделов, на каждую запись раздела выделяется по 128 байт, соответственно вся таблица разделов займет 128*128=16384 байт, или 32 сектора диска.

  • Ответы 210
  • Создано 12.05.2016, 00:15:54
  • Последний ответ 04.05.2021, 16:29:54
  • Просмотры 64871

Лучшие авторы в этой теме

Популярные дни

Лучшие авторы в этой теме

Популярные дни

Gray46rus

Лично для меня сектора - отличный автоматизатор апгрейда. Выставляют очередь строительства и отделяют систему в сектор - и все, я уверен, что ИИ построит все апгрейды и наймет армию. При 40+ системах

Pasha223

Ну вот именно что при 40+ . А при 10-15 в начале ручное управление намного эффективнее секторов.

kolyan-x3

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

trolinsky

trolinsky

Это да, поэтому нужно в своей галактике соблюдать баланс между интенсивным и экстенсивным развитием, я тоже раньше по 2/3 галактики ел, но это в конце концов просто скучно, кризис будет слишком прост,

Араил

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

aardanis

Проблемма не столько в этом, сколько в том что автоматическое создание сектров жутко глючное.

Nestiere

Nestiere

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

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