Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Правила форума
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
В сети
Аватара пользователя

slant
Сообщения: 1644
Зарегистрирован: 21 июн 2017, 15:09
Решено: 25
Благодарил (а): 11 раз
Поблагодарили: 692 раза

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение slant » 21 янв 2018, 21:19

Да, вижу что все-таки путаница в терминологии. :) То что находится в MBR - это тоже называется "загрузчик". Как сокращение от "загрузочный код". В литературе встречается регулярно. В англоязычных источниках тоже есть аналогичный "двусмысленный термин" - bootloader.

Касательно вашего примера - он не такой простой. GRUB может взаимодействовать с другими загрузчиками двумя способами:
1. Обнаружить полностью известный ему загрузчик который он точно знает как запускать. В таком случае ему код из MBR от этого загрузчика не нужен для передачи ему управления.
2. Если обнаруживается загрузчик который неизвестен достоверно - выполняется вышеописанная процедура. Из MBR вытягивается код загрузочной записи, записывается в файл, и при необходимости - читается потом уже из файла, передавая ему управление.

Вот каюсь, немного упустил, что с Windows 7 и далее GRUB2 сейчас обычно работает по первому варианту. Но еще в Debian 5 GRUB при установке на диск с Windows XP вполне себе часто использовал второй вариант. Я не знаю достоверно какие условия были необходимы чтобы сработал именно второй вариант - но у меня до сих пор IDE винт лежит с таким dualboot'ом. То же самое происходило при установке linux на диск с windows, где она уже заширована truecrypt (тот ставил свой загрузчик, который был GRUB неизвестен).

Аватара пользователя

S.A.
Сообщения: 142
Зарегистрирован: 26 апр 2017, 06:53
Благодарил (а): 7 раз
Поблагодарили: 27 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение S.A. » 22 янв 2018, 11:30

Понял. В моей голове всё вернулось (встало) на место. Уфф...

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 26 янв 2018, 00:44

slant писал(а):
19 янв 2018, 19:16
Текст набран лично по своим знаниям, в вики не глядя вообще.
Ну извиняюсь, если что не так, бывает у меня. Я просто читаю комменты (не ваши) и часто прослеживается такой анахронизм, понапридумывают себе какие-то условности, ограничения и страхи, что хочется сказать - сбросьте оковы, это же Линукс! Линукс - это свобода, в первую очередь, он может дать (позволить) вам гораздо больше, чем вы себе представляете. Зачем загонять себя в какие-то рамки, если их по сути нет.
Ладно, по-другому вопрос. Почему установщик Минта официально даёт возможность поставить grub на раздел? Он же не дурак. Например, он дает поставить на раздел с системой, но не даёт на своп-раздел.
И в той же вики теперь так пишут..
Рекомендации по установке загрузчика
Выбор раздела
Проще всего установить GRUB2 в корневой раздел. По-умолчанию для этого используется каталог с загрузочными образами ядра /boot, но можно установить каталог grub/ в корень /, или в другое место в пределах раздела. GRUB2 обладает средствами для чтения нескольких типов таблиц разделов, логических томов, образов дисков, множества файловых систем и архивов. В большинстве случаев он может читать свои файлы и загружать ОС практически с любого раздела и диска.
Только в тех случаях, когда ArchLinux установлен на диск, недоступный для чтения средствами BIOS или UEFI, которыми пользуется загрузчик, либо если для корневого раздела использована слишком новая, экзотическая, или зашифрованная файловая система, не читаемая GRUB2, может потребоваться вынос каталога /boot на отдельный диск либо раздел, и установка загрузчика на него.
Если загрузчик в состоянии прочесть корневой раздел, создание отдельного раздела для /boot не нужно и не рекомендуется.
Если на компьютере установлено несколько операционных систем или диструбутивов, может оказаться удобным сделать один системонезависимый загрузчик, и установить его на отдельный диск или раздел
Т.е. без разницы, диск или раздел, там нет таких категоричных ограничений..
slant писал(а):
18 янв 2018, 00:41
загрузчик всегда должен находится в MBR
И я о чем разговор начал - о безопасности загрузчика, от той же винды, как многие выше писали (чтобы побороть и этот страх). Если grub в корневом разделе, да пускай винда в мбр хоть утрётся, она grub никак не нарушит. В противном случае, имеем что имеем, куча вопросов на форумах и страх перед виндой, что уже на разные диски ставят из-за этого.
slant писал(а):
19 янв 2018, 19:16
Вы уже ставили когда-то GRUB в MBR - значит там уже сидит его загрузочный код. Он никуда не девается
То был старый диск, сейчас новый USB 3.0 (по осени приобрёл, он ещё формируется), grub ставил однажды на sdb3 и всё. Другие Линуксы восстанавливал, или не ставил загрузчик. И МБР так выглядит, стандарт аж 98-го
МБР.PNG
slant писал(а):
19 янв 2018, 19:16
попробуйте затереть MBR - через dd скажем
Вот вы опять, смотрите на это слишком однобоко, со стороны Линукса. Зачем затирать его нулями? Последовательность загрузки будет нарушена и конечно в таком случае никакая система не загрузится.
slant писал(а):
19 янв 2018, 19:16
Сразу убедитесь, что он у вас далеко не чист.
Чистый, имеется в виду, от загрузчиков
slant писал(а):
19 янв 2018, 19:16
GRUB вытаскивает виндовый загручик из MBR, записывает в файл, и добавляет себе в меню загрузки опцию
Ну это уже из разряда фантастики
slant писал(а):
19 янв 2018, 19:16
Ну, допустим, забекапите вы 63 блока системы с btrfs.
Уйдем сразу от частных редких случаев, их можно описывать ещё несколько страниц. Речь о самой популярной и распространенной ext3-4, а то ещё есть JFS, ReiserFS, XFS..
slant писал(а):
21 янв 2018, 21:19
То что находится в MBR - это тоже называется "загрузчик"
Да не загрузчик там, а стандартная Master Boot Record (Основная Загрузочная Запись)
P.S. Ладно, совсем поздно уже, завтра продемонстрирую
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

