Как посмотреть mbr linux

Системное администрирование и мониторинг Linux/Windows серверов и видео CDN

Статьи по настройке и администрированию Windows/Linux систем

  • Полезное
    • Карта сайта
    • Мой сайт-визитка
  • Рубрики
    • Linux
      • VoIP
      • Безопасность
      • Видеопотоки
      • Системы виртуализации
      • Системы мониторинга
    • Windows
    • Интересное
    • Сеть и Интернет
  • Мета
    • Войти
    • RSS Feed

Процесс загрузки Linux


Хотел бы навести краткое описание уровней загрузки (runlevels) в Linux. А именно на уровнях загрузки дистрибутива Ubuntu. Но для начала пройдемся по самому процессу загрузки системы.

BIOS vs UEFI

Первым делом подгружаеться BIOS, который выполняет базовое тестирование при включении питания POST(power-on self test), т.е. проверка всех подключенных аппаратных средств. Потом выполняется нумерация и инициализации локальных устройств. После этих действий BIOS передает управление MBR.
В современных системах на смену BIOS пришел UEFI (Unified Extensible Firmware Interface). Это программный интерфейс, который работает между операционной системой и прошивкой платформы, что позволяет заменить BIOS. Он же в свою очередь использует GPT (GUID Partition Table) вместо таблиц MBR. Если размер диска превышает 2.2 TB, то без GPT уже не обойтись, потому что MBR поддерживает диски только до 2-х терабайтов.

MBR vs GPT

Типичная загрузка системы производиться HDD, на котором в MBR содержится первичный начальный загрузчик. MBR представляет собой сектор размером 512 байт, который располагается в первом секторе диска (сектор 1 цилиндра 0, головка 0). Для просмотра содержимого MBR используйте следующую команду:

Первые 446 байт представляют собой собственно первичный загрузчик, который содержит как программный код, так и текст сообщений об ошибках. Следующие 64 байта представляют собой таблицу разделов, которая содержит запись для каждого из четырех разделов диска (по 16 байт каждая). В конце MBR располагаются два байта, которые носят название «магического числа» (0xAA55). Это магическое число служит для целей проверки MBR.
Диски, использующие GPT, в нулевом секторе по-прежнему могут содержать обычную главную загрузочную запись (MBR), используемую для загрузки с этого диска операционной системы в том случае, если компьютер не соответствует спецификации UEFI.
Независимо от того, используется ли на вашем компьютере устаревшая система BIOS или новый интерфейс EFI, таблица разделов GPT позволяет устранить множество ограничений, связанных с главной загрузочной записью:

  • GPT работает исключительно с адресацией LBA, поэтому можно забыть обо всех проблемах, связанных с адресацией CHS.
  • Дисковые указатели имеют размер в 64 бита; это означает, что GPT может работать с дисками емкостью вплоть до 512 x 264 байтов (8 зебибайтов, или 8.6 миллиардов ТиБ) при размере сектора 512 байтов.
  • Структуры данных GPT хранятся на диске в двух местах: в начале и в конце диска. Это повышает шансы на успешное восстановление данных после аппаратных сбоев или обнаружении сбойных секторов.
  • Для критически важных структур данных вычисляются циклические значения проверок избыточности, что повышает шансы на обнаружение поврежденных данных.
  • GPT хранит все разделы в единой таблице разделов (которая резервируется), поэтому нет необходимости использовать расширенные или логические разделы. По умолчанию можно создать 128 разделов, но размер таблицы разделов можно изменять, если это поддерживается программным обеспечением для работы с разделами.
  • MBR использует для идентификации раздела однобайтовый код с типом раздела, однако GPT использует для этого 16-байтовый глобальный уникальный идентификатор (GUID). Это снижает вероятность коллизий, связанных с типом разделов.
  • GPT позволяет использовать удобочитаемые имена разделов. Это поле можно использовать для присвоения в Linux® имен разделам /home, /usr, /var, а также другим разделам для их быстрой идентификации при работе с программным обеспечением.
Читайте также:  Указано слишком длинное имя файла как открыть windows

