Después de intentar instalar un kernel integrado y reiniciar, recibo el error:
montaje: montaje UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c en /sysroot falló: no existe tal dispositivo
¿Por qué está pasando esto? ¿Cómo puedo solucionar este problema para que arranque correctamente?
Acerca del sistema
- Alpine Linux 3.12_alpha20200319 (borde) - Alpine Linux Virtual
- Núcleo 5.4.31-0-virt
- Ejecutando dentro de VirtualBox
Pasos de construcción del kernel
wget https://mirrors.edge.kernel/pub/linux/kernel/v5.x/linux-5.4.30.tar.xz
tar -xf linux-5.4.30.tar.xz
cp /boot/config-virt /home/name/build/.config
make -C /home/name/linux-5.4.30 O=/home/name/build listnewconfig
make -j4 -C /home/name/linux-5.4.30 O=/home/name/build
cd /home/name/build
make modules_install
No estoy seguro de los siguientes pasos:
cp System.map /boot/System.map-virt
cp arch/x86_64/boot/bzImage /boot/vmlinuz-virt
cp .config /boot/config-virt
No lo ejecuto make install
porque pasa arch/x86/boot/bzImage. Debido a esto, supongo que se está instalando 32 bits y 64 bits. Así que estoy intentando instalarlo manualmente.
Mi archivo extlinux.conf:
DEFAULT menu.c32
PROMPT 0
MENU TITLE Alpine/Linux Boot Menu
MENU HIDDEN
MENU AUTOBOOT Alpine will be booted automatically in # seconds
TIMEOUT 30
LABEL virt
MENU LABEL linux virt
LINUX vmlinuz-virt
INITRD initramfs-virt
APPEND root=UUID=59c56381-e5ec-4a8b-8c2e-f9c6a66d524c moudles=sd-mod,usb-storage,ext4 quiet rootfstype=ext4
MENU SEPARATOR
Intentos de arreglar
(Todo lo siguiente sigue dando como resultado el mismo error)
- Ejecutando
mkinitfs
en/
el directorio antes de reiniciar - Correr
extlinux --install /boot
- Ejecutándolo
make install
en el directorio de compilación y cambiando la línea extlinux.confLINUX vmlinuz-virt
aLINUX vmlinuz
- Intenté cambiar los controladores de almacenamiento de VirtualBox a AHCI, virtio-scsi y PIIX4.
Puede ser útil:
Verifiqué el UUID especificado en el error y extlinux.conf. Identifica /dev/sda3. Sin embargo, cuando entro al shell de recuperación de emergencia después del inicio fallido y verifico el directorio /dev, no está presente. No tengo idea de por qué.
lsmod muestra que no hay módulos cargados. Supongo que esto no debería estar pasando.
Si continúo arrancando escribiendo, exit
aparece el pánico del kernel.
Archivos
.config -https://github.com/alpinelinux/aports/blob/master/main/linux-lts/config-virt.x86_64
extlinux.conf -https://pastebin.com/QMkePsqS
mkinitfs.conf -https://pastebin.com/rksn7GcN
Respuesta1
Como se menciona en la publicación,
lsmod muestra que no hay módulos cargados. Supongo que esto no debería estar pasando.
el problema se debía a que los módulos no se cargaban en el kernel. La versión actual del kernel en ejecución era 5.4.31-0-virt wand y la versión que se estaba construyendo era 5.4.30. Los módulos que se estaban instalando se estaban colocando en el /lib/modules/5.4.30
directorio. Esto provocó que el disco RAM inicial (initramfs) se compilara sin los módulos correctos para el kernel y, por lo tanto, no se cargara en el arranque.
Para solucionar este problema, después de instalar los módulos del kernel al compilar initramfs, se debe utilizar el siguiente comando:
mkinitfs -o /boot/initramfs-virt 5.4.30
Este comando incluye los módulos instalados para el kernel 5.4.30 en initramfs en lugar de usar la uname -r
versión predeterminada (en este caso 5.4.31-0-virt). Luego, el kernel puede cargar los módulos -> leer los discos -> arrancar desde el disco requerido.