colonel
Сообщения: 1449
Зарегистрирован: 18 дек 2016, 09:08
Решено: 18
Благодарил (а): 37 раз
Поблагодарили: 399 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение colonel » 26 янв 2018, 09:06

гы :-D ... весёло тута однако ....
ТС вроде решил свой вопрос независимой установки и запуска вин \ лин на разных хардах (у мну аналогичный вопрос, правда на ПК без уефи , был решён ещё 12 лет назад.

..в общем-то никого не в целях кого-то переубедить ...
почитал что говорят\что пишут , посмотрел что и где и как у мну установлено, посмотрел что пишут в инете ... посмотрел и несколько найденных в инете материалов про загрузку
тыц1 тыц2 тыц3

терминология терминологией, но к тому - куда чего пишется , имхо, следует различать и про какой именно grub говорится
к примеру, смотрю тыц3 где говорится про то как грузится ось (в груб1).
а у нас оно есть и смотрю в каталоге /boot/grub , и там имеются файлики:
default
menu.lst
device.map
message
stage1
stage2
jfs_stage1_5
xfs_stage1_5
e2fs_stage1_5
minix_stage1_5
fat_stage1_5
reiserfs_stage1_5
iso9660_stage1_5

в груб2 никаких stage нет
fonts
gfxblacklist.txt
grub.cfg
grubenv
i386-pc
locale
unicode.pf2

Если обнаруживается загрузчик который неизвестен достоверно - выполняется вышеописанная процедура. Из MBR вытягивается код загрузочной записи, записывается в файл, и при необходимости - читается потом уже из файла, передавая ему управление.
нельзя ли уточнить из какого именно MBR вытягивается в виде файлика код загрузочной записи запускающий виндозагрузчик , если в MBR после установки линукса уже записана загрузочная запись для груба.
файлика виндо-мбр чего то не увидел в /boot/grub/ да и вообще не видно такого
а вот интересный параметр chainloader +1 для загрузки винды из груба1 должен быть .
есть таковой параметр и в груб2

кстати , если сделать dd-шкой файлик MBR запускающий линукс и подсунуть его в виндозагрузчик(рядом с boot.ini) и в этом boot.ini сделать в текстовом редакторе соответствующую запись - строку для запуска линукса , то вполне линукс запускается из меню виндозагрузки . Это с ntldr на хрюше.
можно ли подобное сделать с bootmgr , не знаю.
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Аватара пользователя

Unborn
Сообщения: 1767
Зарегистрирован: 03 сен 2016, 10:36
Решено: 24
Благодарил (а): 4 раза
Поблагодарили: 251 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение Unborn » 26 янв 2018, 10:41

colonel писал(а):
26 янв 2018, 09:06
Это с ntldr на хрюше.
Так и делали, кому нужно было из Виндозного меню выбирать.
colonel писал(а):
26 янв 2018, 09:06
можно ли подобное сделать с bootmgr , не знаю.
Можно.
Механизм загрузки в машинах с классическим БИОС давно все знают. БИОС загружает в ОЗУ первые 512 байт кода, из первого сектора диска, проверяет 511 и 512 байты на наличие сигнатуры загрузочного сектора. Если ложно, то как в настройках самой БИОС. Если чётко один физ. носитель, - то не системный диск или ошибка диска.
Если истинно, тогда передаётся управление загруженному коду. Соответственно, что там в этом коде, то и дальше будет.
Поэтому AlexZ, прекратите всякие дебильные рассуждения, что на машине с классической БИОС при отсутствии кода в Bootstrap code area загрузочного диска у вас что-то загружается.
Кто знает Ассемблер, тот вам такой весёлый код может написать, как, например, недавно Петя был.

В сети
Аватара пользователя

slant
Сообщения: 1644
Зарегистрирован: 21 июн 2017, 15:09
Решено: 25
Благодарил (а): 11 раз
Поблагодарили: 692 раза

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение slant » 26 янв 2018, 13:11

AlexZ писал(а):
26 янв 2018, 00:44
Ладно, по-другому вопрос. Почему установщик Минта официально даёт возможность поставить grub на раздел? Он же не дурак. Например, он дает поставить на раздел с системой, но не даёт на своп-раздел.
AlexZ писал(а):
26 янв 2018, 00:44
И в той же вики теперь так пишут..
Вы вообще читали что я вам писал раньше? Второй раз спрашиваю...

GRUB ставится в три места на диске, ОДНОВРЕМЕННО: MBR (stage 1), промежуток между mbr и первым разделом (stage 1.5) и на файловой системе - то, что потом обычно доступно как /boot из линукса (это stage 2). Вот stage 2 можно установить куда угодно - на любой приемлемый раздел (лишь бы у GRUB был драйвер для работы с такой FS). А stage 1 никуда из mbr убрать нельзя, и место для stage 1.5 тоже вполне себе фиксированное. Но сам по себе stage 2 BIOS запустить никак не может.
AlexZ писал(а):
26 янв 2018, 00:44
Если на компьютере установлено несколько операционных систем или диструбутивов, может оказаться удобным сделать один системонезависимый загрузчик, и установить его на отдельный диск или раздел
В этом случае место stage 1 занимает этот самый независимый загрузчик и GRUB загружается после него, уже этим самым независимым загрузчиком. Но это происходит уже после того как BIOS отработает. Ситуация обратная той, когда GRUB грузит винду.
colonel писал(а):
26 янв 2018, 09:06
а у нас оно есть и смотрю в каталоге /boot/grub , и там имеются файлики:
В GRUB2 это переехало в другое место, и работает чуток по другому. Зайдите в /boot/grub/i386-pc (для PC архитектуры) - увидите кучу файлов вида *.mod
Вот из них при установке загрузчика и набирается stage 1.5. Если уж совсем придираться, точнее говоря - ее аналог.
colonel писал(а):
26 янв 2018, 09:06
нельзя ли уточнить из какого именно MBR вытягивается в виде файлика код загрузочной записи запускающий виндозагрузчик , если в MBR после установки линукса уже записана загрузочная запись для груба.
Это делается (делалось) однократно, в самом процессе установки GRUB. До того как вписать собственную загрузочную запись.
colonel писал(а):
26 янв 2018, 09:06
кстати , если сделать dd-шкой файлик MBR запускающий линукс и подсунуть его в виндозагрузчик(рядом с boot.ini) и в этом boot.ini сделать в текстовом редакторе соответствующую запись - строку для запуска линукса , то вполне линукс запускается из меню виндозагрузки . Это с ntldr на хрюше.
Воооот. Тот же самый принцип. Точно так же и GRUB поступал с загрузчиком винды.
colonel писал(а):
26 янв 2018, 09:06
файлика виндо-мбр чего то не увидел в /boot/grub/ да и вообще не видно такого
Как я уже написал - я немного упустил, что GRUB2 научился обходится без этого способа - сейчас он может прочитать непосредственно виндовый аналог stage2 - основной код загрузчика винды с раздела, и передать ему управление. Модуль для чтения ntfs у него есть: /boot/grub/i386-pc/ntfs.mod

Аватара пользователя

colonel
Сообщения: 1449
Зарегистрирован: 18 дек 2016, 09:08
Решено: 18
Благодарил (а): 37 раз
Поблагодарили: 399 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение colonel » 26 янв 2018, 18:42

Unborn писал(а):
26 янв 2018, 10:41
Это с ntldr на хрюше.
можно ли подобное сделать с bootmgr , не знаю.
Так и делали, ...
Можно
в bootmgr обычным текстовым редактором вносить изменения как на хрюше в файлик ini ?
slant писал(а):
26 янв 2018, 13:11
В GRUB2 это переехало в другое место, и работает чуток по другому. Зайдите в /boot/grub/i386-pc (для PC архитектуры) - увидите кучу файлов вида *.mod
ну переехали так переехали , но только странно зачем они там нужны,
в теме уверялось что модули эти пишутся между MBR и первым сектором раздела
slant писал(а):
26 янв 2018, 13:11
файлика виндо-мбр чего то не увидел в /boot/grub/ да и вообще не видно такого
Как я уже написал - я немного упустил, что GRUB2 научился обходится без этого способа - сейчас он может прочитать непосредственно виндовый аналог stage2 - основной код загрузчика винды с раздела, и передать ему управление. Модуль для чтения ntfs у него есть: /boot/grub/i386-pc/ntfs.mod
н6у зачем же вы считаете меня идиотом. тему я читал , да и без то что вы говорили что груб2 научился винду грузить не успел забыть, да и без этого чтения знал. А про то что никакого "файлика виндо-мбр чего то не увидел в /boot/grub/ " сказано было именно про груб1 (неужели непонятно было , ведь полный список файлов выложил из того каталога )
slant писал(а):
26 янв 2018, 13:11
Воооот. Тот же самый принцип. Точно так же и GRUB поступал с загрузчиком винды.
принцип то может быть и такой , вот только как то не вяжется чего то
- в винде конкретно загрузка как прописано в ini передаётся загрузчику в файлике линуксового-MBR ну и далее линуксовому грубу (из которого можно винду запустить ) и никаких областей для записей стаже1_5 за мбр-ом там нет и быть не может да и вытянутого виндо загрузчика из мбр в файл там не может быть, ( для случая когда винда ставилась после линукса ) .
- в линуксе , в загрузчике никакой такой передачи на вытянутый в файлик загрузчик MBR не просматривается, и кроме того, обязательный для загрузки винды параметр chainloader +1 перенаправляет загрузку на первый сектор (загрузочный сектор раздела) текущего корневого устройства (того виндового раздела) который парой строк ранее в конфиге груба был примонтирован командой root (hdХ,Х)
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 26 янв 2018, 22:07

slant писал(а):
21 янв 2018, 21:19
Да, вижу что все-таки путаница в терминологии.
Да, давайте разбираться, смотрю здесь камень преткновенья.
MBR - это стандартная основная (или главная) загрузочная запись (или код) и занимает только 1-й сектор на диске. Но это - не загрузчик какой-либо системы, устал уже повторять. Слово "загрузчик" часто пишется лишь для сокращения.
MBR создаётся ещё при разметке диска любым менеджером разделов в MBR-диск. Т.е. ещё даже систем никаких не установлено, а MBR уже есть, это стандартная запись.
В любом первом попавшемся виндовом менеджере разделов (а их немало) есть команда Обновить (или восстановить) MBR
Обновить MBR.png
Ещё раз повторю, после этой команды если вы при установке линукса установили grub в MBR, то тут ему придет "хана", т.е. он затрётся. Если вы при установке с-мы установили grub на активный первичный раздел (sda1-3), то grub-у ничего не доспеется, и вы также увидите загрузочное меню grub и запустите любую систему.
Если вы не хотите (не умеете и т.д.) ставить менеджер разделов, у винды есть команды в "консоли":
bootrec /fixmbr
bootrec /fixboot
exit
И даже на линуксе они есть:
Пример кода создания резервной копии MBR в unix-подобных системах для диска sda:
dd if=/dev/sda of=mbr.bin bs=512 count=1
Восстановление загрузчика и таблицы разделов:
dd if=mbr.bin of=/dev/sda bs=512 count=1
Восстановление только загрузчика:
dd if=mbr.bin of=/dev/sda bs=446 count=1
Где там хоть слово про grub, zero или что вы там понапридумывали?
Что касается загрузчиков систем, уже говорили..
S.A. писал(а):
21 янв 2018, 06:52
код "передаёт управление" активному разделу, затем бутсектор активного раздела ищет на разделе загрузчик соответсвующий записаному в бутсекторе (например bootmgr или NTLDR). Это и есть загрузчики Windows, NTLDR загрузчик ХР, а bootmgr загрузчик систем начиная с Висты.
Вот они, в картинках, каждый в бутсекторе раздела своей системы
bootmgr.PNG
grub2.PNG
slant писал(а):
26 янв 2018, 13:11
GRUB2 научился обходится без этого способа - сейчас он может прочитать непосредственно виндовый аналог stage2 - основной код загрузчика винды с раздела, и передать ему управление.
Ну вот, что-то доходит уже. А я говорил - "всё течет, всё изменяется". Вспоминать времена Debian 5, Windows XP, GRUB1 (к-рый сейчас Legacy) в данном контексте не имеет смысла
Unborn писал(а):
26 янв 2018, 10:41
прекратите всякие дебильные рассуждения
Да, ну и кто же тут нахальствует? :acute:
Меня вот тоже поражает, вроде бы элементарные вещи пишу, а не понимают..
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 26 янв 2018, 22:29

slant писал(а):
26 янв 2018, 13:11
GRUB ставится в три места на диске, ОДНОВРЕМЕННО
Вы разницу на картинках видите - нет? У меня на обоих дисках grub-ы загружают все системы.
На внутреннем grub установлен в MBR (потому что Минт в расширенном разделе), всё как вы описываете
МБР на внутреннем.PNG
А на внешнем grub установлен на раздел (активный) sdb3
МБР на внешнем.PNG
Где вы там видите stage 1 GRUB-а ?? :blink2:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 26 янв 2018, 23:03

slant писал(а):
18 янв 2018, 21:24
Если там не будет кода начального загрузчика - от GRUB, винды, dos, и т.д. - BIOS просто напишет нечто вроде "No operation system found" и на этом остановится
Что ж, проверяем. Сейчас как раз на внутреннем диске grub в MBR стоит (см. выше картинку). Активный первый раздел, с 7-кой (Минт все равно активным не сделаешь, он в расширенном)
Я обновляю MBR (затираю grub), при этом меня красноречиво предупреждают..
предупреждение.PNG
И MBR теперь так выглядит..
новая MBR.PNG
Думаю, хорошо видно, HD0 (внутренний) и Windows 98 MBR.
Всё, загрузчик GRUB затерт, и с ваших слов я ни коим образом не должен загрузиться.
Пошел на перезагруз.. :bye:
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 26 янв 2018, 23:12

:bye: Привет, я снова с вами! :bravo:
Загрузочного меню GRUB не было конечно, он затерт, но 7-ка спокойно загрузилась. Был бы активным раздел Минта например в sda3, и так же спокойно загрузился и Минт.
P.S. Теперь вы понимаете последовательность загрузки, когда grub ставится на раздел?
БИОС - МБР активного диска - Основная загрузочная запись - таблица разделов - активный раздел - и вот тут в свои права вступает загрузчик (линукса или винды, не важно)

Аватара пользователя

Unborn
Сообщения: 1767
Зарегистрирован: 03 сен 2016, 10:36
Решено: 24
Благодарил (а): 4 раза
Поблагодарили: 251 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение Unborn » 27 янв 2018, 09:48

colonel писал(а):
26 янв 2018, 18:42
в bootmgr обычным текстовым редактором вносить изменения как на хрюше в файлик ini ?
http://ab57.ru/cmdlist/bcdedit.html
AlexZ писал(а):
26 янв 2018, 23:12
P.S. Теперь вы понимаете последовательность загрузки, когда grub ставится на раздел?
Давно все всё знают.
AlexZ писал(а):
26 янв 2018, 23:12
МБР активного диска - Основная загрузочная запись
Одно и тоже.
Unborn писал(а):
26 янв 2018, 10:41
Соответственно, что там в этом коде, то и дальше будет.
Продолжаем. В старом досовском коде от M$, усраться, но не поддаться - инициализация загрузки только с первого раздела и, чтобы был активным, имел VBR, который содержит IPL. Сейчас возможности расширены как по размерам дисков и разделов, так и по их порядку, обязательности первого нет. Код IPL от M$ может инициировать загрузку виндовых ntldr или bootmgr и только их. А они, в свою очередь, уже загружают ОС. Вот чтобы с их помощью загрузить Линукс, редактируются их конфиг-файлы.
А системе Груб не нужен активный раздел, она может сразу загрузить ntldr или bootmgr и передать им управление.
И Груб - это не только код в Bootstrap code area, это достаточно громоздкая система и малоактуальна в современных реалиях при установке только одной ОС Линукс. Дистрибутиву с systemd устанавливаемому в УЕФИ и на диск с разметкой ГПТ Груб не нужна. Есть намного проще systemd-boot. Хотя при зоопарке ОС Груб удобна.

В сети
Аватара пользователя

slant
Сообщения: 1644
Зарегистрирован: 21 июн 2017, 15:09
Решено: 25
Благодарил (а): 11 раз
Поблагодарили: 692 раза

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение slant » 27 янв 2018, 13:08

colonel писал(а):
26 янв 2018, 18:42
ну переехали так переехали , но только странно зачем они там нужны,
в теме уверялось что модули эти пишутся между MBR и первым сектором раздела
А откуда их брать прикажете при обновлении загрузчика, не из воздуха же? :) Эти модули там (в i386-pc) нужны не в момент загрузки, а в момент установки или обновления GRUB. Собственно он и монтируется /boot (если он отдельным разделом сделан) именно для этого. Чтобы можно было выполнить обновление или изменить конфигурацию. Для самой загрузки каталог /boot в принципе не особо и нужен - оттуда все что надо оказывается прочитано, еще до того, как смонтирован корень и запущено ядро.
colonel писал(а):
26 янв 2018, 18:42
принцип то может быть и такой , вот только как то не вяжется чего то
Касательно винды - у ntldr не было аналога stage1.5, только 1 и 2. Из-за этого оно гораздо более жестко требовало под себя именно активный раздел. А так, там была та же самая история - код из mbr загружал остальную часть - уже с раздела, и уже там читалась подробная конфигурация.
Про загрузчик семерки и далее - я сейчас ручаться на 100% не буду. Но насколько помню - у него тоже нету. Ну а для UEFI это вообще не актуально.
AlexZ писал(а):
26 янв 2018, 22:07
Меня вот тоже поражает, вроде бы элементарные вещи пишу, а не понимают..
Так хорошо пишите. :) Я наконец сообразил, что вы имеете в виду Volume Boot Record говоря о установке загрузчиков на раздел. :) Чтобы вас понимали, надо было писать не "Установка на раздел" а "Установка используя VBR раздела". Что называется - две большие разницы. :)

