Handbook:X86/Blocks/Disks
This page is a translated version of the page Handbook:X86/Blocks/Disks and the translation is 100% complete.
Contents
Таблица разделов
Несмотря на то, что теоретически возможно использовать неразбитый диск целиком для размещения системы Linux (например, для создании btrfs RAID), этого почти никогда не случается на практике. Наоборот, блочные устройства диска разбиваются на меньшие, более удобные для обращения, блочные устройства. В системах x86 они называются разделами. В настоящее время есть две стандартных технологии разметки дисков: MBR (которую ещё иногда называют DOS disklabel) и GPT; оба подхода тесно связаны с двумя типами загрузки системы: загрузка через legacy BIOS и UEFI.
GUID Partition Table (GPT)
GUID Partition Table (GPT, таблица разделов GUID, также может называться GPT disklabel) использует 64-битные идентификаторы разделов. Место, в котором хранится информация о разделах, также гораздо больше, чем 512 байт таблицы разделов MBR (DOS disklabel), что означает, что нет почти никаких ограничений на количество разделов для диска с GPT. Также предельный размер раздела был значительно увеличен (почти 8 ЗиБ — да, зебибайт).
Когда программным интерфейсом системы между операционной системой и прошивкой является UEFI (вместо BIOS), GPT является почти обязательным, так как с DOS disklabel будут возникать проблемы совместимости.
Также GPT использует контрольные суммы и избыточность. Он содержит контрольные суммы CRC32 для обнаружения ошибок в заголовке и таблице разделов. У GPT есть резервная таблица в конце диска. Её можно использовать для восстановления первичной таблицы GPT, которая располагается в начале диска.
- GPT на компьютерах с BIOS будет работать, но его невозможно будет использовать при двойной загрузке совместно с операционной системой Microsoft Windows, которая попытается загрузиться в UEFI-режиме, если обнаружит разметку разделов GPT.
- Некоторые сбойные (старые) прошивки материнских карт настроены на загрузку в режиме BIOS/CSM/legacy, что может также привести проблемам при загрузке с GPT-разделов.
Master boot record (MBR) или загрузочный сектор DOS
Загрузочный сектор Master boot record (также известный как загрузочный сектор DOS или DOS disklabel) впервые появился в PC DOS 2.x, выпущенном в 1983 году. MBR использует 32-битные идентификаторы для определения начала сектора и длины раздела и поддерживает три типа разделов: основные, расширенные и логические. Информация о расположении основных разделов хранится в самой главной загрузочной записи — очень небольшом (обычно 512 байт) месте в самом начале диска. Из-за её небольшого размера поддерживаются только четыре основных раздела (например, от /dev/sda1 до /dev/sda4 ).
Для поддержки большего количества разделов один из основных разделов в MBR может быть помечен как расширенный. Этот раздел может содержать дополнительные логические разделы (разделы внутри раздела).
- В большинстве материнских карт, произведённых после 2010 года, загрузочный сектор MBR считается устаревшим режимом загрузки (не всегда хорошо поддерживаемым).
- Из-за использования 32-битных идентификаторов таблицы разделов в MBR не могут обращаться к адресам дискового пространства размером свыше 2 ТиБ.
- Без использования расширенных разделов MBR поддерживает максимум только четыре раздела.
- Данный режим не предоставляет никаких средств резервирования главной загрузочной записи, если что-то затрёт таблицу разделов, вся информация будет потеряна.
Однако, MBR и загрузка BIOS до сих пор может часто использоваться в виртуализированных облачных средах, например в AWS.
Авторы Руководства при установке Gentoo рекомендуют использовать GPT везде, где это возможно.
Продвинутая организация хранилища
Установочный CD x86 предоставляет поддержку Logical Volume Manager (LVM). LVM увеличивает гибкость в создании разделов. Он позволяет сочетать разделы и диски в группы разделов и определять группы RAID или кэши на быстрых SSD для медленных жёстких дисков. Инструкции по установке ниже сконцентрируются на использовании «обычных» разделов, но LVM при необходимости также поддерживается. Посетите статью LVM для более подробной информации. Новички, будьте осторожны: полная поддержка LVM выходит за рамки данного руководства.
Схема разделов по умолчанию
В оставшейся части руководства мы рассмотрим два случая: 1) таблица разделов GPT и загрузка UEFI и 2) таблица разделов MBR и устаревшая загрузка BIOS. Хотя эти два случая можно смешивать и сочетать, это выходит за рамки данного руководства. Как уже говорилось выше, при установке на современное оборудование следует использовать таблицу разделов GPT и загрузку UEFI; исключение составляет виртуализированные (облачные) среды, в которых до сих пор часто используется MBR и загрузка BIOS.
Будет использоваться следующая схема разделов как простой пример разбиения диска:
| Раздел | Файловая система | Размер | Описание |
|---|---|---|---|
| /dev/sda2 | fat32 (UEFI) или ext4 (BIOS) | 256M | Системный раздел Boot/EFI |
| /dev/sda2 | (swap) | Размер ОЗУ * 2 | Раздел подкачки |
| /dev/sda3 | ext4 | Оставшаяся часть диска | Корневой раздел |
Если вам этого достаточно, вы можете сразу переходить к разметке диска.
И fdisk , и parted являются инструментами для создания разделов. fdisk широко известен, стабилен и рекомендован для создания разделов MBR. parted был первым в Linux менеджером блочных устройств, имеющим поддержку разделов GPT. Здесь мы используем fdisk , так как у него лучше текстовый интерфейс.
Прежде, чем переходить к инструкциям по созданию разделов, сперва опишем более подробно, какие могут быть схемы разделов, и упомянем о распространенных ошибках.
Разработка схемы разделов
Сколько разделов и насколько больших?
Расположение разделов на диске сильно зависит от потребностей системы и файловой системы (файловых систем). Если в ней будет много пользователей, рекомендуется разместить /home на отдельном разделе, что улучшит безопасность и значительно упростит резервное копирование (а также другие операции сопровождения). Если Gentoo устанавливается для использования в роли почтового сервера, следует отделить /var , так как вся почта хранится в каталоге /var . Для игровых серверов потребуется отдельный раздел /opt , так как большинство игровых серверов устанавливается туда. Причины выделения те же, что и для каталога /home : безопасность, резервное копирование и сопровождение.
В большинстве случаев /usr и /var должны быть достаточно большого размера. В /usr хранится большинство приложений, доступных системе, а также исходные коды ядра Linux (в каталоге /usr/src ). По умолчанию в /var хранится репозиторий пакетов Gentoo (расположенный в /var/db/repos/gentoo ), который, в зависимости от файловой системы, занимает около 650 МиБ дискового пространства. Оценка этого пространства не включает каталоги /var/cache/distfiles и /var/cache/binpkgs , в которых будут скапливаться архивы исходных кодов и (не обязательно) двоичных пакетов, которые будут формироваться в самой системе.
Сколько именно и какого объёма разделов нужно системе — всё зависит от сочетания различных факторов, которые необходимо принимать во внимание. Наличие отдельных разделов или томов имеет следующие плюсы:
- Можно выбрать наиболее подходящую файловую систему для каждого раздела или тома.
- Свободное место во всей системе не закончится внезапно из-за того, что одна-единственная сбойная программа постоянно записывает файлы в раздел или том.
- Необходимая проверка файловых систем будет занимать меньше времени, так как проверка разных разделов может выполняться параллельно (хотя это это преимущество относится больше к нескольким дискам, чем к нескольким разделам).
- Можно повысить безопасность системы, монтируя часть разделов в режиме только для чтения, nosuid (игнорируется бит setuid), noexec (игнорируется бит исполнения) и так далее.
Однако у множества разделов также есть недостатки:
- Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и нехватка на другом.
- Отдельный раздел для /usr/ может потребовать загрузки с initramfs, чтобы смонтировать раздел прежде, чем запустятся другие загрузочные сценарии. Так как сборка initramfs выходит за рамки данного руководства, мы рекомендуем новичкам не создавать отдельный раздел для /usr/ .
- Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.
Заметка
Если вы планируете использовать Systemd, /usr/ должен быть доступен во время загрузки, как часть корневого раздела или смонтированный с помощью initramfs.
Что по поводу пространства подкачки?
Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру в условиях активного использования оперативной памяти. Пространство подкачки позволяет ядру переносить на диск страницы оперативной памяти, которые не будут использоваться в ближайшее время, освобождая её (swap или page-out). Конечно, если эта память вдруг неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет намного больше времени, чем чтение с оперативной памяти (так как диски — это очень медленные устройства по сравнению с оперативной памятью).
Если на системе не требуется запускать приложения, требовательные к памяти, либо изначально доступно очень много памяти, то, скорее всего, необходимости в пространстве подкачки нет. Однако раздел подкачки также используется для сохранения всей памяти в случае перехода системы в спящий режим (более вероятно на ноутбуках и десктопах, чем на серверах). Если планируется использовать этот режим, нужно пространство подкачки, равное или больше чем количеству оперативной памяти.
Как правило, рекомендуется создавать пространство подкачки с размером в два раза больше оперативной памяти (ОЗУ). Для систем с несколькими дисками, целесообразно создать по одному разделу подкачки на каждом диске, чтобы их можно было использовать для параллельных операций чтения/записи. Чем быстрее диск может подкачивать, тем быстрее система будет работать, когда ей необходимо прочитать данные с пространства подкачки. При выборе между жестким диском и твердотельным накопителем, с точки зрения производительности лучше создать пространство подкачки на SSD. Также вы можете использовать файлы подкачки вместо разделов подкачки; в основном это необходимо для систем с очень ограниченным дисковым пространством.
Что такое EFI System Partition (ESP)?
При установке Gentoo на систему, использующую UEFI для загрузки операционной системы (вместо BIOS) важно, чтобы был создан системный раздел EFI (EFI System Partition, ESP). Расположенные ниже инструкции содержат необходимую для этого информацию. EFI System Parition не обязателен при загрузке в режиме BIOS/Legacy.
ESP должен быть одним из вариантов файловой системы FAT (иногда отображаемый как vfat на системах Linux). В официальной спецификации UEFI говориться о том, что прошивка UEFI может работать с FAT12, 16 и 32, но для ESP рекомендуется использовать FAT32. После разбивки, отформатируйте раздел ESP:
Предупреждение
Если раздел ESP не отформатирован под один из вариантов FAT, то не гарантируется, что прошивка UEFI сможет найти загрузчик (или ядро Linux) и, скорей всего, не сможет загрузить систему!
Что такое загрузочный раздел BIOS?
Загрузочный раздел BIOS необходим, только если вы комбинируете разметку дисков GPT с загрузчиком GRUB2 в режиме BIOS/Legacy. Он не требуется при загрузке в режиме EFI/UEFI, и также не требуется при использовании дисков MBR. Это очень маленький (1—2 Мб) раздел, в который загрузчики типа GRUB2 могут разместить дополнительные данные, которые не помещаются в выделенное хранилище. Мы не будем использовать его в данном руководстве.
Создание разделов на диске с GPT для UEFI
Следующие части объяснят, как создать структуру разделов из примера для установки с GPT/UEFI с использованием fdisk (пример структуры разделов приводился выше):
| Раздел | Описание |
|---|---|
| /dev/sda2 | Системный (и загрузочный) раздел EFI (ESP) |
| /dev/sda2 | Раздел подкачки |
| /dev/sda3 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов
fdisk является популярным и мощным инструментом для создания разделов на диске. Запустите fdisk , передав в качестве параметра имя диска (в нашем примере мы используем /dev/sda ):
Нажмите на клавишу p для отображения текущей конфигурации разделов:
Данный диск был разбит на две файловые системы Linux (каждый раздел соответственно подписан как «Linux»), а также раздел подкачки (названный как «Linux swap»).
Создание нового disklabel / удаление всех разделов
Нажмите g , чтобы создать новую разметку GPT на диске; это удалит все существующие разделы.
Для диска с существующей разметкой GPT (смотрите вывод p выше), вы также можете удалять существующие разделы на диске. Нажмите d для удаления раздела. Например, чтобы удалить существующий /dev/sda1 :
Теперь раздел отмечен для удаления. Он больше не будет отображаться в списке разделов при вводе p , но не будет удален, пока не будут сохранены изменения. Это даёт возможность пользователю прервать операцию, если была допущена ошибка — в этом случае сразу нажмите q и Enter , и раздел не будет удален.
Удалите все разделы, поочерёдно нажимая на p для вывода списка разделов, d и номер раздела — для удаления. В конечном счете, таблица разделов будет пуста:
Теперь, когда запомненная в памяти таблица разделов пуста, мы готовы создавать разделы.
Создание EFI system partition (ESP)
Сначала создадим небольшой системный раздел EFI. Нажмите n , чтобы создать новый раздел, затем 1 для выбора первого основного раздела. При запросе первого сектора, убедитесь, что он начинается с 2048 (может понадобиться для загрузчика) и нажмите Enter . При запросе последнего сектора введите +256M для создания раздела размером 256 Мбайт:
Пометьте раздел как системный раздел EFI:
Создание раздела подкачки
Для создания раздела подкачки введите n , чтобы создать новый раздел, затем введите 2 для создания второго основного раздела, /dev/sda2 . При появлении запроса первого сектора, введите Enter . При появлении запроса последнего сектора, наберите +4G (или любой другой размер, необходимый для подкачки) для создания раздела размером 4 ГБ.
После этого введите t для выбора типа раздела, 2 для выбора только что созданного раздела и введите 19, чтобы установить тип раздела как «Linux Swap».
Создание корневого раздела
Наконец, чтобы создать корневой раздел, введите n , чтобы создать новый раздел. Затем введите 3 , чтобы создать третий основной раздел, /dev/sda3 . При запросе последнего сектора нажмите Enter , чтобы создать раздел, занимающий всё оставшееся доступное пространство диска. После завершения этих шагов введите p для вывода на экран таблицы разделов, которая должна выглядеть примерно так:
Сохранение разметки разделов
Для сохранения разметки разделов и выхода из fdisk введите w .
Разделы созданы, теперь настало время создать на них файловые системы.
Создание разделов на диске с MBR для BIOS / legacy загрузки
Следующие части объяснят, как создать структуру разделов из примера для установки с MBR/BIOS-загрузкой. Приведём пример структуры разделов, упоминавшийся выше:
| Раздел | Описание |
|---|---|
| /dev/sda2 | Загрузочный раздел |
| /dev/sda2 | Раздел подкачки |
| /dev/sda3 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов
Запустите fdisk для диска (в нашем примере мы используем /dev/sda ):
Нажмите на клавишу p для отображения текущей конфигурации разделов:
Данный диск ранее был разбит в GPT-таблицу на две файловые системы Linux (каждый раздел соответственно подписан как «Linux»), а также раздел подкачки (названный как «Linux swap»).
Создание нового disklabel / удаление всех разделов
Введите o , чтобы создать на диске новую разметку MBR (также называемую разметкой DOS); это удалит все существующие разделы.
Для диска с существующей разметкой DOS (смотрите вывод p выше), вы также можете удалять существующие разделы на диске. Нажмите d для удаления раздела. Например, чтобы удалить существующий /dev/sda1 :
Теперь раздел отмечен для удаления. Он больше не будет отображаться в списке разделов при вводе p , но не будет удален, пока не будут сохранены изменения. Это даёт возможность пользователю прервать операцию, если была допущена ошибка — в этом случае сразу нажмите q и Enter , и раздел не будет удален.
Удалите все разделы, поочерёдно нажимая на p для вывода списка разделов, d и номер раздела — для удаления. В конечном счете, таблица разделов будет пуста:
Теперь мы готовы создать разделы.
Создание загрузочного раздела
Сначала создадим небольшой раздел, который будет монтироваться как /boot. Нажмите n , чтобы создать новый раздел, затем 1 для выбора первого основного раздела. При запросе первого сектора, убедитесь, что он начинается с 2048 (может понадобиться для загрузчика) и нажмите Enter . При запросе последнего сектора введите +256M для создания раздела размером 256 Мбайт:
Создание раздела подкачки
Далее, для создания раздела подкачки введите n , чтобы создать новый раздел, затем введите 2 для создания второго основного раздела, /dev/sda2 . При появлении запроса первого сектора, введите Enter . При появлении запроса последнего сектора, наберите +4G (или любой другой размер, необходимый для подкачки) для создания раздела размером 4 ГБ.
После этого введите t для выбора типа раздела, 3 для выбора только что созданного раздела и введите 82, чтобы установить тип раздела как «Linux Swap».
Создание корневого раздела
Наконец, чтобы создать корневой раздел, введите n , чтобы создать новый раздел. Затем введите 3 , чтобы создать третий основной раздел, /dev/sda3 . При запросе последнего сектора нажмите Enter , чтобы создать раздел, занимающий всё оставшееся доступное пространство диска. После завершения этих шагов введите p для вывода на экран таблицы разделов, которая должна выглядеть примерно так:
Что такое загрузочный сектор?
Объяснение загрузочных секторов и вирусов загрузочных секторов
Загрузочный сектор – это физический сектор или раздел на жестком диске, содержащий информацию о том, как запустить процесс загрузки для загрузки операционной системы.
Загрузочный сектор существует на внутреннем жестком диске, на котором установлена операционная система, такая как Windows, а также на устройствах хранения, с которых вам может даже не потребоваться загрузка, а вместо этого просто храните личные данные, такие как внешний жесткий диск, дискета. или другое USB-устройство.
Как используется загрузочный сектор
Как только компьютер включается, самое первое, что происходит, – это то, что BIOS ищет подсказки о том, что нужно для запуска операционной системы. Первое, на что будет смотреть BIOS – это первый сектор каждого устройства хранения данных, подключенный к компьютеру.
Скажем, у вас есть один жесткий диск в вашем компьютере. Это означает, что у вас есть один жесткий диск с одним загрузочным сектором. В этом конкретном разделе жесткого диска может быть одна из двух вещей: основная загрузочная запись (MBR) или объемная загрузочная запись (VBR).
MBR – самый первый сектор любого отформатированного жесткого диска. Поскольку BIOS смотрит на первый сектор, чтобы понять, как он должен действовать, он загрузит MBR в память. После загрузки данных MBR можно найти активный раздел, чтобы компьютер знал, где находится операционная система.
Если жесткий диск имеет несколько разделов, VBR является первым сектором в каждом разделе. VBR также является первым сектором устройства, которое вообще не разделено.
Ознакомьтесь с приведенными выше ссылками MBR и VBR , чтобы узнать больше об основной загрузочной записи и объемных загрузочных записях, а также о том, как они работают в процессе загрузки.
Ошибки загрузочного сектора
Сектор должен иметь очень специфическую подпись диска, чтобы BIOS воспринимал его как загрузочный сектор. Подпись диска загрузочного сектора 0x55AA и содержится в последних двух байтах информации.
Если подпись диска повреждена или была каким-то образом изменена, вполне вероятно, что BIOS не сможет найти загрузочный сектор, и, конечно, не сможет загрузить необходимые инструкции для поиска и запуска операционной системы.
Любое из следующих сообщений об ошибках может указывать на поврежденный загрузочный сектор:
- Неверная таблица разделов.
- Не удалось найти BOOTMGR
- Bootmgr отсутствует
- Отсутствует операционная система.
- Программа установки определила, что ваша файловая система повреждена
- Произошла ошибка чтения диска.
- NTLDR отсутствует
- Ошибка загрузки операционной системы.
Хотя одна из этих ошибок часто указывает на проблему с загрузочным сектором, возможны и другие причины с другими решениями. Обязательно следуйте рекомендациям по устранению неполадок, которые вы можете найти на моем сайте или в другом месте.
Как исправить ошибки загрузочного сектора
Если во время устранения неполадок вы обнаружите, что ошибка загрузочного сектора, вероятно, является причиной проблем, с которыми вы сталкиваетесь, отформатируйте жесткий диск, а затем переустановите Windows с нуля, это «классическое» исправление для этих типов проблем.
К счастью, есть и другие, менее разрушительные, но хорошо зарекомендовавшие себя процессы, за которыми может следовать любой, которые должны восстанавливать загрузочный сектор … никакого стирания вашего компьютера не требуется.
Чтобы восстановить поврежденный загрузочный сектор в Windows 10, 8, 7 или Vista, следуйте моему детальному руководству «Как записать новый загрузочный сектор раздела в системный раздел Windows».
Ошибки загрузочного сектора также могут возникать в Windows XP, но процесс исправления совсем другой. Подробности смотрите в разделе Как записать загрузочный сектор нового раздела в системный раздел Windows XP.
Один из более официальных, санкционированных Microsoft процессов, описанных выше, лучше подходит почти во всех случаях, но есть некоторые сторонние инструменты, которые могут перестроить загрузочные секторы, если вы хотите попробовать один из них. Смотрите мой список бесплатных инструментов для создания разделов диска, если вам нужна рекомендация.
Существуют также некоторые коммерческие инструменты тестирования жестких дисков, которые рекламируют возможность восстановления данных из поврежденных секторов, что может быть одним из способов исправления ошибки загрузочного сектора, но я бы сосредоточился на уже упомянутых идеях, прежде чем платить за один из эти.
Вирусы загрузочного сектора
Помимо риска быть испорченным в результате какой-либо аварии или сбоя оборудования, загрузочный сектор также является распространенной областью для проникновения вредоносных программ.
Производители вредоносного ПО любят концентрировать свое внимание на загрузочном секторе, потому что его код запускается автоматически, а иногда и без защиты, даже до запуска операционной системы!
Если вы считаете, что у вас может быть вирус загрузочного сектора, я настоятельно рекомендую выполнить complete проверку на наличие вредоносных программ, убедившись, что вы также сканируете загрузочный сектор. См. Как сканировать компьютер на наличие вирусов и других вредоносных программ, если вы не знаете, что делать.
Многие вирусы загрузочного сектора будут мешать вашему компьютеру запускаться полностью, делая невозможным сканирование на наличие вредоносных программ из Windows. В этих случаях вам нужен загрузочный антивирусный сканер. У меня есть список бесплатных загрузочных антивирусных инструментов, из которых вы можете выбрать, что решает эту особенно неприятную проблему-22.
Некоторые материнские платы имеют программное обеспечение BIOS, которое активно предотвращает изменение загрузочных секторов, что очень помогает предотвратить изменение вредоносного программного обеспечения в загрузочном секторе. Тем не менее, эта функция , вероятно, отключена по умолчанию, поэтому инструменты разбиения и программы шифрования диска будут работать правильно, но стоит включить, если вы не используете эти типы инструментов и сталкивались с проблемами вирусов загрузочного сектора ,
Больше информации о загрузочных секторах
Загрузочный сектор создается при первом форматировании устройства. Это означает, что если устройство не было отформатировано и, следовательно, не использует файловую систему, загрузочный сектор также не будет.
На каждое устройство хранения данных есть только один загрузочный сектор. Даже если один жесткий диск имеет несколько разделов или работает более чем на одной операционной системе, для всего этого диска все еще есть только загрузочный сектор .
Доступно платное программное обеспечение, такое как Active @ Partition Recovery, которое может создавать резервные копии и восстанавливать информацию загрузочного сектора в случае возникновения проблемы. Другие расширенные приложения могут найти другой загрузочный сектор на диске, который можно использовать для восстановления поврежденного.
Что такое загрузочный сектор?