После первичного загрузчика (MBR/GPT) подгружается GRUB (GRand Unified Bootloader), который уже понимает что такое файловая система и может показать показать список имеющихся ядер (которые определяются в /etc/grub.conf, с поддержкой мягких ссылок из /boot/grub/menu.lst и/boot/grub/grub.cfg). К примеру типичное меню с grub.cfg:

Здесь указываться образ временной файловой системы initrd.img и образ ядра vmlinuz, которому передается следующий этап загрузки.

После того как образ ядра оказывается в памяти и ему передается управление от загрузчика 2-й ступени. Если имеется образ начального RAM-диска (initrd), то программа также перемещает его в память и помечает для дальнейшего использования, а затем вызывает само ядро, после чего начинается загрузка ядра. Просмотр содержимого начального RAM-диска и способы его редактирование можете посмотреть здесь Пример:

initrd используется самим ядром в качестве временной корневой файловой системы, пока kernel не загрузится в реальную примонтированную файловую систему. Этот временный диск также содержит необходимые для загрузки драйверы, позволяющие получить доступ к разделам дисков и другому оборудованию. Создать свое примитивное ядро можно по этой инструкции.

После загрузки и инициализации ядра запускается первое приложение в пространстве пользователя /sbin/init, которое обращается к файлу /etc/inittab (или /etc/init/rc-sysinit.conf) для того, чтобы определить уровень выполнения (run level).
Есть следующие уровни выполнения:

  • 0 — выполняются действия по выключению системы.
  • 1 — однопользовательский режим (single user mode). Предназначен для различных административных действий по восстановлению системы. По своему смыслу аналогичен Safe Mode Windows, но полностью его не повторяет. На этом уровне выполнения система полностью сконфигурирована, но не запущен ни один сервис, а из пользователей может работать только один root.
  • 2 — не используется, но сконфигурирован как уровень выполнения 3. В RedHat и SuSE Linux сконфигурирован как уровень выполнения 3, но без поддержки сетевых файловых систем. В Ubuntu и Debian используется как многопользовательский режим.
  • 3 — многопользовательский режим (multiuser mode). Нормальный режим работы сервера.
  • 4 — В Slackware Linux используется для графического входа в систему. В RedHat и SuSE Linux не сконфигурирован.
  • 5 — В RedHat и SuSE Linux используется для графического входа в систему. В Slackware Linux не сконфигурирован.
  • 6 — выполняются действия по перезагрузке системы.

Посмотреть текущий уровень исполнения и задать дефотлный:

Так же можно на прямую вписать в grub.cfg.

Runlevel

Для каждого вышеперечисленного уровня выполнения в Ubuntu есть своя папка со скриптами:

Когда загружается система — программа init смотрит на уровень выполнения заданный по дефолту и лезет в соответствующею папку со скриптами. В каждой из папок rc*.d есть набор скриптов:

Скриптам, которые начинаются на S (startup) передается параметр start.
Скриптам, которые начинаются на K (kill) передается параметр stop.
Для наглядного примера, добавим свой скрипт начальной загрузки.

Здесь мы добавили добавили скрипт с стандартными опциями (status|start|stop|restart). При вызове одной из них — мы записываем вывод с указанием времени в файл /home/alex/testappfile чтобы узнать очередность запуска скриптов. Далее нам нужно добавить запуск скрипта на стандартных уровнях выполнения.

Теперь перезагружаем систему и потом смотрим в файл testappfile.

Источник

GPT или MBR: откуда я знаю?

Как я могу определить, размечен ли мой жесткий диск в формате MBR или GPT ?

Вы можете использовать, parted -l чтобы определить тип таблицы разделов. Например:

Partition Table Поле показывает , что я использую msdos MBR таблицы разделов (тот , по- прежнему широко используется для Linux и Windows) на обоих дисках. Со man страницы parted можно создать (и, как мы надеемся, идентифицировать) следующие типы таблицы разделов (или, более широко, «метка диска»):

Обновить