Да, частично, то что вы описываете имеет место быть. Но!

1. Volume Boot Record - это не замена MBR. BIOS все равно не может грузить загрузчик оттуда сам по себе - без помощи кода в MBR. Хотя действительно, это делается при участии bios. Но именно отсюда получился следующий пункт.
2. Из за кривизны реализации биосов, одно время этот переход вообще нормально не работал на половине плат, из-за чего использование такого варианта было практически заброшено в меинстриме. :) Творилось примерно то же самое, что сейчас с кривыми реализациями UEFI - типа все правильно сделано, а не работает. :) Именно оттуда пошел миф о том, что система должна быть именно на первом активном разделе. Переход не срабатывал, чтобы можно было другой использовать. Возможно, что даже сама GRUB stage 1.5 начиналась как костыль для обхода этой проблемы.

В общем - я действительно недопонял, что именно вы описываете. Это действительно возможно, но только при наличии загрузчика в mbr, который работает по алгоритму передачи управления в volume boot record и нормально написанного bios, в котором правильно работает нужная функция.
AlexZ писал(а):
26 янв 2018, 23:03
Что ж, проверяем. Сейчас как раз на внутреннем диске grub в MBR стоит (см. выше картинку). Активный первый раздел, с 7-кой (Минт все равно активным не сделаешь, он в расширенном)
Ваша проверка не совсем корректна. Вы не очистили загрузчик в MBR, а заменили один другим. Т.к. замененный загрузчик - от 98-ой, судя по картинке, ему действительно все равно что грузить - лишь бы с активного раздела. Но если вы действительно затрете загрузчик в MBR нулями (такой командой, какую я приводил раньше) - загрузка работать не будет.
И имейте в виду - не каждый загрузчик подойдет даже для вашего примера. Тут все зависит от его поведения.