Загрузочный сектор — это физический сектор или раздел на жестком диске , содержащий информацию о том, как запустить процесс загрузки для загрузки операционной системы .
Загрузочный сектор существует на внутреннем жестком диске, на котором установлена операционная система, такая как Windows, а также на устройствах хранения, с которых вам может даже не потребоваться загрузка, а вместо этого просто храните личные данные, такие как внешний жесткий диск , дискета. или другое устройство USB .
Как используется загрузочный сектор
Когда компьютер включается, самое первое, что происходит, — это то, что BIOS ищет подсказки о том, что нужно для запуска операционной системы. Первым местом, на которое будет смотреть BIOS, является первый сектор каждого запоминающего устройства, подключенного к компьютеру.
Скажем, у вас есть один жесткий диск в вашем компьютере. Это означает, что у вас есть один жесткий диск с одним загрузочным сектором. В этом конкретном разделе жесткого диска может быть одна из двух вещей: основная загрузочная запись (MBR) или объемная загрузочная запись (VBR) .
MBR — самый первый сектор любого отформатированного жесткого диска. Поскольку BIOS смотрит на первый сектор, чтобы понять, как он должен действовать, он загрузит MBR в память . После загрузки данных MBR можно найти активный раздел, чтобы компьютер знал, где находится операционная система.
Если жесткий диск имеет несколько разделов , VBR является первым сектором в каждом разделе. VBR также является первым сектором устройства, которое вообще не разделено.
Проверьте эти ссылки MBR и VBR выше для получения дополнительной информации об основной загрузочной записи и объемных загрузочных записях и о том, как они работают как часть процесса загрузки.
Ошибки загрузочного сектора
Сектор должен иметь очень специфическую подпись диска, чтобы BIOS воспринимал его как загрузочный сектор. Подпись диска загрузочного сектора 0x55AA и содержится в последних двух байтах информации.
Если подпись диска повреждена или каким-либо образом изменена, весьма вероятно, что BIOS не сможет найти загрузочный сектор, и поэтому, конечно, не сможет загрузить необходимые инструкции для поиска и запуска операционной системы. ,
Любое из следующих сообщений об ошибках может указывать на поврежденный загрузочный сектор:
- Неверная таблица разделов
- Не удалось найти BOOTMGR
- Отсутствует операционная система
- Программа установки определила, что ваша файловая система повреждена
- Произошла ошибка чтения диска
- Ошибка загрузки операционной системы
Хотя одна из этих ошибок часто указывает на проблему с загрузочным сектором, возможны и другие причины с различными решениями. Обязательно следуйте рекомендациям по устранению неполадок, которые вы можете найти на нашем сайте или где-либо еще.
Как исправить ошибки загрузочного сектора
Если во время устранения неполадок вы обнаружите, что ошибка загрузочного сектора, вероятно, является причиной проблем, с которыми вы сталкиваетесь, отформатируйте жесткий диск, а затем переустановите Windows с нуля, это «классическое» решение этих проблем.
К счастью, есть и другие, менее разрушительные, но хорошо зарекомендовавшие себя процессы, за которыми может следовать любой, которые должны восстанавливать загрузочный сектор … не требуется стирание вашего компьютера.
Чтобы восстановить поврежденный загрузочный сектор в Windows 10, 8, 7 или Vista, следуйте нашему подробному руководству « Как записать новый загрузочный сектор раздела в системный раздел Windows» .
Ошибки загрузочного сектора также могут возникать в Windows XP, но процесс исправления совсем другой. Подробности смотрите в нашей статье Как записать новый загрузочный сектор раздела в системный раздел Windows XP .
Один из более официальных, санкционированных Microsoft процессов, описанных выше, лучше делать ставки почти во всех случаях, но есть некоторые сторонние инструменты, которые могут перестроить загрузочные секторы, если вы хотите попробовать один из них. Смотрите наш список бесплатных инструментов для создания разделов диска, если вам нужна рекомендация.
Существуют также некоторые коммерческие инструменты тестирования жестких дисков, которые рекламируют возможность восстановления данных из поврежденных секторов, что может быть одним из способов исправления ошибки загрузочного сектора, но мы сосредоточимся на уже упомянутых идеях, прежде чем платить за один из эти.
Вирусы загрузочного сектора
Помимо риска быть испорченным из-за какой-либо аварии или сбоя оборудования, загрузочный сектор также является распространенной областью для проникновения вредоносных программ .
Производители вредоносного ПО любят концентрировать свое внимание на загрузочном секторе, потому что его код запускается автоматически, а иногда и без защиты, даже до запуска операционной системы!
Если вы считаете, что у вас может быть вирус загрузочного сектора, мы настоятельно рекомендуем выполнить полное сканирование на наличие вредоносных программ, убедившись, что вы также сканируете загрузочный сектор. См. Как сканировать компьютер на наличие вирусов и других вредоносных программ, если вы не знаете, что делать.
Многие вирусы загрузочного сектора будут мешать вашему компьютеру запускаться полностью, делая невозможным сканирование на наличие вредоносных программ из Windows. В этих случаях вам нужен загрузочный антивирусный сканер. У нас есть список бесплатных загрузочных антивирусных инструментов, которые вы можете выбрать, что решает эту особенно неприятную проблему.
Некоторые материнские платы имеют программное обеспечение BIOS, которое активно предотвращает изменение загрузочных секторов, что очень помогает предотвратить изменение вредоносного программного обеспечения в загрузочном секторе. Тем не менее, эта функция, вероятно, по умолчанию отключена, поэтому инструменты разбиения и программы шифрования диска будут работать правильно, но стоит включить, если вы не используете эти типы инструментов и сталкивались с проблемами вируса загрузочного сектора.
Больше информации о загрузочных секторах
Загрузочный сектор создается при первом форматировании устройства. Это означает, что если устройство не было отформатировано и, следовательно, не использует файловую систему , загрузочный сектор также не будет.
На каждом устройстве хранения только один загрузочный сектор. Даже если один жесткий диск имеет несколько разделов или работает более чем на одной операционной системе , для всего этого диска остается только один загрузочный сектор .
Доступно платное программное обеспечение, такое как Active @ Partition Recovery , которое может выполнять резервное копирование и восстановление информации загрузочного сектора в случае возникновения проблемы. Другие расширенные приложения могут найти другой загрузочный сектор на диске, который можно использовать для восстановления поврежденного.
Два способа решения проблем с загрузчиком Windows
Если еще до начала загрузки Windows компьютер выдает сообщение об ошибке, возможно имеет место повреждение загрузочного сектора системного раздела или отсутствуют необходимые для старта операционной системы файлы.
Что такое загрузочный сектор и основная загрузочная запись?
Загрузочный сектор представляет собой небольшой раздел в начале жесткого диска, который создается при каждом форматировании диска. Он содержит необходимый код, позволяющий BIOS, выполняющему начальную процедуру включения питания, передать управление процессом запуска ПК операционной системе. Главный загрузочный код сканирует таблицу разделов, определяет активный раздел, загружает копию загрузочного сектора в ОЗУ ПК и отдает процесс запуска этому коду.
В загрузочном секторе могут возникать те же проблемы, что и в любой другой части жесткого диска – отсутствие файлов, повреждение файловой системы или даже физические повреждения носителя. При неудачном завершении процесса обработки загрузочной информации вы увидите на экране сообщение об ошибке запуска.
Она означает, что Windows не может самостоятельно начать загрузку и вам придется использовать среду восстановления.
Загрузка с установочного носителя Windows или раздела восстановления
Первое, что вам нужно сделать, — это запустить среду восстановления Windows с помощью внешнего носителя (диска или флешки) содержащего установочный образ. Кстати, если ваш компьютер все еще работает, вы можете предпринять предупредительный шаг по созданию диска восстановления, который вы можете использовать в будущем.

