我已经使用以下方式构建了 linux-5.9 内核本指南对于 initramfs,我遵循了自动预设方法部分。
对于我遵循的 iso本指南,使用了热冷自定义配置文件(重命名为 custom-profile/
),将vmlinux-linux59
和 添加initramfs-linux59.img
到custom-profile/airootfs/boot/
目录中。最后,我在中创建了一个条目 custom-profile/efiboot/loader/entries
:
#
# SPDX-License-Identifier: GPL-3.0-or-later
title Arch Linux CUSTOM install medium (x86_64, UEFI)
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux59
initrd /%INSTALL_DIR%/boot/intel-ucode.img
#initrd /%INSTALL_DIR%/boot/amd-ucode.img
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux59.img
options root="LABEL=%ARCHISO_LABEL%" rw archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL%
如果在 systemd-boot 菜单中选择了原始内核,则 iso 可以正常工作,但如果选择了 linux59 的条目,则:
:: running early hook [udev]
Starting version 246.6-1-arch
:: running hook [udev]
:: Triggering uevents...
Waiting 10 seconds for device /dev/disk/by-label/ARCH_202010 ...
ERROR: device 'LABEL ARCH_202010' not found. Skipping fsck.
:: mounting 'LABEL=ARCH_202010' on real root
mount: /new_root: can't find LABEL=ARCH_202010.
You are now being dropped into an emergency shell.
sh: can't access tty: job control turned off
[rootfs ]#
我认为问题出在我生成的 initramfs 上# mkinitcpio -p linux59
,但我无法弄清楚具体在哪里。