Страница 2 из 5

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

Добавлено: 17 янв 2018, 17:51
BadBird
madesta писал(а):
17 янв 2018, 13:00
EasyBCD
Классная вещь....я ее в лайв режиме юзаю (ставить в ос смысла не вижу), в сборке от Сергея Стрельца.

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

Добавлено: 17 янв 2018, 21:48
AlexZ
darkfenix писал(а):
17 янв 2018, 06:20
У винды родной загрузчик тупорылый - он может увидеть только винду и загрузить только винду и то не всегда может увидеть другую винду. Поэтому обчно используют альтернативные загрузчики коих хватает.
GRUB - всему голова! :thumbs: На мой взгляд, самый лучший и универсальный мультизагрузчик.
Загрузчик винды (BOOTMGR он называется) как мультизагрузчик конечно никуда не годится
madesta писал(а):
17 янв 2018, 13:00
Потом при установке Linux его загрузчик ставил не по умолчанию, а (чтобы не перезаписывал загрузчик винды)
Зачем всё так сложно?
У меня загрузчики винды находятся в своих разделах
7-ка.PNG
10-ка.PNG
GRUB ставится в раздел с Минтом (если он первичный+активный), либо в МБР (если расширенный).
И всё, переустанавливай все системы хоть по 10 раз на дню, они друг на друга никак не влияют.
P.S. И если даже по каким-либо причинам у вас GRUB затрётся в МБР, восстановить его - делов на 5 мин.

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

Добавлено: 18 янв 2018, 03:41
slant
AlexZ писал(а):
17 янв 2018, 21:48
GRUB ставится в раздел с Минтом (если он первичный+активный), либо в МБР (если расширенный).
Сдается мне, что-то вы слегка упускаете в том, как работает загрузка системы через grub. :)
Начнем с того, что если на машине BIOS (а не UEFI) загрузчик всегда должен находится в MBR. Именно загрузочный код. Но GRUB - это не просто загрузчик - это комбайн. Он действительно умеет дофига и больше. Обратной стороной чего является то, что его размеры никак не позволяют ему запихнуть весь код в MBR. Т.е. GRUB ставится кроме MBR еще и на раздел. Это может быть / или отдельный /boot.
Загрузка GRUB идет аж в три этапа. Сначала грузится stage 1 - это код из MBR. Потом идет stage 1.5 - это код, который в MBR не влез, но по техническим причинам находится на разделе не может. К нему, например, относятся модули поддержки файловых систем. Код этот находится на диске между MBR и первым разделом. Благо сейчас по стандарту первый раздел начинается на 2048-ом блоке. Раньше это был 63-й блок, и такого промежутка уже не всегда хватает. Например модуль поддержки btrfs в него не влезет.
И вот только после всего этого грузится stage 2 - конфигурация и дополнительные модули вроде GUI интерфейса. Эта часть грузится уже с раздела доступного после подключения модулей. Теоретически stage 1.5 может отсутствовать. На практике - почти никогда. Но вот stage 2 отсутствовать не может в принципе - без нее grub не будет знать: что и откуда грузить дальше. И вот что для GRUB характерно - ему по сути вообще наплевать на каком разделе и с какими флагами будет находится stage 2. Если загручик винды требует первичного раздела с флагом boot - для GRUB это значения не имеет. Он прекрасно загрузится и с логического, и без boot флага. За счет того, что модули в stage 1.5 позволяют написать достаточно умную логику работы с разделами и FS, в которой упрощения и костыли оказываются не обязательными.

А вот загрузка через UEFI - там все несколько по другому. В прочем, там и сам GRUB со своим мега функционалом уже не настолько нужен.

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

