Окна двойной загрузки на втором жестком диске, системе UEFI/GPT

Нет, это не делает. Солярис 10 только обеспечивает 64-разрядное ядро для SPARC ЦП.

Это было зарегистрировано в Солярис 10 Информации о версии под Функциями, Удаленными Из Соляриса 10 Операционных систем: SPARC: 32-разрядное Ядро Sun4U:

32-разрядное ядро SPARC больше не включается в Солярис ОС. Существующие 32-разрядные приложения не затронуты.

15
18.03.2014, 18:03
1 ответ

Я собираюсь использовать термин BIOS ниже, когда речь идет о концепциях, которые одинаковы для обоих новых UEFI системы и традиционные системы BIOS, поскольку, хотя это вопрос, ориентированный на UEFI, говорить о «BIOS» лучше, например, с документацией GRUB, а «BIOS / UEFI» слишком неуклюже.GRUB (на самом деле, GRUB 2 - это часто используется неоднозначно) - это загрузчик, устанавливаемый Linux и используемый для двойной загрузки Windows.

Во-первых, несколько слов о порядке установки дисков и загрузки. Порядок дисков относится к порядку, в котором диски физически подключены к шине на материнской плате (первый диск, второй диск и т. Д.); эту информацию сообщает BIOS. Порядок загрузки относится к последовательности, в которой BIOS проверяет наличие загрузочного диска. Это не обязательно совпадает с порядком дисков и обычно настраивается через экран настройки BIOS. Порядок дисков не должен настраиваться или зависеть от порядка загрузки, поскольку это было бы очень недружелюбно для ОС (но теоретически тупой BIOS мог). Кроме того, если вы отключите первый диск, второй диск, скорее всего, станет первым. Мы собираемся использовать UUID при настройке загрузчика, чтобы попытаться избежать подобных проблем (современные установщики Linux также делают это).

Идеальный способ получить желаемое - установить Linux на второй диск в соответствии с порядком дисков , а затем выбрать его первым в соответствии с порядком загрузки с использованием набора UEFI. -вверх. Дополнительным преимуществом этого является то, что вы можете затем использовать порядок загрузки BIOS / UEFI, чтобы выбрать диск Windows и обойти grub, если хотите. Причина, по которой я рекомендую Linux на втором диске, заключается в том, что GRUB должен «загружать по цепочке» собственный загрузчик Windows, а загрузчик Windows всегда предполагает, что он находится на первом диске. Однако есть способ обмануть его, если вы предпочитаете или нуждаетесь в обратном.

Надеюсь, вы можете просто использовать live CD или что-то еще и сделать это с помощью установщика с графическим интерфейсом. Однако не все установщики одинаковы,и если это облажается, и у вас останутся такие проблемы, как:

  1. Я установил Linux на первый диск, и теперь я не могу загружать Windows, или

  2. Я установил Linux на второй диск, но использую первый диск в качестве загрузчика, и теперь я не могу ничего загрузить!

Тогда продолжайте читать. Во втором случае вы должны сначала попытаться переустановить Linux на второй диск, и на этот раз убедитесь, что там находится загрузчик. Самый простой и надежный способ сделать это - временно удалить диск Windows с компьютера, поскольку мы предполагаем, что на нем не установлено ничего лишнего, независимо от порядка дисков.

После того, как вы установили Linux и убедились, что он может загружаться, снова подключите диск Windows (если вы его удалили - и помните, что в идеале мы хотим, чтобы он был первым с точки зрения порядка дисков, а второй диск первым с точки зрения порядка загрузки) и переходите к следующему шагу.

Доступ к конфигурации GRUB

Загрузите Linux, откройте терминал и

> su root

Вас попросят ввести пароль root. С этого момента вы являетесь суперпользователем в этом терминале (для проверки попробуйте whoami ), поэтому не делайте глупостей. Однако вы по-прежнему являетесь обычным пользователем графического интерфейса пользователя, и, поскольку мы будем редактировать текстовый файл, если вы предпочитаете редактор графического интерфейса, нам придется временно изменить владельца этого файла и каталог, в котором он находится:

> chown -R yourusername /etc/grub.d/

Если вы получите сообщение «Операция запрещена», вы неправильно выполнили su . Если вы получили chown: invalid user: ‘yourusername’ , вы слишком буквально восприняли последнюю команду.

Теперь вы можете перейти к /etc/grub.d в браузере файлов и найти файл с именем 40_custom . Он должен выглядеть так:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

Если вы не можете его найти, введите в корневом терминале следующие команды:

> touch /etc/grub.d/40_custom
> chmod 755 /etc/grub.d/40_custom
> chown yourusername /etc/grub.d/40_custom