Стоит добавить команду для перечисления одного раздела, так как это не очевидно без некоторого знания, parted и может оказаться затруднительным найти нужные данные, если имеется несколько дисков. Для /dev/sda вас будет делать:

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

Здесь, /dev/sda это узел устройства физического диска , а не раздел ( /dev/sda1 , /dev/sda2 и т.д., перегородка).

Читайте также:  Windows 10 bitlocker не видит флешку

Если вы видите что-то, что включает в себя:

У вас есть диск в стиле MBR. Не волнуйтесь, это не принесло никакого вреда.

Если вы не видите это предупреждение, у вас есть GPT-диск или гибридный GPT / MBR- диск. Последние используются в основном на компьютерах Apple, предназначенных для двойной загрузки версий MS Windows, которые не поддерживают GPT. gdisk укажет это с помощью:

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

Источник

Разметка диска GPT или MBR Linux

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

Существует 2 типа таблиц разметки:

  • Устаревшая MSDOS (MBR) [часто обозначается как BIOS, Legacy BIOS] — главная загрузочная запись — Master Boot Record, редакторы его могут отображать как dos или msdos.
  • И современная UEFI (GPT) — GUID Partition Table.

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

В графическом режиме доступны утилиты, например Редактор разделов System — PartitionManager , или GParted , кому что больше нравится.. Ниже покажу как это можно сделать из командной строки (консоли Linux).

Смысл делить диск на разделы в Линуксе — чтоб директория /home была в отдельном разделе (папки и настройки пользователей). В случае переустановки операционной системы отформатируем первый (корень) раздел и установим недостающий софт, и вуаля все настройки программ автоматом подцепятся из /home.. Сегодня достаточно 20Гб под корень / и от 10 ГБ под /home. т.е. создаём 2 раздела на диске + EFI раздел если доступен UEFI (GPT)..

Своп (linux-swap — раздел подкачки) я не использую, начиная с Ubuntu 18.04 отказываются от раздела swap, вместо него будет использоваться файл подкачки (swapfile) . Он может понадобиться для режима сна ноутбука или если мало памяти — система менее 1 — 2 Гб памяти использует (в зависимости от сборки).. Для режима сна необходим раздел/файл подкачки = размер памяти + 2 Гб. т.е. просто добавьте запас места в корневом разделе..

Если используете SSD диск — оставляйте 10% (от 10 до 20%) места в конце неразмеченными, это продлит его ресурс, поскольку там будут проходить фоновые операции записи.. (По умолчанию на SSD диске есть скрытая область для этого, эта неразмеченная пойдёт в плюс к ней..) И судя по тестам из интернетов — эта дополнительная область увеличит IOPS — количество операций ввода и вывода, тем самым ускоряя операции с диском.

Просмотр разметки диска и прочей информации в консоли

Вариантов намного больше, но первых 4-х вполне достаточно..

Диск с таблицей разделов MBR

Где-то в 80-х был создан формат для загрузки диска с таблицей разделов MBR, он имеет ограничение поддержки дисков объёмом до 2.2 Тб и ограничения по количеству(4) первичных (главных — primary) разделов, остальные создаются в расширенном разделе.. Необходимо выставлять флаг с какого раздела грузиться для БИОС-а компьютера, его ещё активным разделом называют.. Запись MBR занимает первые 512 байт в первом секторе на диске..

В консоли создать MBR и поделить можно так (пусть диск будет 30 Гб):

Дополнения и пояснения:
# — значок комментария.
p — посмотреть разделы.
d — удалить разделы.
b — редактировать метки диска (edit bsd disklabel).

Изменяем тип таблиц на Linux (L введите чтоб уточнить, зависит от версий).
Должно по умолчанию назначаться..

Скопировать разметку на диск 2, для MBR это делается так (в случае с RAID — полезно):

Диск с таблицей разделов GPT