Аватара пользователя

colonel
Сообщения: 1449
Зарегистрирован: 18 дек 2016, 09:08
Решено: 18
Благодарил (а): 37 раз
Поблагодарили: 399 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение colonel » 27 янв 2018, 15:30

Unborn писал(а):
27 янв 2018, 09:48
colonel писал(а): ↑
в bootmgr обычным текстовым редактором вносить изменения как на хрюше в файлик ini ?
http://ab57.ru/cmdlist/bcdedit.html
зачем мне ссылка про bcdedit?
третий раз спрашиваю уже - возможно ли в винде7 обычным текстовым редактором (в блокноте ) вносить изменения в меню загрузки , как это было возможно на хрюше редактированием в блокноте файлика ini ?
"Не ты выбираешь Linux, а Linux выбирает тебя"
(с)Себастьян Перейра, торговец чёрным деревом

В сети
Аватара пользователя

slant
Сообщения: 1644
Зарегистрирован: 21 июн 2017, 15:09
Решено: 25
Благодарил (а): 11 раз
Поблагодарили: 692 раза

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение slant » 27 янв 2018, 16:01

colonel писал(а):
27 янв 2018, 15:30
третий раз спрашиваю уже - возможно ли в винде7 обычным текстовым редактором (в блокноте ) вносить изменения в меню загрузки , как это было возможно на хрюше редактированием в блокноте файлика ini ?
Нет. Его конфиг лежит в своеобразной базе данных, это бинарный формат. Потому и нужны всякие загогулины вроде bcdedit...


