Вопрос или проблема
Я пытаюсь сделать чистую установку и использовать systemd-boot
в качестве загрузчика для моего ESP, но в инструкциях по установке на шаге 4 говорится:
Скопируйте ваш ядро и initramfs на этот ESP.
Но где находятся vmlinuz-linux
и initramfs-linux.img
? Я не могу их найти ни за что. Мне нужно установить bootctl
, прежде чем эти файлы будут доступны? Ничего нет в /boot
на моем установочном диске Arch Linux или на разделах, с которыми я работаю.
В связанной вики (которая больше не содержит этой точной фразы), есть раздел (https://wiki.archlinux.org/index.php/Systemd-boot#Preparing_kernels_for_/EFI/Linux), который применяется только если вы хотите создать такое особое ядро. В остальном, ядро Linux помещается в /boot
каждый раз, когда вы устанавливаете/обновляете пакет linux с помощью pacman
, т.е. также через pacstrap
.
Ответ или решение
При установке и настройке загрузчика systemd-boot
важно в первую очередь правильно определить местоположение файлов ядра и начального образа (initramfs), а также понять, когда и как они создаются.
Где находятся файлы ядра и initramfs?
На системах, использующих Linux и, в частности, дистрибутив Arch Linux, по умолчанию файлы ядра и initramfs располагаются в каталоге /boot
. После установки пакета linux
, который включает в себя необходимые компоненты для запуска ядра, вы сможете найти два критически важных файла:
vmlinuz-linux
: это сжатый образ ядра Linux.initramfs-linux.img
: это начальный образ, который необходим для загрузки операционной системы до того, как корневая файловая система будет смонтирована.
Процесс установки
При выполнении установки Arch Linux — особенно если вы используете pacstrap
— пакет linux
устанавливается автоматически, и файлы должны оказаться в /boot
. Однако в окружении, где вы запустили live-образ или в процессе установки, вы можете не увидеть этих файлов, так как они должны быть созданы во время завершения установки системы.
Вот процесс, который следует учитывать:
-
Запуск
pacstrap
: Убедитесь, что вы правильно указали целевую базу для установки и вносимые в неё компоненты. Команда может выглядеть так:pacstrap /mnt base linux linux-firmware
-
Проверка
/boot
: После завершения установки, проверьте, объёмно ли смонтирован раздел, в который вы проводите установку. Например:ls /mnt/boot
Установка bootctl
bootctl
является утилитой для управления загрузчиком на системах, использующих systemd-boot
. Она не требуется для создания файлов ядра и initramfs, но может быть полезной для настройки загрузчика. Вы можете установить bootctl
позже, после того как будете уверены, что файлы vmlinuz-linux
и initramfs-linux.img
уже созданы и расположены в нужной директории.
Заключение
Если вы всё ещё не видите нужные файлы в /boot
, убедитесь, что установка прошла успешно и что файлы ядра действительно были созданы. Возможно, процесс установки не завершился корректно. Это может быть причиной их отсутствия. В случае, если проблема остаётся нерешённой, рассмотрите возможность перемонтирования файловой системы, внимательно проверьте логи установки, и убедитесь, что у вас достаточно прав и пространства на устройстве.
Следуйте рекомендациям и документации, и вы успешно завершите установку с использованием systemd-boot
.