Можно ли перезагрузить компьютер непосредственно в memtest86 + (без ввода данных при загрузке), как это делает команда Windows mdsched
?
Используя apropos
, мы можем видеть, какое приложение используется только для следующей загрузки:
$ apropos "next boot only"
grub-reboot (8) - set the default boot entry for GRUB, for the next boot only
Используя grub-reboot
для одноразовой загрузки, я обнаружил, что оно Лучше всего использовать имя записи, а не номер записи, как было в некоторых связанных ответах здесь . Я просто не могу заставить его работать с номерами записей. Вот кое-что, что я нашел, работает с использованием имен записей.
Если вы присматриваете за /boot/grub/grub.cfg
, есть много записей, которые мы ищем. В частности, это запись Memory test
.
$ grep -i "memory test" /boot/grub/grub.cfg
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
Так как все, что нам нужно, это только первая запись, и нам нужно полное имя Memory test (memtest86+)
, чтобы сообщить grub-reboot
, что нам нужно, мы можем использовать следующую строку, чтобы получить только это имя и первая запись, указанная командой exit
.
awk -F"'" '/Memory test/ {print $2; exit}' /boot/grub/grub.cfg
Что дает нам вывод, например:
$ awk -F"'" '/Memory test/ {print $2; exit}' /boot/grub/grub.cfg
Memory test (memtest86+)
Теперь мы можем объединить эту строку в нашу однострочную команду, чтобы перезагрузить нашу систему в Memtest для однократной загрузки.
sudo grub-reboot "$(awk -F"'" '/Memory test/ {print $2; exit}' /boot/grub/grub.cfg)"; reboot
Часть reboot
в конце продолжит и перезагрузит вашу систему.
Надеюсь, это поможет!