BadBird
Сообщения: 2121
Зарегистрирован: 09 сен 2016, 18:08
Решено: 3
Благодарил (а): 124 раза
Поблагодарили: 285 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение BadBird » 27 янв 2018, 16:13

colonel писал(а):
27 янв 2018, 15:30
третий раз спрашиваю уже - возможно ли в винде7 обычным текстовым редактором (в блокноте ) вносить изменения в меню загрузки , как это было возможно на хрюше редактированием в блокноте файлика ini ?
На сколько знаю, средствами самой винды нет такой возможности, но есть костыли, например:
madesta писал(а):
17 янв 2018, 10:00
EasyBCD
К которым сам лично обращаюсь.
С форума ушел....

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 30 янв 2018, 17:04

slant писал(а):
27 янв 2018, 13:08
надо было писать не "Установка на раздел" а "Установка используя VBR раздела. Что называется - две большие разницы."
Для кого, кому нужны эти подробности? VBR, PBR, бутсектор раздела - никакой разницы, пишут только по-разному, а смысл один и тот же.
slant писал(а):
27 янв 2018, 13:08
Так хорошо пишите
Я и ориентируюсь на обычных юзеров, зачем им теоретические выкладки на 3 страницы (в ваших постах я больше чем уверен, основная масса так ничего и не поняла)
MBR через таблицу разделов передает управление (загрузкой) в PBR (или VBR) активного раздела, откуда загрузчик ОС загружает систему(ы)
Вот всё, в одном предложении, куда уж проще и понятней, я не знаю.
Начнем ещё с того, что обычному юзеру (самому обычному) установщик системы предлагает 2 принципиально разных варианта - sda (то бишь в MBR), или sdaX (т.е на раздел). Простое, быстрое, реальное и понятное определение, куда этот загрузчик воткнуть. Ему не надо по 3 стр. разъяснять, что и как там называется (тем более в разных источниках по-разному), кто кого извлекает, перезаписывает или что там ещё, короче тёмный лес..
slant писал(а):
27 янв 2018, 13:08
В общем - я действительно недопонял, что именно вы описываете. Это действительно возможно, но только при наличии загрузчика в mbr
Я же писал уже, mbr может восстановить любой первый попавшийся менеджер разделов, винда может и даже линукс - потому что это стандартная запись. Они же не восстанавливают загрузчики систем (ntldr, bootmgr или grub), в конце-то концов, это же надо различать.
Вас просто зациклило, что в mbr обязательно должен быть какой-нибудь загрузчик, тем более grub ставите всегда в mbr. Просто попробуйте хоть раз поставить его на раздел (ну или VBR раздела) и все сразу станет понятно