Запустите компьютер с установочного диска и нажимайте «Далее» до появления начального экрана установки ОС. Здесь нужно выбрать параметр «Поиск и устранение неисправностей», после чего Windows загрузит среду восстановления. В появившемся окне нажмите кнопку «Устранение неполадок» для перехода к дополнительным параметрам восстановления.

Автоматическое исправление проблем загрузки
Для начала необходимо позволить Windows попытаться самостоятельно исправить проблемы загрузки. ОС попытается не только исправить главную загрузочную запись или воссоздать загрузочный сектор, но и будет проверять и исправлять другие общие проблемы запуска. Для этого на странице «Дополнительные параметры» нажмите кнопку «Восстановление при загрузке». В следующем окне выберите из списка восстанавливаемую ОС, и Windows начнет процесс восстановления.

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

Восстановление главной загрузочной записи с помощью командной строки
Для запуска терминала нажмите на странице «Дополнительные параметры» кнопку «Командная строка». Для восстановления главной загрузочной записи и загрузочного сектора воспользуйтесь инструментом «bootrec» с некоторыми дополнительными параметрами.
Для восстановления главной загрузочной записи введите команду «bootrec /fixmbr» (без кавычек) и нажмите клавишу «Enter». Этот параметр заменит в загрузочном секторе текущую загрузочную запись новой, совместимой с установленной версией Windows, без перезаписи существующей таблицы разделов.