Добавлено: 19 янв 2018, 00:00
AlexZ
slant писал(а):
18 янв 2018, 03:41
А вот загрузка через UEFI - там все несколько по другому. В прочем, там и сам GRUB со своим мега функционалом уже не настолько нужен.
Все так, но речь именно про МБР
slant писал(а):
18 янв 2018, 03:41
загрузчик всегда должен находится в MBR
slant, я это всё давно уже читал и изучал. Зачем он в МБР? Чтобы очередной неподготовленный пользователь в очередной раз писал на форуме как у него что-то затерлось в МБР? Они же и не знают, что это восстанавливается на раз-два, и что даже под виндой есть прожка, в к-рой МБР этот буквально за минуту бэкапится/ресторится..
МБР.PNG
Я вон и по сообщениям вижу как все побаиваются соседства с виндой, что уже на разные харды ставят (блин, ну я ещё понимаю винда и макось на разных, но чтоб винда и линукс..)
Лучший вариант - ставить на раздел (там он все необходимые стадии и проходит), тогда и никакая система его не затрёт.
Всё течет, всё изменяется.. В некоторых дистрах до сих пор пишут, мол, ставьте по-любому в МБР (проверено, туфта полная), а где-то уже, типа, на ваше усмотрение.
Вобщем практика показала, что это не так.
Я уж не буду перечислять кому и куда я этот линукс ставил, как у меня было на внешнем диске много лет:
1. WinXP (загрузчик ntldr)
2. Win7 32-бит (bootmgr)
3. Линукс (grub2)
4. Расширенный (в нем ещё 6-7 линукс-систем, в основном без загрузчиков)
И загружал всё это хозяйство grub2 с 3-го первичного (активного) раздела. МБР всегда была девственно чиста. Когда системы полностью в одном разделе, их очень удобно и быстро переустанавливать и бэкапить. При этом никогда и никаких проблем с grub не было.
На внутреннем диске относительно недавно поставил его в МБР, и то только потому, что Минт в расширенном. До этого всегда стоял в первичном разделе (наподобие как на внешнем).
Ну абсолютно никакой разницы, ни на что это не влияет.
Ладно, это один пример, хорошо когда сам ставишь системы. Возьмем другой случай (вобщем-то нередкий), винда предустановлена и человеку по каким-либо причинам потребовалось тотальное восстановление - ну всё, опять хана grub в МБР, опять лезем на форумы, и т.д и т.п.
slant писал(а):
18 янв 2018, 03:41
Благо сейчас по стандарту первый раздел начинается на 2048-ом блоке. Раньше это был 63-й блок, и такого промежутка уже не всегда хватает. Например модуль поддержки btrfs в него не влезет.
grub2 занимает первых 63 сектора (их и надо бэкапить). Не знаю как с btrfs (юзаю как большинство ext4), но у меня фряха на ZFS, вот она похожа на btrfs (глубоко не изучал, пока только вникаю в эту тему)
В любом случае, думаю резервных секторов до 2048-го блока им достаточно.
Для полноты конечно надо попробовать поставить на раздел с btrfs, чтобы убедиться. Я линуксы всегда ставил на ext3/4

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

Добавлено: 19 янв 2018, 00:24
slant
Если у вас MBR будет девственно чиста, компьютер вообще загрузится не сможет. Т.к. BIOS вообще не имеет никакого понятия о разделах и файловых системах на диске. Он умеет только тупо читать содержимое MBR и передавать управление прочитанному коду. ВСЕ. Если там не будет кода начального загрузчика - от GRUB, винды, dos, и т.д. - BIOS просто напишет нечто вроде "No operation system found" и на этом остановится. (Разумеется, если нет других опций доступных для загрузки - дискета, CD/DVD, сеть, USB...)
AlexZ писал(а):
19 янв 2018, 00:00
grub2 занимает первых 63 сектора (их и надо бэкапить).
Неправильно. Занимать он может разное место - в зависимости от модулей в stage 1.5. Бекапить надо не тупо 63 сектора, а в зависимости от того, как сдвинут первый раздел. Иначе можно получить нежданчик.

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

Добавлено: 19 янв 2018, 09:11
S.A.
slant писал(а):
19 янв 2018, 00:24
Если у вас MBR будет девственно чиста, компьютер вообще загрузится не сможет.
+1.

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

Добавлено: 19 янв 2018, 12:38
BadBird
BadBird писал(а):
16 янв 2018, 10:59
но для этого нужно заказать ссд с алика на 32 гига, да не выделю эту штуку рублей из семейного бюджета)))
Всё таки выделил эту штуку рубликов )))
Мой выбор: https://ru.aliexpress.com/item/Newest-G ... 0.0.bq41Mn
15...20 под систему - остаток оставлю не размеченным.

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

Добавлено: 19 янв 2018, 12:57
di_mok
Не по теме
BadBird, когда наиграешься, поделись впечатлениями пожалуйста. Тоже хочу в один старый сундук ССД запихать, а разоряться на что-то брендовитое рука не поднимается.

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