Аватара пользователя

AlexZ
Сообщения: 1016
Зарегистрирован: 06 янв 2018, 18:06
Решено: 2
Откуда: Горно-Алтайск
Благодарил (а): 149 раз
Поблагодарили: 116 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение AlexZ » 30 янв 2018, 19:29

slant писал(а):
27 янв 2018, 13:08
Вы не очистили загрузчик в MBR, а заменили один другим. Т.к. замененный загрузчик - от 98-ой, судя по картинке, ему действительно все равно что грузить - лишь бы с активного раздела. Но если вы действительно затрете загрузчик в MBR нулями (такой командой, какую я приводил раньше) - загрузка работать не будет. И имейте в виду - не каждый загрузчик подойдет даже для вашего примера.
Загрузчик (GRUB) я как раз затёр, а MBR восстановил (от GRUB-а). 98-я MBR или последняя от 7-ки, не важно, она стандартная. Вот поменял у себя, то же самое..
6.x MBR.PNG
Для неё важно только одно условие - наличие одного активного раздела. Вот если будет 2 активных или ни одного (некоторые менеджеры разделов могут так сделать, а некоторые - не могут, потому что в них стоит "защита от дурака") - тогда да, загрузка будет невозможной. Всё, больше ничего и знать не надо.
Затирать нулями - отвечал уже, конечно не загрузится (ежу понятно, это же нули). Только что затирать, с какой целью, если там нет загрузчика. Винде иногда требуется восстановить MBR и всё на этом.
:tema: Собственно с чего разговор начал (о безопасности загрузчиков) и для кого это пишу?
AlexZ писал(а):
18 янв 2018, 21:00
Лучший вариант - ставить на раздел, тогда и никакая система его не затрёт.
AlexZ писал(а):
18 янв 2018, 21:00
Возьмем другой случай (вобщем-то нередкий), винда предустановлена и человеку по каким-либо причинам потребовалось тотальное восстановление - ну всё, опять хана grub в МБР
Тема про дуал-бут (винда+линукс). Вы вот правильно пишите, что линукс пришел на десктопы на 10 лет позже, только не договариваете, что с тех пор и до сих пор ему приходится подстраиваться (или маскироваться) под винду на разных стадиях - начиная от загрузки, на уровне драйверов и на программном уровне. И не просто так линукс официально ставится на USB-диски и в расширенные разделы и ещё много чего может, чего винда официально не может.
Так вот, когда линукс пришел, все эти MS-стандарты уже были и MBR по сути нужна только винде. Винду часто восстанавливают или переустанавливают, при этом обновляется MBR (вот эта самая стандартная загрузочная запись, не bootmgr) со всеми вытекающими для GRUB-а (и для тех, кто по вашему совету идёт)
Я же говорю - если есть свободный первичный раздел - намного безопасней (для всех загрузчиков систем) ставить GRUB в свой раздел и никто его не затрёт. Пусть хоть по 100500 раз на дню винда при восстановлении-переустановке обновляет MBR (ей она нужнее), на GRUB-е это никак не отразится.
Вы до сих пор не допускаете, что такой способ является максимально безопасным?
Все системы со своими загрузчиками живут независимо друг от друга и при переустановках друг на друга никоим образом не влияют. Всё это на одном диске, не надо бояться и из-за этого ставить на разные харды. Это делается только в случае реальной необходимости.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