Диск с таблицей разделов GPT устроен по иному и имеет ряд преимуществ:

  • Размер диска может быть до 9.4 Зеттабайт, для сравнения:
    MBR=2,2Тб против GPT=10 093 173 145,6 Тб.
    Запас на будущее колоссальный, весь трафик интернета за 2016 примерно 1,1 Зеттабайт.
  • GPT допускает 2 64 = 18 446 744 073 709 552 000 основных разделов, но вот Windows допускает не более 128 разделов, хотя в реальной жизни более 3-х не используется..
  • GPT хранит копию данных раздела в конце диска и значения контрольной суммы для проверки целостности данных, позволяя восстановить их в случае повреждения основного заголовка GPT. (MBR же такого не умеет и помнится у меня были случаи повреждения этой записи под Windows.)
  • Загрузка операционной системы происходит быстрее, с UEFI быстрее инициализируется железо.. (На EFI разделе находятся драйверы аппаратных компонентов, к которым может получать доступ запущенная операционная система и в этом случае загрузка происходит прямо с этого раздела, что быстрее.)
  • Нет необходимости в boot флаге разделу.
Читайте также:  Matlab windows 10 x64

В биосе должен быть включён режим UEFI или UEFI + Legacy ищите где-то в Boot Options (загрузка итп..), обычно спаренный режим уже включен на новом железе. Естественно грузимся из под UEFI при установке с флешки (F2, F8, F10, F11, бут меню в БИОС-е или иные)..

Если связь между оборудованием и операционной системой (ОС) осуществляется только через режим UEFI (а не Legacy BIOS), использование GPT для разбивки разделов становится практически обязательным, иначе могут быть проблемы совместимости с MBR. Советую из консоли или при помощи редактора разделов GParted итп. установить тип таблицы gpt, при установке операционной системы, установщик может по умолчанию dos поставить..

UEFI имеет собственный загрузчик операционных систем с интегрированными менеджерами их запуска. Для загрузчика UEFI на диске должен быть создан небольшой загрузочный раздел, который называется EFI System Partition , он же ESP , он же EFISYS и имеет тип EF00 .
При установке Linux будет возможность обозначить тип — системный раздел EFI.
EFI — Extensible Firmware Interface System Partition — системный раздел расширяемого интерфейса прошивки.

На дисках расширенного формата 4K Native (секторы по 4 Кб, по сути это неминуемо в будущем (сейчас 512кб в ходу), с 2010г операционные системы поддерживают новый формат) EFI должен быть не менее 256 Мб в виду ограничений FAT32, посему я делаю его с запасом = 260 Мб (этого хватит на несколько ОС на 1 диске), но можно и 100 Мб.. В интернете встречаются экспериментаторы советующие делать размер не менее 520 Мб (546 Мб), чтоб любой каприз влез, но Линукс занимает около 4 Мб.

На каждом диске может быть не более одного раздела EFI. По стандартам, раздел должен быть отформатирован в файловой системе FAT32 (для USB HDD, USB Flash могут быть поняты при загрузке более старые FAT12, FAT16 (в том числе и EFI)).

Запись GPT занимает первые 2048 секторов (1 Мб) на диске и включает в себя резерв — отступ для MBR 512 байт.

В консоли создать GPT и поделить можно так (пусть диск будет 30 Гб):

Посмотреть разметку диска:

Непосредственно работа с дисками

Тип таблиц на Linux (L введите чтоб уточнить, обозначение зависит от версий)
8200 Linux swap
8300 Linux filesystem

Копирование разметки диска для GPT (в случае с RAID — полезно):

Будьте бдительны, какому гению в голову пришло в обратном порядке выстраивать диски, точнее применять сразу после ключа -R, —replicate=second_device_filename. Поэтому запись в логичном/привычном порядке sgdisk -R /dev/sda /dev/sdb приведёт к затиранию первого диска sda, в этой форме первым пишется диск на который копируется разметка, а вторым с которого копируют.

Страница сгенерирована за 0.002404 секунды
На один процесс веб-сервера: 416 стр./сек.
Всего Apache может отдать: 106 496 стр./сек.
Выделено php памяти: 447.31 KB, real_usage: 2 MB

© Все права защищены 2004 — 2021

Карта сайта
Отслеживать изменения в Твиттере
Политика конфиденциальности

Браузер построил за сек.
Полное время сек.

Источник

Оцените статью