Добавлено: 19 янв 2018, 13:00
BadBird
Не по теме
di_mok писал(а):
19 янв 2018, 12:57
когда наиграешься, поделись впечатлениями пожалуйста.
Обязательно!!!
di_mok писал(а):
19 янв 2018, 12:57
а разоряться на что-то брендовитое рука не поднимается.
То же самое.
У нас от Transcend то й же емкости стоит 2700....

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

Добавлено: 19 янв 2018, 13:17
AlexelA
BadBird писал(а):
19 янв 2018, 12:38
Всё таки выделил эту штуку рубликов )))
Я бы не стал брать такие вещи на алиэкспрессе...

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

Добавлено: 19 янв 2018, 13:21
BadBird
Не по теме
AlexelA писал(а):
19 янв 2018, 13:17
Я бы не стал брать такие вещи на алиэкспрессе...
Я тоже, но:
BadBird писал(а):
19 янв 2018, 13:00
У нас от Transcend то й же емкости стоит 2700....
А отдавать такие деньги возможности финансовых нет...

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

Добавлено: 19 янв 2018, 18:58
AlexZ
slant писал(а):
19 янв 2018, 00:24
Если у вас MBR будет девственно чиста, компьютер вообще загрузится не сможет
Честно говоря, думал знаете гораздо больше. Ну конечно, скопипастить с вики текст (к-рому уже лет 10) много ума не надо.
И как же это у меня, "нерадивого", столько лет grub (установленный в разделе) одной линукс-системы всё загружает системы и загружает, при том что в МБР он и не ставился ни разу? Вы об этом так и не подумали.
Да, было по началу, по неопытности, ставились grub-ы в МБР (потому что в нек-рых дистрах установщик системы не давал возможности поставить загрузчик на раздел, всегда мучал вопрос как же так? один grub, одно ядро, в одних дают возможность, а в других - нет (потом выяснилось, одни дают возможность потому что так оно и есть, а других и спрашивать не надо, ибо..)), но от других линукс-систем. Зачем мне ещё grub, "тянущий одеяло на себя", у меня уже есть один, в разделе. И я грохал его виндовым менеджером разделов (обновой МБР), и grub с раздела 1-й линукс системы дальше спокойно всё также загружал. Это потом я уже дотумкал, что если у меня уже есть grub, то ставить загрузчики других линукс-систем совсем не обязательно (особенно слаку какую-нибудь со своим Lilo).
А я всё что-то ставлю, не понравилось, удаляю, а надпись "No operation system found" никак не появляется. Да как же так?
Ответ прост. Вы упускаете один о-очень важный момент - в МБР помимо стандартной загрузочной записи есть ещё таблица разделов, а в ней указан активный раздел (флаг boot по-вашему). И в упрощенном виде загрузка выглядит так:
БИОС - МБР активного диска - Основная загрузочная запись (девственно чистая как слеза младенца, если можно так выразиться) - таблица разделов - активный раздел - и вот тут в свои права вступает загрузчик (линукса или винды, не важно). Вот собственно говоря и ВСЕ.
slant писал(а):
19 янв 2018, 00:24
Бекапить надо не тупо 63 сектора, а в зависимости от того, как сдвинут первый раздел.
Уже сами себе противоречите, а как же stage 1? МБР находится на 1-м секторе диска, а тело grub занимает 63 сектора (на картинке даже показал). Не трудно же догадаться что grub занимает на диске именно первые 63 сектора
Причем здесь первый раздел, да ещё сдвинутый, тем более..
slant писал(а):
18 янв 2018, 03:41
сейчас по стандарту первый раздел начинается на 2048-ом блоке

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

Добавлено: 19 янв 2018, 19:01
AlexZ
S.A. писал(а):
19 янв 2018, 09:11
slant писал(а):
19 янв 2018, 00:24
Если у вас MBR будет девственно чиста, компьютер вообще загрузится не сможет.
+1.
Надо же, ещё плюсует.. :-D
Ну не знаю уже, мне что, продемострировать как-то всё это? Чтоба с вас спали "оковы ограниченности"

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

