Установить grub без замены загрузчика
После установки Windows первичным загрузчиком стал его собственный.
Имеется Linux Mint, поэтому нужно иметь grub. Однако, вместо стандартного варианта, при котором первичным загрузчиком становится grub, я хочу установить grub на отдельный раздел и прописать в виндовом загрузчике команду для передачи управления grub’у. Естественно, виндовый загрузчик должен остаться первичным. Как установить grub, чтобы получилась такая конфигурация?
@alexanderbarakin, вчера попадалось несколько страниц, где писалось про предупреждение при подобном вызове, а в качестве ответа говорилось, что sda1 это не диск и надо sda . Я правильно понимаю, что мне надо будет указать ключ —force чтобы он установился именно на раздел?
не знаю. проверьте. в документации написано: The argument can be either a device file (like ‘/dev/hda’) or a partition specified in GRUB’s notation. // опцию —force (и аналогичные) в любой программе, пожалуй, стоит применять в том случае, если хорошо представляешь, что собираешься делать.
но я бы на вашем месте, ни на секунду не заморачиваясь с весьма сноровистым проприетарным п.о., поставил бы grub (точнее, его «stage 1») в mbr. ему, по-моему, гораздо проще объснить, что существуют и другие операционные системы, которые тоже хотелось бы загружать. но если вы знаете, как управиться с загрузчиком от ms, то с grub-овским «stage 1» вам ничего делать и не надо: это уже дело загрузчика ms — загрузить «stage 1» (или «stage 1.5» из /boot/grub ). про stage даже в википедии популярно написано: en.wikipedia.org/wiki/GNU_GRUB
2 ответа 2
предуведомление: далее изложенное весьма упрощено и относится только к «традиционной» (или «старой») схеме разбивки диска под названием dos partition table (mbr-based partitioning). хотя, вероятно, отчасти справедливо и для guid partition table (gpt). но точно не относится к unified extensible firmware interface (uefi).
упрощённо говоря, bios загружает в память первые 512 байт с указанного в его настройках блочного устройства, и передаёт управление этому «кусочку кода» (в терминах grub-а это называется «загрузчик первой стадии» — stage 1 loader).
помимо исполняемого кода там есть и ещё кое-какая необходимая этому самому коду информация. понятно, что в такой мизерный объём кода что-то разумное уместить довольно сложно, и, фактически, этот код всего лишь загружает другую, значительно бо́льшую порцию кода (stage 2), и передаёт управление ей.
откуда именно брать эту вторую порцию, «загрузчик первой стадии» узнаёт из той самой информации, которая записана рядом с ним в те самые 512 байт. в числе прочего там записаны, как минимум: адрес блочного устройства (ведь stage 2 может располагаться и на другом б.у.) и адрес сектора(-ов), который(-е) надо загружать в память.
почему адрес сектора, а не имя файла? потому что в 512 байт невозможно «уложить» код, который умел бы работать с файловой системой.
кстати, к слову: в случае перезаписи файла со stage2 его физическое местоположение с большой вероятностью изменится, и, соответственно, потребуется и корректировка содержимого тех самых 512 байт «загрузчика первой стадии».
а вот уже тот код, что загрузился из stage 2, «понимает» и файловые системы, и конфигурационные файлы может прочитать, и вывести диалог пользователю, основанный на этих конфигурационных файлах, и выбранную программу, выполняющую функции ядра, загрузить (ту, загружать которую «обучен»: ntoskrnl.exe, linux и т.д. и т.п.).
stage2-загрузчик от компании ms, понятно, не «обучен» загружать программу linux, а stage2-загрузчик grub (равно как и lilo и прочие) не «обучен» загружать ntoskrnl.exe.
но все они могут загрузить другие stage1-загрузчики (и даже stage2-загрузчики) и передать управление им.
а далее можно говорить лишь о степени автоматизации настройки этого процесса.
- в случае загрузчика от компании ms, понятно, никакой автоматизации настройки не предусмотрено: облегчение процесса использования «чужой» операционной системы — это «удар ниже пояса», т.е., по кошельку. как говорится, «это просто бизнес, ничего личного». для настройки нужно разжиться «загрузчиком первой стадии», записать эти 512 байт в файл (например, c:\bootsect.aln ) и добавить строку в секцию operating systems конфигурационнога файла загрузчика c:\boot.ini примерно такого содержания:
c:\bootsect.aln="alien operating system"
какой путь вам больше подходит — выбирайте сами.
p.s. пожалуй, стоит отметить, что код «загрузчика второй стадии» программы grub давно разросся до такой степени, что разработчикам пришлось создать (правда, не только по этой причине) промежуточный загрузчик (который назвали stage 1.5). сути это не меняет, но про стадии 1, 1.5 и 2 написано даже в википедии, и упоминание будет уместным.
по поводу того, куда ставить 512 байт stage1, чтобы не затереть mbr: ставьте не в mbr диска, а в vbr раздела. там есть достаточно места. установщики загрузчиков об этом знают, и умеют с ним обращаться.
Grub без установленной Linux
Привет, зарегестрировался на сайте только чтоб узнать решение моей проблемы. Я устанавливал Kali Linux рядом с Windows 10, просто посмотреть что да как… Посмотрел, потом зашел в Windows 10, открыл форматирование и создание разделов жесткого диска и удалил те два раздела которые принадлежали Linux. Перезагружаю, и вылазит загрузчик GRUB!
GRUB loading. Welcome to GRUB!
error:no such partition. grub rescue>
похоже я уже ничего не смогу сделать чтоб восстановить компьютер, может поможет кто?(
error:no such partition. grub rescue>
stage1 прогрузился, но так так ты раздел с grub снёс, то дальше он ничего сделать не может, на что и жалуется.
Ну загрузись с лайва. Создай новый раздел, установи туда grub. Пропиши в него конфиг на загрузку винды.
grub для работы не требует линукса. Он как маленькая ОС сам по себе. Главное файлы его не удаляй 😀
Про чудесный кали тебе расскажут другие, а насчет решения — два варианта: восстанавливай загрузчик винды с загрузочного диска/флешки с виндой или загрузись с любого лайва линукса, где есть grub и os-prober, и переустанови grub в ESP раздел диска с созданием конфига. Тогда винда будет доступна для загрузки из grub. Я исхожу из того, что у тебя после установки кали был затерт дефолтный efi файл (или какой он там) винды. Может быть еще можно просто найти ефи файл винды и кинуть его на ESP, то я не уверен, как у винды он генерится и должен ли он быть уникальным.
А как я загружусь с флешки если я флешку форматировал?(
Придется тебе сносить десятку и ставить любой линукс. Зачем тебе такая винда, которая сама себя ломает?
Значит тебе нужен второй компьютер, чтобы запилить лайв.
Один комп в доме? Я как-то отвык от таких реалий. У меня их 7 штук разных.
Это с первого поста все поняли…
А как ты тут тогда пишешь?
Тогда к твоим услугам кабинет информатики, и, возможно, комп в библиотеке.
Xenius ★★★★★ ( 04.03.20 18:16:35 MSK )
Последнее исправление: Xenius 04.03.20 18:17:03 MSK (всего исправлений: 1)
Windows 10, открыл форматирование и создание разделов жесткого диска и удалил те два раздела которые принадлежали Linux.
Здесь рассматривается абсолютно твоя ситуация.
С телефона наверное пишет. Вот записать на флешку образ с телефона проблематично.
Если у тебя EFI материнка то просто выбери в нем загрузку с винды. Если биос материнка учись быть хакером и грузить винду из grub rescue https://ubuntugeeks.com/questions/367900/boot-windows-from-grub-rescue
В каком режиме стоит Windows, MBR или GPT?
Если ты помнишь номер раздела с Windows, то попробуй:
chainloader (hd0,msdos2)+1 boot
Вместо msdos2 введи номер раздела.
Не уверен, что оно будет работать, но возможно получится.
Но это только в случае, если у тебя стоит MBR (Legacy) загрузчик.
Команды по твоей ссылке для grub-0.97, а у него, скорее всего, grub2.
В принципе, в теме уже всё написали. Для решения этой задачи нужен другой компьютер, чтобы снова записать там или Linux (например Kubuntu 18.04 — намного лучше как обычный десктоп, сами разработчики Kali так говорят: https://www.kali.org/docs/introduction/should-i-use-kali-linux/ ), или вообще флешку аварийного восстановления Windows 10, она тоже справится.
А на будущее — у тебя классическая ошибка новичка. Вы не думаете о последствиях. Запомни: перед любым изменением в компьютерной системе первый вопрос, что ты должен себе задать: «Как вернуть всё назад?».
Перед такими опытами нужно делать бекап всех важных данных на внешний носитель, а так же держать устновочные носители используемых тобой ОС под рукой.
Зачем кали? Это дистр для специалистов по безопасности, тестировать системы на проникновение и прочие секурные вещи. И судя по теме ты не один из этих ребят. А если ты не из таких, то значит возомнил себя крутым хакером, что вот как возьмет и начнет ломать пентагон и прочие интернеты. Так вот, судя по теме хакер ты дерьмовый и я тебе советую забыть об этих незаконных вещах, за это знаешь ли дают не малые сроки. Скачай себе дебиан или другой нормальный дистр, а не тот что сейчас.
Откуда вы всё только берётесь? Чуть ли не каждую неделю новоявленный митник создаёт тему и ноет о проблеме с установкой кали. ЗАЧЕМ?
Показали сериал где была кали. Типа хацкеры ей пользуются круто и пр. Вот школьников и поперло