Изменение загрузки загрузки UEFI от Busybox

Со сценарием с именем имя сценария. sh , который содержит только это:

#!/bin/bash
echo "script executed"
exit

Закроет оболочку, в которой вы работаете, если сценарий взят из источника.

Чтобы предотвратить закрытие всего окна, запустите новую под-оболочку bash, просто выполнив bash . Глубину вложенных оболочек можно увидеть в переменной SHLVL:

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ bash
$ echo $SHLVL
3

Если в этот момент вы создадите скрипт, указанный выше:

$ source ./scriptname.sh
script executed
$ echo $SHLVL
2

Как видите, один экземпляр bash был закрыт.
То же самое произойдет с .

$ . ./scriptname.sh
script executed
$ echo $SHLVL
1

Если вы снова создадите сценарий на этом уровне, все окно закроется. Чтобы избежать этого, вызовите новый экземпляр bash.

Лучший способ запустить программу ./scriptname.sh - сделать ее исполняемой:

$ bash
$ echo $SHLVL
2
$ chmod u+x scriptname.sh
$ ./scriptname.sh
script executed
$ echo $SHLVL
2

Или даже вызвать сценарий с именем оболочки:

$ bash ./scriptname
script executed
$ echo $SHLVL
2
0
14.09.2018, 11:41
1 ответ

Это шаги для изменения порядка загрузки efi в системе Debian:

В BusyBox загрузите модуль ядра для fs, в нашем случае:

# modprobe ext4 

Смонтируйте требуемые разделы. Обратите внимание, что root fs находится на sda3 в нашем конкретном случае:

# mkdir /mnt
# mount -t ext4 /dev/sda3 /mnt
# mount /proc /mnt/proc
# mount /sys /mnt/sys

Проникнуть в него:

# chroot /mnt

Загрузите модули ядра, необходимые для монтирования файловых систем и работы с efibootmgr:

# modprobe efivars
# modprobe vfat
# modprobe efivarfs

Смонтировать требуемый путь:

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

Теперь вы можете играть с efibootmgr:

# bin/efibootmgr -v
# bin/efibootmgr -o 0005,0004,0000,0001,0003,0001,0002

Завершить chroot и выйти:

# sync
# exit

Перезагрузитесь и наслаждайтесь.

1
28.01.2020, 02:42

Теги

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