... not getting a drive that my UEFI will recognize as a boot option.
Uefi работает немного наоборот :вы должны активно указать ему, какое «приложение EFI» из ESP вы хотите видеть в своем списке загрузки. См.
efibootmgr
, чтобы сделать это из Linux. Илиbcfg
из оболочки Uefi.Я использую оболочку Uefi для загрузки. Активируйте его как вариант загрузки, например «USB-устройства». Сначала вы получите приглашение
shell>
, затем введитеfs0:
, чтобы войти в ESP. Затем просто введите «vmlinuz» или как называется ваше ядро, добавьте initrd=foo и root=/dev/bar. У вас есть автозавершение табуляции и цветные имена файлов, и вы можете собирать ядра и файлы initrd в папках на вашем ESP, откуда вы можете запускать их напрямую. Чтобы повторно использовать командную строку ядра KCL (), вы можете повторить ее в сценарии.nsh
.Мне не удалось поставить ядро в меню загрузки uefi. Я думаю, для этого нужно полное приложение EFI, а в ядре есть только заглушка EFI -.
Установка grub на uefi выглядит так, будто GRUB.EFI просто копируется в ESP. После этого вы используете efibootmgr или bcfg, помимо настройки grub.
Я чуть не сломал голову о том, как смонтировать этот ESP (/boot/EFI ), следуя документации grub. Я здесь точно знаю, потому что нашел подсказку «вам не нужен загрузчик, если у вас есть uefi ». Это правда!
(Только для автоматической загрузки без 5-секундного обратного отсчета в оболочке uefi. Я все равно могу установить grub однажды)
добавлено :Здесь вы видите путаницу:
Вероятно, здесь происходят две вещи. Один из них заключается в том, что что-то прослушивает порт, а lsof и друзья пропускают его или запутывают сценарий запуска / сообщение об ошибке.
Сетевые пространства имен могут скрывать порт, но если вы хотите напрямую запросить файловую систему proc, попробуйте
grep 12f0 /proc/net/tcp
grep 12f0 /proc/net/tcp6
12f0 — это 4848 в шестнадцатеричном формате, и именно в этих файлах ядро хранит информацию о сокетах TCPv4 и TCPv6.
Если вы получаете совпадающие строки, то действительно что-то слушает порт, и ваши инструменты sus. Отсутствие попадания означает, что либо у вас есть пространства имен в игре, либо запускается сценарий запуска.
Вы также можете проверить, действительно ли сокет используется с помощью netcat
nc -l 4848
Если он молчит, то все в порядке, если он жалуется на используемый сокет, значит, он действительно используется, и вам нужно проверить, что ваши инструменты и пространства имен в порядке.