Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Физическое местоположение загрузчика grub  (Прочитано 3052 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kosteek

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #15 : 09 Февраля 2016, 16:53:13 »
Не сильно разбираясь в этом, чтобы не терять/переустанавливать загрузчик Windows .....  оставить первичным загрузчиком - загрузчик Windows....
Я скинул ссылку с лекцией для познавательной цели. Рекомендую посмотреть и все вопросы сами собой отпадут. Все подробно объясняется.
При установке груба, виндовый загрузчик остается на месте. Также можно заставить виндовый загрузчик грузить линукс. http://ubuntovod.ru/instructions/ubuntu-boot-ini.html
GRUB и загрузчик винды - это вторичные загрузчики. Первичный лежит в первом секторе и подгружает вторичный загрузчик.
« Последнее редактирование: 09 Февраля 2016, 17:01:06 от kosteek »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #16 : 09 Февраля 2016, 18:54:36 »
Вы блин доспоритесь. А истина будет где-то рядом. Особенно если идёт загрузка в UEFI.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн R.E.I.S.U.B.

  • Автор темы
  • Участник
  • *
  • Сообщений: 103
  • Welcome to the Madhouse!
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #17 : 09 Февраля 2016, 19:25:22 »
kosteek,
Дюшик, на самом деле ближе к истине. В лекции объясняется базовое понятие и ни слова о загрузочном секторе. Вернее там лишь говорится вскользь о пространстве между первым сектором и первым разделом.
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%81%D0%B5%D0%BA%D1%82%D0%BE%D1%80
Собственно эта статья говорит о бутсекторе, который имеет место быть на каждом разделе.
А поскольку при выборе установки grub я указываю раздел, а не том, то и записаться он должен бы (о чём я и спрашиваю) в первый сектор раздела.
В случае с загрузчиком Windows, да он остаётся первичным, но grub, установленный на раздел так же является первичным, и лишь после подтверждения своего выбора в загрузчике grub он передаёт управление вторичному загрузчику.
Загрузчик Windows остаётся в начале диска по моей прихоти, ибо я отчасти контролирую этот процесс. А то, о чём я спрашивал если я скопирую первый сектор раздела на первый сектор всего диска, то получу ли я загрузчик grub на выходе?
Дюшик, благодарю за эксперимент. Только вот было бы интересней скопировать именно первый сектор, дабы убедиться наверняка. А вообще по большому счёту интересовался я с той целью что если я однажды захочу полностью удалить grub то он же не удалится из первого сектора? Или всё же...
ОС: Ubuntu 14.04.1 LTS 64-bit; Ядро: 3.19.0-56-generic

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #18 : 09 Февраля 2016, 19:39:03 »
У вас логика странная.
Вы указываете GRUB с какого раздела ГРУЗИТЬ СИСТЕМУ, а куда установиться - он сам сообразит.
# grub-install --recheck --no-floppy /dev/md0
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн R.E.I.S.U.B.

  • Автор темы
  • Участник
  • *
  • Сообщений: 103
  • Welcome to the Madhouse!
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #19 : 09 Февраля 2016, 19:50:53 »
AnrDaemon,
Я же в первом посте подчеркнул что вопрос из любопытства. Мне интересно ставится ставится загрузчик в первый сектор раздела или среди файлов затисывается куда-то, а загрузчик Windows ссылается на него по lba или ещё как-нибудь там..
ОС: Ubuntu 14.04.1 LTS 64-bit; Ядро: 3.19.0-56-generic

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #20 : 09 Февраля 2016, 19:54:27 »
Почему "или"? Он в оба места пишется.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн R.E.I.S.U.B.

  • Автор темы
  • Участник
  • *
  • Сообщений: 103
  • Welcome to the Madhouse!
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #21 : 09 Февраля 2016, 19:56:04 »
AnrDaemon,
Ну это же только в случае с загрузчиком Windows, или нет? Ведь в корне Ubuntu нигде не лежит core.img
..вернее лежал в grub-unity
ОС: Ubuntu 14.04.1 LTS 64-bit; Ядро: 3.19.0-56-generic

Оффлайн vip.lohmatiy

  • Забанен
  • Активист
  • *
  • Сообщений: 555
  • RealScanFoto
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #22 : 09 Февраля 2016, 20:03:12 »
R.E.I.S.U.B., нет слов - core.img лежал в grub-uniti.
CPU-1.1G , RAM-640M , VGA-16M , рядом Матэ белка.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #23 : 09 Февраля 2016, 20:08:25 »
AnrDaemon,
Ну это же только в случае с загрузчиком Windows, или нет?
Погуглите уже, как вообще работает GRUB. В частности, что такое "стадия полтора".
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Дюшик

  • Активист
  • *
  • Сообщений: 895
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #24 : 09 Февраля 2016, 21:32:21 »

Мне интересно ставится ставится загрузчик в первый сектор раздела или среди файлов затисывается куда-то, а загрузчик Windows ссылается на него по lba или ещё как-нибудь там..

Загрузчик Windows никуда не ссылается, он просто ищет активный раздел на диске (раздел помеченый флагом boot) и передаёт управление бутсектору этого раздела. Дальше загрузчик из бутсектора ищет на разделе файл загрузки, который прописан в бусекторе (для Ubuntu это будет GRUB, для Windows это NTLDR или bootmgr). Если на разделе не окажется файла загрузки соответсвующего записаному в бутсектре, то загрузка завершится ошибкой. Если на диске нет активного раздела, то тоже ничего не загрузится.   

Оффлайн vip.lohmatiy

  • Забанен
  • Активист
  • *
  • Сообщений: 555
  • RealScanFoto
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #25 : 09 Февраля 2016, 21:51:51 »
Pilot6, Согласен, лоханулся, в 0 стоит только он и показывает в какой загрузчик(остальную его часть) пальцем ткнуть, ОС может быть десяток и при каждой своя часть загрузчика.
CPU-1.1G , RAM-640M , VGA-16M , рядом Матэ белка.

Оффлайн kosteek

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #26 : 09 Февраля 2016, 23:12:47 »
Первичный загрузчик не умеет работать с файловой системой, он по сути вообще ничего не умеет делать, только считать первый сектор загрузочного раздела. GRUB это мини ОС, умеет работать с файловыми системами (есть свой драйвер), находит ядра, умеет их конфигурировать, подключать/отключать модули. И это все до загрузки ядра основной ОС.
UEFI - это страшный зверь. Знаю что у него есть свой драйвер работы с фаловыми системами (с FAT32 точно умеет работать).

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #27 : 09 Февраля 2016, 23:21:39 »
GRUB это мини ОС, умеет работать с файловыми системами (есть свой драйвер)
Верно.
Цитировать
находит ядра, умеет их конфигурировать, подключать/отключать модули. И это все до загрузки ядра основной ОС.
Неверно.
Цитировать
UEFI - это страшный зверь. Знаю что у него есть свой драйвер работы с фаловыми системами (с FAT32 точно умеет работать).
EFI это не зверь, это технология. В случае EFI загрузчиком является BIOS системы. GRUB как таковой в этом случае не нужен. Вернее, не нужен его загрузчик.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Физическое местоположение загрузчика grub
« Ответ #28 : 10 Февраля 2016, 00:05:35 »
Нужно четко разделять два варианта загрузки (BIOS и UEFI), и два варианта разметки(MBR и GPT). Это две независимых вещи и 2х2 дает 4 варианта загрузки:

1. BIOS + MBR: самый первый сектор (обычно с номером 0) загружается биосом в память и запускается. Все. Больше от биоса ничего не зависит - всем остальным рулит код в 0-м секторе. И далее все зависит от того - код какого загрузчика туда записан.
В случае dos/windows там записан код, который из таблицы разделов (которая в конце 0-го сектора записана и считана в ОЗУ вместе с кодом) находит активный(boot) раздел, загружает первый сектор из этого раздела и передает ему управление. Дальше уже от кода MBR ничего не зависит - всем рулит код с раздела, а тот уже знает где взять io.sys/ntldr и как их загрузить и запустить. Далее уже загрузка идет утилитами из файловой системы, котрые уже умеют с этой FS работать. Такой механизм может загрузить только загрузчик винды и если надо загрузить что то иное - то надо уже виндовому загрузчику накручивать конфиг.

В случаае GRUB - он бесцеремонно занимает не только 0-й сектор но и весь остаток 0-го трека (он не используются - первый раздел начинается с 1-го трека). Это уже приличный объем кода (не то что 400+ байт в MBR) и там уже размещен более толковый код, который знает где (на каком разделе) лежит следующая фаза загрузки GRUB (причем знает это не по флагам в таблице разделов а по абсолютному пути и даже, если это логический раздел в расширенном). Кроме того там есть простенький (read only) драйверочек для той ФС где лежит следующая фаза GRUBа. Ну и эта следующая фаза загружена - дело в свои руки берет груб со всеми своими причиндалами и наворотами и грузит все, что угодно.

2. BIOS + GPT: На самом деле оригинальный BIOS GPT не знает, он в принципе и MBR разметки не знает (работает с таблицей разделов код в MBR) Правильно называть это уже не BIOS, а модуль обратной совместимости UEFI. Так вот в GPT уже нет места в 0-м секторе на 0-м треке и нельзя пользоваться таблицей разделов в конце MBR - таблица раздело в начале диска и она на несколько секторов. И тут этот модуль совместимости начинает обманывать и установщик ОС и процесс загрузки. При установке ос, все то что установщик попробует записать на 0-й трек, он перенаправляет и записывает в специальный бинарный раздел. А для инициализации системы он берет первый сектор из этого бинарного раздела и передает ему управление, но если этот сектор захочет прочитать 0-й трек, то ему подсунут данные из бинарного раздела.
Ну, а дальше - принципиальной разницы с вариантом 1 - нет.

3 и 4. UEFI + MBR и UEFI + GPT, а вот эти два варианта еще меньше различаются: Тут загрузкой рулит UEFI, который из коробки умеет читать fat32, помнит варианты загрузки и порядок их перебора, позволяет автоматом подгружать различные драйвера (например для других ФС), еще умеет проверять подписи у загружаемого кода (режим SecureBoot)
Так вот для загрузки через UEFI установщик ОС должен свой начальный загрузчик положить на служебный раздел UEFI и еще создать пункт загрузки (в NVRAM переменных uefi), котрый будет ссылаться на этот загрузчик. По дефолту же (если нет пунктов загрузки) загружается EFI\BOOT\BOOTx64.EFI (…x32.EFI для 32-х битных платформ).
А дальше уже загрузчик загруженный со служебного раздела отвечает за загрузку ОС.
Но надо отметить, что загрузчик тут уже не в вакуме полном загружается с примитивным набором прерываний что обеспечивает BIOS, загрузчик это - обычное приложение и выполняется он в окружении мини-ос, которой является сам UEFI. UEFI (как уже было сказано выше) может не только загрузчик запустить, но, например, и предварительно загрузить драйвера ФС тех разделов к которым будет нужен доступ загрузчику.

С UEFI вообще открываются огромные возможности, и в частности можно ядро LINUX прямо из UEFI загрузить (смотри по ссылке UEFI-Boot в подписи). Но если интересно про UEFI - почитайте эту статью.
« Последнее редактирование: 10 Февраля 2016, 00:13:24 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Физическое местоположение загрузчика grub
« Ответ #29 : 10 Февраля 2016, 00:27:00 »
Кстати, подпилил вики статью, добавил решение для VB.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.077 секунд. Запросов: 23.