Добавлено: 19 янв 2018, 22:16
slant
AlexZ писал(а):
19 янв 2018, 18:58
Честно говоря, думал знаете гораздо больше. Ну конечно, скопипастить с вики текст (к-рому уже лет 10) много ума не надо.
А я думал у вас нахальства гораздо меньше. Текст набран лично по своим знаниям, в вики не глядя вообще. Если считаете что это не так - доказательства в студию. Языком то ляпнуть - много ума не надо? :)
AlexZ писал(а):
19 янв 2018, 18:58
И как же это у меня, "нерадивого", столько лет grub (установленный в разделе) одной линукс-системы всё загружает системы и загружает, при том что в МБР он и не ставился ни разу?
Не стоит паясничать, если не хотите нарваться на встречную грубость. Блондинки, вон тоже по много лет машину водят, не представляя себе ее устройство. Работает - еще не значит что все именно так, как вам кажется.
AlexZ писал(а):
19 янв 2018, 18:58
Да, было по началу, по неопытности, ставились grub-ы в МБР
Сами ответили. Вы уже ставили когда-то GRUB в MBR - значит там уже сидит его загрузочный код. Он никуда не девается, даже если вы удаляли или создавали разделы, не говоря уже о простом форматировании. Вывести его оттуда можно только специально. Иначе там всегда будет висеть часть загрузчика - установленного последним. Перезапись этого кода - штука довольно частая при установке системы. (Если винда ставится после линукса - она это самое и делает, потому пропадет возможность загрузки оного. А вот GRUB всегда проверяет что там было раньше, и обновляет этот код, так что проходит это обычно незамеченным) Хотите доказательств - попробуйте затереть MBR - через dd скажем. Сразу убедитесь, что он у вас далеко не чист. Только затирать не более первых 446 байт - иначе саму таблицу разделов грохните, вместе с кодом загручика. (А вот здесь уже действительно полез в свои заметки - эту точную цифру я на память уже не помню.)

Я не буду цитировать ваш ответ по частям, но им вы расписались в непонимании того, что из себя представляет GRUB и как работает загрузка с его помощью. То что у вас происходит - это т.н. chainload - последовательный запуск нескольких загручиков. Первый GRUB из MBR,а уже он грузит следующий загрузчик с раздела, либо из файла. Частный случай подобного - запуск винды если после нее линукс ставился и получился DualBoot. GRUB вытаскивает виндовый загручик из MBR, записывает в файл, и добавляет себе в меню загрузки опцию - прочитать виндовый загрузчик из файла, и отдать ему управление. А уже виндовый загрузчик грузит винду. Почти как обычно.
AlexZ писал(а):
19 янв 2018, 18:58
Уже сами себе противоречите, а как же stage 1? МБР находится на 1-м секторе диска, а тело grub занимает 63 сектора
Вы прошлый мой пост читали? Или просто скипнули?
Stage 1 - это код в MBR - он занимает ОДИН блок - сам MBR (и то не полностью, там еще таблица разделов). И все. Дальше идет stage 1.5 - она занимает место между MBR и первым разделом. И может быть разного размера - в зависимости от количества и типа модулей/драйверов (И речь не о драйверах ядра - это драйверы самого GRUB). Это RAW данные - записанные просто в блоки, без всякой FS. Это возможно, потому что первый раздел сдвинут - начинается не на втором блоке, а гораздо дальше. Раньше это был 63-ий а сейчас - 2048-ой. Почему надо это учитывать? Ну, допустим, забекапите вы 63 блока системы с btrfs. А stage 1.5 у такого grub будет больше. Т.е. модуль файловой системы будет обрезан. Такой бекап будет нерабочим. А если тупо бекапить первые 2048 блоков не убедившись что смещение именно такое - при возврате из бекапа можно затереть начало раздела (если сдвиг был по старому - 63 блока).
AlexZ писал(а):
19 янв 2018, 19:01
Ну не знаю уже, мне что, продемострировать как-то всё это? Чтоба с вас спали "оковы ограниченности"
При единственном физическом диске в системе:
sudo dd if=/dev/zero of=/dev/sda bs=1 count=446
И перегрузитесь. :) Если после этого у вас машина загрузится - поверю, что загрузчик у вас не в MBR. :) (вместо /dev/sda - подставить загрузочный диск.)
!!! Предупреждение остальным: НЕ ДЕЛАЙТЕ ЭТОГО. Придется восстанавливать загрузчик. !!!

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