Для исправления загрузочного сектора воспользуйтесь командой «bootrec /fixboot». Она перезаписывает текущую таблицу разделов, что иногда приводит к проблемам с загрузкой нескольких ОС, установленных на компьютере. Поэтому после использования команды может потребоваться перенастройка параметров многопользовательской загрузки. Команда полезна в случае перезаписи загрузочного сектора установщиком другой операционной системы или вредоносной программой.

Инструмент «bootrec» предлагает и другие продвинутые опции. Введите команду «bootrec /?» для просмотра дополнительных параметров и получения справки по команде.
Необходимые действия после восстановления
После успешного восстановления загрузки Windows настоятельно рекомендуется выполнить несколько дополнительных действий. Для начала проверьте целостность файловой системы и жесткого диска утилитой «chkdsk». Затем воспользуйтесь командой «sfc» (System File Checker) для поиска и исправления любых поврежденных системных файлов.
Ошибки загрузчика выглядят пугающе из-за малого количества информации, получаемой вами в момент их возникновения. Но часто их достаточно легко исправить. Необходимо лишь знать, что искать, и иметь под рукой готовые инструменты для восстановления.
Заметки пользователя Linux
Очевидно, что информация о том, каким образом диск разбит на разделы, должна быть записана где-то на том же диске. Для этой информации выделяется по 64 байта в самом первом секторе диска (первый сектор нулевой дорожки на нулевом цилиндре) и в первом секторе каждого «расширенного» раздела (что такое «расширенный» раздел, будет объяснено дальше). В этой структуре и содержится информация о разбиении диска на разделы.
Начало этой структуры (или вход в нее) находиится в первом секторе жесткого диска, который называется главным загрузочным сектором (или MBR – Master Boot Record). Его структура представлена в табл. 1
Таблица 1. Структура главного загрузочного сектора.
Код первичного загрузчика
Таблица разбиения диска
«Магическое число» (0x55AA)
Последние два байта MBR («Магическое число») называются сигнатурой. Значение этих байтов должно быть 55h AAh. В случае, если это не так, запись считается некорректной.
Код первичного загрузчика различен в загрузчиках, используемых разными операционными системами. Да и для одной и той же операционной системы могут использоваться разные загрузчики (например, в Линукс — это могут быть LILO, GRUB, ASPLoader или еще какой-то другой загрузчик, вплоть до NTLoader от Windows).
Кроме собственно программы первичного загрузчика некоторые операционные системы умудряются записывать в эту область какие-то дополнительные данные. Например, DRDOS сохраняет пароль в байтах, расположенных по смещению 0x1b6. Windows NT сохраняет 4-байтовую метку диска («disk signature» или «volume ID») начиная со смещения 0x1b8. Эта метка используется для того, чтобы ассоциировать диск с буквой диска: в строке HKEY_LOCAL_MACHINESYSTEMMountedDevices регистра буква диска связывается с этой меткой диска. Она используется также в строке HKEY_LOCAL_MACHINESYSTEMDISK как метка диска для получения информации о диске.
Grub записывает 4-байтовый начальный адрес вторичного загрузчика stage2 по смещению 0x1b8 и 2-байтовый номер версии по смещению 0x1bc. Последние версии GRUB резервируют байты 0x1b8 — 0x1bd. LILO версии 20 и больше тоже резервирует эту область.
Как видите, собственно для программы первичного загрузчика остается даже меньше 446 байт. Поэтому единственная задача, которая под силу этой программе – найти на диске вторичный загрузчик, загрузить его в оперативную память и передать ему управление дальнейшей работой компьютера. А в поиске вторичного загрузчика на диске уже существенно используется таблица разбиения диска.
В ходе моих экспериментов с переустановкой загрузчика мне стало ясно, что при установке загрузчика таблица разбиения диска не затрагивается, изменяются только первые 446 байт MBR, содержащие код первичного загрузчика. Очевидно, что и при переустановке всей операционной системы таблица разбиения диска не будет изменяться, если вы явным образом не потребуете изменения разделов.
В некоторых руководствах рекомендуется использовать недокументированную команду DOS FDISK /MBR для решения проблем с MBR. Однако надо понимать, что эта команда тоже только устанавливает первичный загрузчик DOS, то есть переписывает не весь главный загрузочный сектор, а только его первые 446 байт. Поэтому эта команда не может помочь в том случае, когда проблема связана с таблицей разбиения диска. Так что команду FDISK /MBR можно использовать только для того, чтобы деинсталлировать LILO (если вы не знаете, что LILO имеет для этих целей специальную опцию -u).
Полностью затереть (обнулить) MBR под Linux очень легко: достаточно дать команду «dd if=/dev/zero of=/dev/hda count=1 bs=512». Если нужно обнулить только область, в которой располагается первичный загрузчик, не трогая таблицу разбиения диска, то эту команду нужно скорректировать следующим образом: «dd if=/dev/zero of=/dev/hda count=1 bs=446». Но будьте очень осторожны с использованием этих команд, поскольку вряд ли вы получите в результате какой-то положительный эффект. Скорее всего вы просто пожалеете о том, что давали такую команду.
Но это были просто попутные замечания. А я к этому моменту пришел к выводу, что:
— с загрузчиком у меня все в порядке;
— для работы с таблицей разбиения диска надо искать другие инструменты.
Но, прежде чем говорить об инструментах, давайте еще подробнее изучим структуру этой самой таблицы в MBR.
Загрузочный сектор
- Загрузочный сектор, бутсектор (англ. boot sector, Volume boot sector (Volume boot record), Partition boot sector) — это особый сектор на жёстком диске, дискете или другом дисковом устройстве хранения информации. (Для дискеты это первый физический сектор, для жёсткого диска — первый физический сектор для каждого раздела.) В процессе загрузки компьютера с дискеты он загружается в память программой POST (в компьютерах архитектуры IBM PC обычно с адреса 0000:7c00), ему передается управление командой long jump.
Связанные понятия
Монтирование файловой системы — системный процесс, подготавливающий раздел диска к использованию операционной системой.
Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера (процедуры POST) и начальной загрузки.
Главная загрузочная запись (англ. master boot record, MBR) — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации.
Дамп памяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации.
Загрузка по сети — это процесс загрузки компьютера из сети без использования жесткого диска. Данный метод загрузки может быть использован в маршрутизаторах или в бездисковых рабочих станциях, а также в публичных компьютерах, которые работают, например, в школах или библиотеках. Применяют данную технологию.
Упоминания в литературе
в начало сектора помещается так называемая главная загрузочная запись – Master Boot Record (MBR). Она содержит программу начальной загрузки BIOS (ROM Bootstrap routine), которая считывает и загружает в оперативную память первый физический сектор активного раздела диска, называемый загрузочным сектором (Boot Sector);
• Первый и основной антивирусный компонент – сканер (On-Demand Scanner). Задачей сканера является проверка по требованию пользователя файлов, памяти и загрузочных секторов на наличие вирусов. Сканер необходимо периодически запускать для проверки имеющихся файлов и при получении новых.
После того как успешно завершилась процедура POST, запускается поиск загрузочного сектора , который может находиться на жестком диске или сменном носителе. Порядок опроса устройств устанавливается с помощью параметров BIOS First Boot Device, Second Boot Device, Third Boot Device или аналогичных, которые подробно описаны в гл. 7.
Связанные понятия (продолжение)
По умолча́нию — термин, используемый для обозначения значений параметров какой-либо программы, предустановленных разработчиком. Пользователь может изменить эти установки явным образом, однако, если он не сделал этого, то в качестве значений используются параметры, заданные разработчиком.
Механизм копирования при записи (англ. Copy-On-Write, COW) используется для оптимизации многих процессов, происходящих в операционной системе, таких как, например, работа с оперативной памятью или файлами на диске (пример — ext3cow).
Раздел (англ. partition) — часть долговременной памяти накопителя данных (жёсткого диска, SSD, USB-накопителя), логически выделенная для удобства работы, и состоящая из смежных блоков.
Модуль ядра, загружаемый модуль ядра (англ. loadable kernel module, LKM) — объект, содержащий код, который расширяет функциональность запущенного или т. н. базового ядра ОС. Большинство текущих систем, основанных на Unix, поддерживают загружаемые модули ядра, хотя они могут называться по-разному (например, kernel loadable module в FreeBSD и kernel extension в Mac OS X).
Планировщик задач — программа (служба или демон), часто называемая сервисом операционной системы, которая запускает другие программы в зависимости от различных критериев, как, например.
Точка монтирования (англ. mount point) — это каталог или файл, с помощью которого обеспечивается доступ к новой файловой системе, каталогу или файлу.
О программном обеспечении рассказывает другая статья.Переносимое приложение (также портативное, автономное, и — неточно, в качестве кальки — портированное; англ. portable application, portable app) — программное обеспечение, которое для своего запуска не требует процедуры установки и может полностью храниться на съёмных носителях информации, что позволяет использовать данное ПО на многих компьютерах. Переносимое приложение может быть настроено так, чтобы считывать свои конфигурационные настройки.
Основная область памяти (Основная память, англ. Conventional memory) занимает первые 640 Кбайт оперативной памяти в IBM PC-совместимых компьютерах. В эту область загружается таблица векторов прерываний (занимает 1 Кбайт), некоторые данные из BIOS (например, буфер клавиатуры), различные 16-битные программы DOS. Для них 640 Кбайт являются барьером.
Конфигурация программного обеспечения — совокупность настроек программы, задаваемая пользователем, а также процесс изменения этих настроек в соответствии с нуждами пользователя.
Се́ктор диска — минимальная адресуемая единица хранения информации на дисковых запоминающих устройствах (НЖМД, дискета, CD). Является частью дорожки диска. Первоначально у большинства устройств размер сектора составляет 512 байт (например, у жестких и гибких дисков), либо 2048 байт (например, у оптических дисков). Новые жесткие диски используют размер сектора 4096 байт (4 Кбайт), известный как расширенный формат (Advanced Format).
Образ диска (image) — файл, содержащий в себе полную копию содержания и структуры файловой системы и данных, находящихся на диске, таком как компакт-диск, дискета, раздел жёсткого диска или весь жёсткий диск целиком. Термин описывает любой такой файл, причём неважно, был ли образ получен с реального физического диска или нет. Таким образом, образ диска содержит всю информацию, необходимую для дублирования структуры, расположения и содержания данных какого-либо устройства хранения информации. Обычно.
Эмулятор терминала, приложение терминала, term или tty для краткости — это программа, которая эмулирует терминал компьютера внутри некоторой другой архитектуры вывода данных на экран.
Реальный режим (или режим реальных адресов; англ. real-address mode) — режим работы процессоров архитектуры x86, при котором используется сегментная адресация памяти (адрес ячейки памяти формируется из двух чисел: сдвинутого на 4 бита адреса начала сегмента и смещения ячейки от начала сегмента; любому процессу доступна вся память компьютера). Изначально режим не имел названия, был назван «реальным» только после создания процессоров 80286, поддерживающих режим, названный «защищённым» (режим назван.
Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр.
Файловый дескриптор — это неотрицательное целое число. Когда создается новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.
Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом, чтобы большая часть кода, работающая в режиме ядра, не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением.
Установка программного обеспечения, инсталляция — процесс установки программного обеспечения на компьютер конечного пользователя. Выполняется особой программой (пакетным менеджером), присутствующей в операционной системе (например, RPM, APT или dpkg в Linux, Установщик Windows в Microsoft Windows), или же входящим в состав самого программного обеспечения средством установки. В операционной системе GNU очень распространено использование системы GNU toolchain и её аналогов для компиляции программного.
Конте́кстное меню́ — элемент графического интерфейса операционной системы, представляющий собой список команд, вызываемый пользователем для выбора необходимого действия над выбранным объектом. Команды контекстного меню относятся к тому объекту, над которым это меню было вызвано.
Защищённый режим (режим защищённой виртуальной адресации) — режим работы x86-совместимых процессоров. Частично был реализован уже в процессоре 80286, но там существенно отличался способ работы с памятью, так как процессоры ещё были 16-битными и не была реализована страничная организация памяти. Первая 32-битная реализация защищённого режима — процессор Intel 80386. Применяется в совместимых процессорах других производителей. Данный режим используется в современных многозадачных операционных системах.
Мультизагрузка (англ. Multi-boot) это техническая возможность выбора, при включении компьютера, операционной системы для запуска. Для настройки такой возможности может потребоваться специальный загрузчик операционной системы и разбиение диска на несколько разделов.
Снимок файловой системы, или снапшот, или снепшот (от англ. snapshot — мгновенный снимок), — моментальный снимок, копия файлов и каталогов файловой системы на определённый момент времени.
Корзи́на — элемент графического интерфейса пользователя, предназначенный для удаления и, часто, временного хранения удалённых объектов (в некоторых реализациях — только файлов и каталогов). Корзина в ряде систем позволяет восстановить недавно удалённый объект в случае ошибки или недоразумения пользователя.
Бу́фер обме́на (англ. clipboard) — промежуточное хранилище данных, предоставляемое программным обеспечением и предназначенное для переноса или копирования между приложениями или частями одного приложения через операции вырезать, копировать, вставить.
Упако́вка исполняемых фа́йлов заключается в сжатии исполняемого файла и прикреплении к нему кода, необходимого для распаковки и выполнения содержимого файла. Упаковка применяется по ряду причин.
А́дресное пространство (англ. address space) — совокупность всех допустимых адресов каких-либо объектов вычислительной системы — ячеек памяти, секторов диска, узлов сети и т. п., которые могут быть использованы для доступа к этим объектам при определенном режиме работы (состоянии системы).
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе.
Графические форматы делятся на векторные и растровые. Большинство графических форматов реализуют сжатие данных (одни — с потерями, другие — без).
Ярлы́к (англ. shortcut) — файл, служащий указателем на объект (например, файл, который требуется определённым образом обработать), программу или команду и содержащий дополнительную информацию.
Кадровый буфер (англ. framebuffer) (другие названия: буфер кадра, видеобуфер, фреймбуфер) — реальное или виртуальное электронное устройство или область памяти для кратковременного хранения одного или нескольких кадров в цифровом виде перед его отправкой на устройство видеовывода. Буфер может быть использован для выполнения над кадром различных предварительных операций, организации стоп-кадра, устранения мерцания изображения и др. Обычно кадр хранится в виде последовательности цветовых значений каждого.
Кросс-компиля́тор (англ. cross compiler) — компилятор, производящий исполняемый код для платформы, отличной от той, на которой исполняется сам кросс-компилятор. Такой инструмент бывает полезен, когда нужно получить код для платформы, экземпляров которой нет в наличии, или в случаях когда компиляция на целевой платформе невозможна или нецелесообразна (например, это касается мобильных систем или микроконтроллеров с минимальным объёмом памяти).
Уровень абстракции — один из способов сокрытия деталей реализации определенного набора функциональных возможностей. Применяется для управления сложностью проектируемой системы при декомпозиции, когда система представляется в виде иерархии уровней абстракции.
Формати́рование ди́ска — программный процесс разметки области хранения данных электронных носителей информации, расположенной на магнитной поверхности (жёсткие диски, дискеты), оптических носителях (CD/DVD/Blu-ray-диски), твердотельных накопителях (флэш-память — flash module, SSD) и др. Существуют разные способы этого процесса.
DLL (англ. Dynamic Link Library — «библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах Microsoft Windows и IBM OS/2 — динамическая библиотека, позволяющая многократное использование различными программными приложениями. Эти библиотеки обычно имеют расширение DLL, OCX (для библиотек содержащих ActiveX), или DRV (для ряда системных драйверов). Формат файлов для DLL такой же, как для EXE-файлов Windows, т. е. Portable Executable (PE) для 32-битных и 64-битных.
Буферизация (от англ. buffer) — способ организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни устройства или процессы производят запись данных в буфер, а другие — чтение из него, при выводе — наоборот. Процесс, выполнивший запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны другим процессом, которому они предназначены.
Общий ресурс, или общий сетевой ресурс, — в информатике, это устройство или часть информации, к которой может быть осуществлён удалённый доступ с другого компьютера, обычно через локальную компьютерную сеть или посредством корпоративного интернета, как если бы ресурс находился на локальной машине.
Блокнот (англ. Notepad) — простой текстовый редактор, являющийся частью операционных систем Microsoft Windows, начиная с вышедшей в 1985 году Windows 1.0.
Совмести́мость — способность различных объектов — аппаратных или программных компонентов — взаимодействовать друг с другом. По отношению к компьютерам можно выделить аппаратную (техническую), программную и информационную совместимость.
Исполняемый файл (англ. executable file, также выполняемый, реже исполнимый, выполнимый) — файл, содержащий программу в виде, в котором она может быть исполнена компьютером. Перед исполнением программа загружается в память, и выполняются некоторые подготовительные операции (настройка окружения, загрузка библиотек).
Кластер (англ. cluster) — в некоторых типах файловых систем — логическая единица хранения данных в таблице размещения файлов, объединяющая группу секторов. Например, на дисках с размером секторов в 512 байт, 512-байтный кластер содержит один сектор, тогда как 4-килобайтный кластер содержит восемь секторов.
Двои́чная совмести́мость, бина́рная совмести́мость (англ. binary compatibility) — вид программной совместимости, позволяющий программе работать в различных средах без изменения её исполняемых файлов.
Архив — это файл, содержащий в себе один или несколько других файлов и/или папок, а также метаданные. Архивы используются для объединения множества любых файлов в единый файл-контейнер с целью удобства хранения и переноса информации или просто чтобы сжать данные. Для создания архивов и работы с ними используются программы-архиваторы.
Командный интерпретатор, интерпретатор командной строки — компьютерная программа, часть операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки или последовательного исполнения пакетных командных файлов.
Декомпиля́тор — это программа, транслирующая исполняемый модуль (полученный на выходе компилятора) в эквивалентный исходный код на языке программирования высокого уровня.
Начальная загрузка — сложный и многошаговый процесс запуска компьютера. Загрузочная последовательность — это последовательность действий, которые должен выполнить компьютер для запуска операционной системы (точнее, загрузчика), независимо от типа установленной ОС.
Boot, FAT и т. д.
Хорошо было во времена старых-добрых EC1840. Был дисковод на 5 дюймов, были большие и очень гибкие дискеты. На них все было понятно — Boot-сектор, FAT, таблица файлов… А потом появились эти противные винчестеры по 20 мегабайт, и картина сразу изменилась — обнаружился какой-то непонятный Master Boot Record, простой Boot, логические диски, таблица разделов, и жить стало сложнее. Вопрос, как все это работает и для чего оно нужно (второй важнейший вопрос после сакраментального — едят ли курицу руками?), продолжает мучить просвещенное человечество с тех самых пор и до нынешнего момента. Итак, с чем же их едят…
Для начала немного об адресации на винчестере. Основная единица измерения — сектор. Размер сектора — 512 байт. Секторы можно адресовать либо непосредственно по номеру, либо задавая комбинированный адрес, состоящий из номера цилиндра (дорожки), номера головки (стороны) и номера сектора на дорожке. Перевод из одного в другое производится по простенькой формуле: Номер сектора = (номер цилиндра X число головок X число секторов) + (номер головки X число секторов) + (номер сектора — 1)
Единица вычитается потому, что счет секторов ведется с нуля. Глубже вдаваться в адресацию не имеет смысла, поскольку тогда придется писать отдельную статью про то, почему DOS не понимает большие диски и какими извращенными способами это лечилось.
Вторая основная единица — кластер. Кластер — это несколько секторов, рассматриваемые операционной системой как одно целое. Переход к кластерам произошел потому, что размер таблицы FAT был ограничен, а размер диска менялся. В случае FAT16 для диска объемом 512 Мб кластер будет величиной 8 Кб, до 1 Гб — 16 Кб, до 2 Гб — 32 Кб и так далее.
MBR (Master Boot Record — основной сектор загрузки).
Расположен в нулевом секторе (цилиндр 0, сторона 0, сектор 1). На каждом жестком диске имеется в одном экземпляре и содержит в себе много интересного. По смещению 0H (далее для простоты все смещения будут в шестнадцатиричной системе) находится сам загрузчик. Его задача — обнаружить активный раздел и загрузить его Boot-сектор в память по адресу 0000:7С00. Далее, по смещению 1BE находится Partition Table (именно в ней загрузчик и ищет активный раздел). По смещению 1FE (последние два байта сектора) находится сигнатура 55AA H, обозначающая загрузочный сектор. Вся дорожка с MBR считается служебной и информация туда не записывается.
Partition Table— таблица разделов.
Живет в одном секторе с MBR по смещению 1BE. Размер PT — 64 байта (на описание одного раздела отводится 16 байт, так что максимум описывается 4 раздела). Для каждого раздела указано, загрузочный (активный) ли он (первый байт описания: 80 H — активный, 0H — нет), адрес начала раздела (в цилиндрах, головках и секторах), код системы, адрес конца раздела, логический адрес начала раздела (в секторах) и количество секторов в разделе. Посмотреть все это в удобоваримом виде можно при помощи бессмертной и незаменимой программы Diskedit в режиме as partition table. Как правило, на большинстве дисков имеется один или два раздела: Primary DOS и (если есть) Extended DOS. PT создается программой FDISK при разбивке винчестера на разделы.
Primary DOS Partition (основной раздел)
— тяжелое наследие старых версий DOS. Сохранился со времен, когда DOS понимал только один раздел. Не может быть больше 2 Гб (под FAT 16). Совпадает с первым логическим диском на винчестере. Только Primary Partition может быть загрузочной. Создается программой FDISK.
Extended DOS Partition (расширенный раздел)
— способ обойти ограничение на размер раздела 2 Гб. Внутри расширенного раздела можно создавать отдельные логические диски. Если посмотреть в PT адрес расширенного раздела и потом при помощи Diskedit перейти на этот адрес, то обнаружится сектор, по своей структуре напоминающий PT. Состоит он из двух элементов: первый описывает текущий раздел (Extended DOS), второй — следующий логический диск (если он есть). По указанному адресу снова обнаружится такая же таблица, а в ней адрес следующего логического диска (опять же, если он существует). В конце сектора имеется все та же сигнатура 55AA H, по которой его можно найти на диске (все в том же Diskedit’е). Вся остальная дорожка, как и в случае MBR — пустая. Создается программой FDISK.
Boot Sector (загрузочный сектор).
Собственно говоря, загрузочный сектор. Boot sector находится в начале каждого логического диска (первый сектор следующей дорожки после PT). В начале сектора находится команда Jmp — переход на начало кода загрузчика. По смещению 3 находится поле длиной 8 байт, содержащее название и версию OS — при загрузке не используется. Далее, по смещению 0B расположен блок из 19 байт, описывающий логические параметры диска (штука, весьма полезная в хозяйстве) — число байт в секторе (для DOS — 512), число секторов в кластере, число резервных секторов (то есть число секторов от начала диска до первой копии FAT — обычно один), число копий FAT (две), формат FAT в текстовом виде (FAT12, FAT16 или FAT32), размер корневого каталога (считается в записях по 32 байта), общее число секторов на диске, тип носителя (совпадает с первым байтом FAT) и число секторов в FAT. Опять же, всю эту информацию в понятном виде выводит Diskedit в режиме as Boot sector. По смещению 2B находится метка тома (длиной 11 байт). По смещению 3E расположен сам начальный загрузчик. Его задача — проверить первый сектор корневого каталога на наличие файлов IO.SYS и MSDOS.SYS и, обнаружив их, загрузить начало IO.SYS по адресу 0000:0700 H и передать ему управление. В последних двух байтах сектора записана привычная сигнатура 55AA H. Создается при форматировании.
FAT (File Allocation Table — таблица размещения файлов).
FAT расположен непосредственно за загрузочным сектором и представляет собой цепной список, предназначенный для поиска файла на диске. В зависимости от типа (FAT12, FAT16 или FAT32), имеет разную структуру. Но в самом примитивном виде идея следующая — каждый элемент FAT соответствует одному кластеру на диске. В корневом каталоге находится ссылка на первый кластер, занимаемый файлом. В FAT ищем этот кластер и смотрим, что в нем записано. Варианты следующие: кластер свободен, зарезервировано, дефектный, конец цепочки или номер следующего кластера в файле. Файл считывается до тех пор, пока не встретится код конца цепочки. В DOS (и его прямом наследнике — Windows) используется две копии FAT — для надежности. Обе копии должны быть идентичны (на диске они расположены друг за другом). Первый байт FAT скрывает в себе дескриптор носителя (F8 H для жесткого диска). Следующие несколько байт описывают тип FAT. За ними идет сама таблица. Создается при форматировании.
Root Directory (корневой каталог).
Идет сразу за второй копией FAT. Имеется на каждом диске. Практически это тот самый список файлов и директорий, который вы видите, открывая диск в Explorer’е или Far’е. Корневой каталог состоит из 32 байтных элементов (на самом деле, с появлением длинных имен файлов для каждого файла отводится несколько таких элементов). В них содержатся имя файла, расширение, атрибуты, дата и время создания, размер файла и номер первого кластера. Корневой каталог создается при форматировании.
После Root Directory начинается собственно область файлов, где и хранятся все ваши нажитые непосильным трудом данные. Но это уже совсем другая история…