В сети
Аватара пользователя

slant
Сообщения: 1644
Зарегистрирован: 21 июн 2017, 15:09
Решено: 25
Благодарил (а): 11 раз
Поблагодарили: 692 раза

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение slant » 31 янв 2018, 00:02

AlexZ писал(а):
30 янв 2018, 17:04
Для кого, кому нужны эти подробности? VBR, PBR, бутсектор раздела - никакой разницы, пишут только по-разному, а смысл один и тот же.
Угу, давайте еще безграмотностью кичиться... Может вообще начнем называть как некоторые бухи - системный блок процессором, а монитор - компьютером? :)
AlexZ писал(а):
30 янв 2018, 17:04
Я и ориентируюсь на обычных юзеров, зачем им теоретические выкладки на 3 страницы (в ваших постах я больше чем уверен, основная масса так ничего и не поняла)
"Обычным юзерам" вообще незачем самим систему ставить. А если человек собрался расти над собой, и узнавать что-то новое - не стоит давать ему неточную информацию, пусть и для того чтобы упростить. Это называется "медвежья услуга".
AlexZ писал(а):
30 янв 2018, 17:04
Я же писал уже, mbr может восстановить любой первый попавшийся менеджер разделов, винда может и даже линукс - потому что это стандартная запись.
А вот это совсем не соответствует истине. Ничего стандартного там в первых 446 байтах нету. Иначе оно бы в самом биосе находилось, и не требовался бы MBR в том виде, в каком он существует.
Код mbr описывает как искать и куда передавать управление дальше. Это НЕ стандартный код. Это часть загрузчика, и у каждого загрузчика он свой. Другое дело, что код для mbr от загрузчика от Windows 98 который вы любите ставить через свою любимую утилиту ведет себя именно так, как вы описали, т.к. это прямой наследник ДОС-а, а тот вел себя именно так. Ну и ntldr видимо тоже. Не проверял, верю вам.
AlexZ писал(а):
30 янв 2018, 17:04
Я же писал уже, mbr может восстановить любой первый попавшийся менеджер разделов, винда может и даже линукс - потому что это стандартная запись.
Стандартная, говорите? Сделайте так:
dd if=/dev/sda of=boot.mbr bs=1 count=446
Потом разверните mbr от другой системы/загручика через вашу утилиту, и повторите
dd if=/dev/sda of=boot2.mbr bs=1 count=446
А дальше проведите сравнение:
diff boot.mbr boot2.mbr
По вашей логике файлы должны быть идентичными, если это стандартный код.
(Если ваша утилита держит файлы MBR из которых пишет в открытом виде - можете просто эти файлы сравнить...)
AlexZ писал(а):
30 янв 2018, 19:29
Затирать нулями - отвечал уже, конечно не загрузится (ежу понятно, это же нули). Только что затирать, с какой целью, если там нет загрузчика.
Как прикажете понимать это чудесное изречение из взаимоисключающих параграфов? Если там нет загрузчика, почему же не загрузится если все-же затереть? :) Что там находится тогда такого? Таблица разделов - дальше. Признак загрузочно диска - тоже.
AlexZ писал(а):
30 янв 2018, 17:04
Вас просто зациклило, что в mbr обязательно должен быть какой-нибудь загрузчик, тем более grub ставите всегда в mbr. Просто попробуйте хоть раз поставить его на раздел (ну или VBR раздела) и все сразу станет понятно
Простите, с правилами логических доказательств вы знакомы? Если что - напомню: Положительный (подтверждающий ожидания) результат не является доказательством теории, он доказывает только частный случай. Но даже один отрицательный (опровергающий ожидания) результат доказывает, что теория в целом не верна. Вы сейчас предложили тест на положительный результат.
AlexZ писал(а):
30 янв 2018, 19:29
Вы вот правильно пишите, что линукс пришел на десктопы на 10 лет позже, только не договариваете, что с тех пор и до сих пор ему приходится подстраиваться (или маскироваться) под винду на разных стадиях - начиная от загрузки, на уровне драйверов и на программном уровне.
А вот это уже феерическая ерунда. Структура разметки дисков MBR была создана задолго до винды. Даже до винды 1.0. Кроме нее и линукса на PC были другрие системы - несколько видов ДОС (тот, что от микрософт был не единственным, и даже не первым), OS/2, Novel Netware - это все было задолго до того, как винда стала почти синонимом настольной системы а микрософт получила возможность влиять на вектор развития железа. Сам этот стандарт появился что-то вроде в 1983-ем году, если меня память не подводит.