Откройте его в текстовом редакторе, скопируйте и вставьте указанную выше часть (начиная с #! / bin / sh ) и переходите к следующему шагу.

Добавление параметра загрузки Windows

Скопируйте и вставьте это с помощью текстового редактора в конец файла:

menuentry "MS Windows" {
        insmod part_gpt
        insmod search_fs_uuid
        insmod ntfs
        insmod chain
}

Это список модулей, которые понадобятся GRUB для работы ( ntfs может быть лишним, но и не должно ничего повредить). Обратите внимание, что это неполная запись - нам нужно добавить несколько важных команд.

Поиск загрузчика Windows второго уровня

Ваша установка Linux, вероятно, автоматически смонтировала ваш раздел Windows, и вы сможете найти его в файловом браузере. Если нет, придумайте, как это сделать (если вы не знаете, как это сделать, задайте вопрос на этом сайте). Как только это будет сделано, нам нужно знать точку монтирования - это должно быть очевидно в файловом браузере, например / media / ASDF23SF23 / . Чтобы сэкономить время на вводе текста, мы поместим это в переменную оболочки:

win="/whatever/the/path/is"

Не должно быть пробелов по обе стороны от знака равенства. Не включайте сюда какие-либо элементы пути Windows. Это должно указывать на папку верхнего уровня в разделе Windows.Теперь:

cd $win
find . -name bootmgfw.efi

Это может занять несколько минут, если у вас большой раздел, но, скорее всего, первое, что он выдаст, - это то, что мы ищем; в файловой системе могут быть и другие ссылки, содержащие длинные строки goobledygook - это не так. Используйте Ctrl-c , чтобы остановить поиск, как только вы увидите что-то короткое и простое, например ./ Windows / Boot / EFI / bootmgfw.efi или ./ EFI / HP / boot /bootmgfw.efi.

За исключением . вначале, запомните этот путь на потом; вы можете скопировать его в свой текстовый редактор в пустую строку внизу, так как мы будем использовать его там. Если вы хотите вернуться в предыдущий каталог сейчас, используйте cd - , хотя с этого момента не имеет значения, где вы находитесь в оболочке.

Установка правильных параметров

GRUB должен иметь возможность найти и передать процесс загрузки загрузчику Windows второго этапа. У нас уже есть путь к разделу Windows, но нам также нужны некоторые параметры, чтобы сообщить GRUB, где находится этот раздел. В вашей системе должен быть установлен инструмент под названием grub-probe или (например, в Fedora) grub2-probe . Введите grub и затем дважды или трижды нажмите Tab ; вы должны увидеть список, включающий тот или иной.

> grub-probe --target=hints_string $win

Вы должны увидеть такую ​​строку:

--hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1

Вернитесь в текстовый редактор с конфигурацией GRUB в нем и добавьте строку после всех команд insmod (но перед закрывающей фигурной скобкой), чтобы это выглядит так:

    insmod chain
    search --fs-uuid --set=root [the complete "hint bios" string]
}

Не разрывайте эту строку и не позволяйте текстовому редактору делать это.Он может закручиваться на дисплее - простой способ определить разницу - включить нумерацию строк. Далее:

> grub-probe --target=fs_uuid $win

Это должно вернуть более короткую строку из букв, цифр и возможных дефисов, например «123A456B789X6X» или «b942fb5c-2573-4222-acc8-bbb883f19043». Добавьте это в конец строки search --fs-uuid после строки подсказки bios, разделенной пробелом.


Далее, если (и только если) Windows находится на втором диске с точки зрения порядка дисков , добавьте строку после строки search --fs-uuid :

    drivemap -s hd0 hd1

Это упомянутая "уловка" ранее. Обратите внимание, что это не гарантирует работу, но не помешает попробовать.


Наконец, последняя строка должна быть:

    chainloader (${root})[the Windows path to the bootloader]
}

Для ясности, например:

    chainloader (${root})/Windows/Boot/EFI/bootmgfw.efi

Вот и все. Сохраните файл и проверьте в файловом браузере, чтобы убедиться, что он действительно сохранен и выглядит так, как должен.

Добавление новой опции меню в GRUB

Это делается с помощью инструмента под названием grub-mkconfig или grub2-mkconfig ; он будет в том списке, который вы нашли ранее на вкладке . У вас также может быть команда под названием update-grub . Чтобы проверить это, просто введите его в корневой терминал. Если вы получили сообщение «команда не найдена», вам нужно напрямую использовать grub-mkconfig . Если нет (включая получение более продолжительной ошибки), вы только что установили конфигурацию и можете немного сократить ее.

Чтобы использовать grub-mkconfig напрямую, нам сначала нужно найти grub.cfg :

> find /boot -name grub.cfg

Это, вероятно, будет /boot/grub/grub.cfg или /boot/grub2/grub.cfg .

> grub-mkconfig -o /boot/grub/grub.cfg

update-grub автоматически просканирует конфигурацию на наличие ошибок. grub-mkconfig не будет, но это важно сделать, потому что с ними гораздо легче справиться сейчас, чем когда вы пытаетесь загрузить машину.Для этого используйте grub-script-check (или grub2-script-check ):

> grub-script-check /boot/grub/grub.cfg

Если это (или update-grub ) выдает ошибку с указанием номера строки, это номер строки в grub.cfg, но вам необходимо исправить соответствующую часть в /etc/grub.d/40_custom (файл в текстовом редакторе). Возможно, вам понадобится root, чтобы посмотреть предыдущий файл, поэтому попробуйте less /boot/grub/grub.cfg в терминале, нажмите : и введите номер строки . Вы должны увидеть свой пункт меню. Найдите опечатку, исправьте ее в текстовом редакторе и снова запустите update-grub или grub-mkconfig .

Когда вы закончите, вы можете закрыть текстовый редактор и набрать exit в терминале, чтобы выйти из режима суперпользователя.

Перезагрузка!

Когда вы попадете в меню личинки, быстро прокрутите вниз (до истечения таймаута, обычно 5 секунд) до пункта «Windows» и проверьте его. Если вы получаете текстовое сообщение об ошибке от grub, что-то не так с конфигурацией. Если вы получаете сообщение об ошибке из Windows , это проблема между вами и Microsoft. Однако не волнуйтесь, ваш диск Windows не был изменен, и вы сможете загрузиться с него напрямую, установив его первым (с точки зрения порядка загрузки) через настройку BIOS.

Когда вы снова вернетесь в Linux, верните право собственности на / etc / grub.d и его содержимое в исходное состояние:

sudo chmod 755 /etc/grub.d/40_custom

Ссылки

18
27.01.2020, 19:50

Теги

Похожие вопросы