Я читал о процессе загрузки компьютера и узнал, что компьютер загружает код загрузчика из MBR
. Поэтому я хотел взглянуть на свой MBR
пример:
sudo dd if=/dev/sda of=mbr bs=512 count=1
Я открыл его с помощью Vim и выполнил :%!xxd
, чтобы получить шестнадцатеричный вид файла. Этот файл выглядит так
Согласно тому, что я нашел в Интернете, первые 446 байт этой записи должны быть кодом загрузчика. Но в моем случае это только нули. Я не думаю, что загрузчик должен выглядеть так, но мой компьютер загружается абсолютно нормально. Почему это так? Почему в нем только нули MBR
(за исключением таблицы разделов, я полагаю), но мой компьютер загружается. У меня GRUB
в качестве загрузчика.
решение1
Вы, вероятно, читали устаревший текст. Современные компьютеры не загружаются через MBR. Точнее, мы находимся в переходном периоде, некоторые из них используют MBR, некоторые нет.
Одной из причин является тот факт, что MBR не позволяет разбить диск на разделы размером более 2 ТиБ.
Да, вы dd'или место, где обычно находится MBR, но там нет кода, а таблица разделов содержит только одну запись, которая охватывает весь диск. Это так называемая защитная MBR, ваш диск имеет структуру GUID Partition Table (GPT) (т. е. использует другую систему разделов), и ваш компьютер, вероятно, загружается через UEFI. У вас, вероятно, есть небольшой раздел с файловой системой FAT32, который называется EFI System Partition (ESP) и содержит файл EFI/BOOT/bootx64.efi - этот файл является загрузчиком (grub или какой-то загрузчик-заглушка, который немедленно запускает grub), который выполняется прошивкой. Или вы могли бы настроить прошивку для загрузки произвольного исполняемого файла EFI, но он все равно должен присутствовать в ESP.
Вы можете подтвердить, что загрузили UEFI в Linux, если в вашей загруженной системе есть непустой каталог /sys/firmare/efi.