Кстати, по поводу линукса ключевое слово - "на десктопы". А так они с виндой почти ровесники. :) 1991-ый и 1987-ый года соответственно. (Для винды это год когда вышла 2.03, то что было до нее - это была не совсем операционка, а скорее набор прикладных программ в общем стиле, операционная оболочка работающая поверх дос. А тут уже появились признаки управления железом - памятью) В прочем даже 95-ая и 98-ая были не совсем полноценными в этом плане. А первая полноценная система от которой ведет свой род и 7-ка с десяткой - это была Windows NT 3.1 - вышла она только 1993-ем году. Так что - даже младше. :) Вот только у линукса в те времена развивалось в основном ядро, да первые собственные приложения (кроме тех что пришли с unix).
AlexZ писал(а):
30 янв 2018, 19:29
И не просто так линукс официально ставится на USB-диски и в расширенные разделы и ещё много чего может, чего винда официально не может.
И в чем же сакральный смысл? :)
Не стоит искать черную кошку там, где ее нету. Все гораздо проще - линукс писался потому, что это было нужно и интересно людям. И множеством людей. Возможности добавлялись и без четкого плана, просто потому что кому-то захотелось. Возможность ставить систему "куда угодно" разумеется была востребована. Но у разработчиков так же не было обязательств которые были у МС - то что они написали, не обязано было сразу работать вообще, или работать хорошо всегда. МС в жизни не разрешит ставить систему на внешний диск официально потому, что это очень сильно снижает надежность работы (а до последнего времени и скорость, если не через usb3). А у них все-таки техподдержка и репутация. Как ни смешно. :) Так что все прагматично. А в линуксе- любой каприз, но под вашу ответственность.
AlexZ писал(а):
30 янв 2018, 19:29
Так вот, когда линукс пришел, все эти MS-стандарты уже были и MBR по сути нужна только винде.
Чушь. Это не стандарты Микрософт. Микрософту, как раз, MBR разметка уже давно мешалась. Им еще во времена NT 4.0 или 2000-ной хотелось что-то более удобное для реализации загрузки с шифрованием диска, если правильно помню. Заявления такие звучали от них. Но это стандарт, причем очень давний стандарт. Даже у такого гиганта не хватало духу в личном порядке взять и наплевать на него, несмотря на то, что он был старым как навоз мамонта. GPT пришел на смену только тогда, когда уперлись в физические ограничения, и всем стало очевидно, что так больше продолжаться не может. Хотя по хорошему - оно уже давно напрашивалось. Договорится не могли.
AlexZ писал(а):
30 янв 2018, 19:29
Я же говорю - если есть свободный первичный раздел - намного безопасней (для всех загрузчиков систем) ставить GRUB в свой раздел и никто его не затрёт. Пусть хоть по 100500 раз на дню винда при восстановлении-переустановке обновляет MBR (ей она нужнее), на GRUB-е это никак не отразится.
Эм... Как бы вам сказать - если винда обновит MBR - она заодно и активный раздел перекинет на себя. Так что вполне себе отразится. Возможность загрузки GRUB пропадет. Хотя перекинуть активный раздел обратно - это конечно немного проще, чем ставить полностью. Но там есть маленький такой нюанс, который вы упускаете: Когда выполняется полная установка - обновляется конфигурация GRUB. Т.е. он заново обнаружит и проверит возможность загрузки винды в dualboot. А если просто перекинуть флаг активного раздела - этого не произойдет. Так что после запуска линукса все равно сделать sudo update-grub лишним не будет. Иначе может dualboot чудить.
AlexZ писал(а):
30 янв 2018, 19:29
Вы до сих пор не допускаете, что такой способ является максимально безопасным?
Нет. Удобнее в большинстве случае - возможно. Безопаснее - нет.
1. Нужна нормальная реализация bios. Иначе такой переход может и не работать на произвольный раздел. Разумеется это не фатально, но неприятно. (И да, сейчас конечно такие косяки - редкость.)
2. Винда при установке может затереть stage 1.5 - а его перенести в другое место невозможно - просто нету такого места. В этом случае все равно придется проводить установку GRUB заново.
3. В обоих случаях происходит запись в MBR (в вашем случае - запись флага активного раздела) - т.е. с формальной точки зрения запороть таблицу разделов вовремя записи (скажем, свет мигнул неудачно) шанс примерно одинаковый. Разумеется мизерный, но он есть.
Так что не надо считать что ваш способ безопаснее. Удобнее для вас - возможно. А если вы не это имели в виду - правильно выбирайте выражения (это возвращаясь к началу поста, о необходимости точности в описаниях для передачи правильного смысла).

Аватара пользователя

S.A.
Сообщения: 142
Зарегистрирован: 26 апр 2017, 06:53
Благодарил (а): 7 раз
Поблагодарили: 27 раз

Windows и Linux на разных хардах. Правильно ли я понимаю порядок действий?

Сообщение S.A. » 31 янв 2018, 06:47

slant писал(а):
31 янв 2018, 00:02
Винда при установке может затереть stage 1.5 - а его перенести в другое место невозможно - просто нету такого места.
Если GRUB устанавливается в VBR, то в stage 1,5 на диск (между MBR и первым разделом) не записывается, он находится на самом разделе.

Вернуться в «Загрузка системы, бэкапы и восстановление»