Загрузка в неграфический режим из подсказки Grub RHEL/CentOS 7

Чтобы уточнить: вы используете grub2 , правильно?

Если Grub2 установлен в своем собственном загрузочном разделе, вам не нужно ничего менять. Когда это не так (что было бы действительно странно), вы можете технически сохранить grub.cfg , а если он есть в вашем дистрибутиве, также /etc/grub.d . Однако

/ boot должен быть его собственным разделом. Если вы запустите mount и увидите что-то вроде этого:

/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,stripe=4,data=ordered)

Grub2 установлен в его собственном разделе, так как так и должно быть. Обычно при установке нового дистрибутива мастер проводит вас через процесс установки и даже выясняет, какие разделы и какие ОС содержат, если применимо. Процесс в Arch немного более утомительный, но очень хорошо документирован .

В случае возникновения ужасных ситуаций

Загрузите GParted , поместите его на USB-накопитель, загрузитесь с него и смонтируйте раздел / boot .

Затем просто запустите от имени пользователя root (или с помощью sudo ):

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

Grub2 должен иметь возможность автоматически определять ваши разделы и действовать соответственно.

(На данный момент я не уверен, нужно ли монтировать все разделы, чтобы Grub2 обнаружил на них ОС)

Если вы тем временем пытались установить Windows, это может быть Windows перезаписал загрузчик. Чтобы исправить это, просто запустите как root (или с помощью sudo ):

grub-install /dev/sdX

, где / dev / sdX - это диск, на котором находится ваш загрузочный раздел.


Небольшое пояснение:

Grub2 - это загрузчик этапа 2 .Это означает, что это не совсем операционная система, но она намного сложнее, чем простой загрузчик цепи, который поместился бы в первые 446 байт вашего основного раздела (остальная часть первого сектора - это таблица разделов, флаги и т. Д.).

MBR содержит только код для выполнения кода Grub2, который находится в вашем разделе / boot . Затем Grub2 либо chainloads в другой раздел (например, для загрузки Windows, поскольку он устанавливает свой собственный загрузчик), но он также может запускать код (такие как memtest ), либо получить доступ и запустите образ ядра и модуля ( vmlinuz ).

Что важно отметить, так это то, что в обоих случаях Grub2 выгружается из памяти при запуске ядра или при загрузке другого раздела.

2
04.03.2017, 20:20
4 ответа

CentOS 7 использует systemd и поэтому использует цели .

Если вам постоянно нужен текстовый режим (например, сервер, на котором вас не интересует графика), вы можете сообщить об этом systemd:

systemctl set-default multi-user.target

Теперь при следующей перезагрузке вы получите текстовую консоль. Это то же самое, что и более старый id: 3: initdefault: в / etc / inittab , чтобы установить уровень выполнения по умолчанию.

Если вы хотите однократную перезагрузку из grub (например, из-за плохого видеодрайвера, который вы пытаетесь исправить), то в строку ядра можно добавить вариант

systemd.unit=multi-user.target
9
27.01.2020, 21:52

После нажатия "e" для редактирования в меню GRUB найдите строку, начинающуюся с «linux16 ...» или «linuxefi ...», и добавьте «3» в конец этой строки.

Вы можете получить хорошее представление о том, что еще находится в этой строке, перед перезагрузкой, набрав:

$  cat /proc/cmdline

Например, в моем случае вывод:

BOOT_IMAGE=/vmlinuz-3.10.0-327.36.3.el7.x86_64 root=UUID=2cc29b16-fe2b-400f-a39f-3e9048784599 ro vconsole.keymap=us crashkernel=auto vconsole.font=latarcyrheb-sun16 rd.driver.blacklist=radeon LANG=en_US.UTF-8 3

Вы можете увидеть добавленную цифру «3».

3
27.01.2020, 21:52

При вводе кода ниже в консоли:

cat etc/inittab

вы увидите это:

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#

Это говорит о том, как изменить уровень выполнения по умолчанию.

1
27.01.2020, 21:52

В то время как 3будет работать как метод обратной совместимости (и более простой для запоминания )способ перехода к текстовому -только режиму, «правильный» способ сделать это — добавить rd.systemd.unit=multi-user.targetОбратите внимание, что это отличается от того, что @stephen -harris упоминал выше (, в котором отсутствует rd., который требуется для initrd ). Это полезно в случае, если вы тестируете клиентские цели systemd и хотите загрузиться с той, на которую не распространяются параметры совместимости. См. документацию здесь:https://www.freedesktop.org/software/systemd/man/systemd.html#Kernel%20Command%20Line

0
27.01.2020, 21:52

Теги

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