Добавлено: 19 янв 2018, 22:26
Unborn
AlexZ писал(а):
19 янв 2018, 19:01
Ну не знаю уже, мне что, продемострировать как-то всё это? Чтоба с вас спали "оковы ограниченности"
Ну давай, занули dd первые 446 байт загрузочного диска. А ещё лучше все 512, чтобы тебе веселее было демонстрировать. Вот тогда -
AlexZ писал(а):
19 янв 2018, 18:58
Основная загрузочная запись (девственно чистая как слеза младенца, если можно так выразиться)
slant, эх, пока я сочинял, писал и на кухню покурить и за кофе, ты уже...

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

Добавлено: 20 янв 2018, 08:14
rogoznik
Не по теме
slant писал(а):
19 янв 2018, 22:16
sudo dd if=/dev/zero of=/dev/sda bs=1 count=446
Unborn писал(а):
19 янв 2018, 22:26
занули dd первые 446 байт загрузочного диска. А ещё лучше все 512, чтобы тебе веселее было
:crazy: :harakiri: :gun2:

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

Добавлено: 20 янв 2018, 08:48
vir0id
slant писал(а):
19 янв 2018, 22:16
При единственном физическом диске в системе:
sudo dd if=/dev/zero of=/dev/sda bs=1 count=446
И перегрузитесь. Если после этого у вас машина загрузится - поверю, что загрузчик у вас не в MBR. (вместо /dev/sda - подставить загрузочный диск.)
!!! Предупреждение остальным: НЕ ДЕЛАЙТЕ ЭТОГО. Придется восстанавливать загрузчик. !!!
Припоминаю, что я, когда-то, так вот поступил и получилось не очень хорошо. Но мне нужно было это сделать, любопытства ради.

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

Добавлено: 20 янв 2018, 09:33
S.A.
slant писал(а):
19 янв 2018, 22:16
GRUB вытаскивает виндовый загручик из MBR, записывает в файл, и добавляет себе в меню загрузки опцию - прочитать виндовый загрузчик из файла
Не соглашусь, GRUB из MBR виндовый загрузчик не вытаскивает, т.к. в MBR загрузчика нет. Загрузчик (например bootmgr)находится на основном разделе, как правило этот раздел должен быть активным если Винда загружается сама (не через GRUB), если она загружается через GRUB, то раздел может быть и не активным. GRUB сканирурует (проверяет) разделы и если находит на них загрузчики, то добавляет их в меню загрузки.

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

Добавлено: 20 янв 2018, 21:56
slant
S.A. писал(а):
20 янв 2018, 09:33
Не соглашусь, GRUB из MBR виндовый загрузчик не вытаскивает, т.к. в MBR загрузчика нет.
Еще один... Я только тешу себя надеждой, что вы все-таки немного в терминологии запутались, а не повторяете эту дичь.
Еще раз: без загрузчика, (загрузочного кода, bootloader) в MBR компьютер с BIOS загружатся не будет вообще. Этот загрузочный код может быть от GRUB, может быть от виндового загрузчика, может - еще какой-либо. Но без него никакой загрузки не будет.
Но только очень маленькие загрузчики помещаются в MBR целиком. Большинство так же имеет некие файлы конфигурации и/или дополнительные модули которые обычно живут на разделе системы, или специально выделенном (у GRUB это Stage 2 который может быть в разных местах, у DOS - это корень системного раздела, у нового загручика винды - отдельный раздел). GRUB же выделяется еще и тем, что у него аж три стадии, т.е. аж три места где находятся его части. Та самая stage 1.5.

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

Добавлено: 21 янв 2018, 09:52
S.A.
slant,
Правильно, в MBR находится загрузочный код Windows NT 5.x или Windows NT 6.x (но это не загрузчик Windows), код "передаёт управление" активному разделу, затем бутсектор активного раздела ищет на разделе загрузчик соответсвующий записаному в бутсекторе (например bootmgr или NTLDR). Это и есть загрузчики Windows, NTLDR загрузчик ХР, а bootmgr загрузчик систем начиная с Висты. Вот эти загрузчики ищет на разделах и добавляет в загрузку GRUB, а не вытаскивает из MBR что-то.

Простой пример.
На HDD установлена Windows. Затираем нулями 446 байт в MBR, Винда естественно перестанет загружаться. В MBR не осталось следов от Windows. Устанавливаем Linux, GRUB ставим в MBR и после установки в GRUB будет строка загрузки Windows. Откуда в GRUB Windows, если Виндовый загрузочный код в MBR мы затёрли и соотвественно GRUB из MBR ничего виндового вытащить не мог.