BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Arch Linux GRUB no detecta arranque Windows

cisquito

Así tengo particionado el disco duro:

/dev/sda1  #Arranque EFI para Windows (100 MiB)
/dev/sda2  #Reservado para Microsoft (16 MiB)
/dev/sda3  #Windows 11 (200 GiB)
/dev/sda4  #Formateada con ext4 (780 GiB)
  • Comienzo la instalación montando las particiones necesarias:
# mount /dev/sda4 /mnt
# mkdir /mnt/efi
# mount /dev/sda1 /mnt/efi
  • Instalo la paquetería esencial y configuro /etc/fstab.
  • Paso a chroot:
# arch-chroot /mnt
  • Configuro el idioma, el teclado y la zona horaria.
  • Instalo el gestor de arranque GRUB:
# pacman -S grub efibootmgr os-prober
  • Edito el archivo etc/default/grub borrando la almohadilla # que hay en la línea #GRUB_DISABLE_OS_PROBER=false para que detecte el arranque de Windows:
# nano /etc/default/grub
  • Instalo GRUB en el directorio EFI:
# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --removable
  • Genero el archivo de configuración de GRUB:
# grub-mkconfig -o /boot/grub/grub.cfg

Y aquí empieza el problema porque no detecta el arranque de Windows; solo el de Arch.

He probado con el gestor de arranque systemd-boot pero me dice que no hay suficiente espacio en /dev/sda1 (100 MiB)

He probado a añadir manualmente una entrada en el menú de GRUB /etc/grub.d/40_custom:

menuentry 'Windows 11' {
   search --fs-uuid --set=root 4224-04AA
   chainloader /efi/EFI/Microsoft/Boot/bootmgfw.efi
}

Pero me dice que no encuentra el archivo bootmgfw.efi

Estoy desesperado. No sé si cortarme las venas o dejármelas largas…

lhacc
1

Así a ojo diría que la entrada manual está mal. Sobra el /efi del principio.

Además creo que 4224-04AA no es un uuid correcto. Puedes ver el uuid de la partición con el comando blkid

🗨️ 6
skgsergio
1

La EFI es una particion FAT, los IDs que usa son de esos estilos, no son UUIDs

🗨️ 4
lhacc

Confundes el volume serial number con el uuid. Todas las particiones en un disco con formato gpt tienen un uuid independientemente del formato que tengan (o incluso si no tienen formato)

🗨️ 2
skgsergio
1

Tranquilo que no confundo nada, GRUB usa el UUID del FS no de la partición, y en FAT es el corto:

sconde@umbriel ~ $ sudo parted /dev/nvme0n1 p
Model: KBG40ZNS128G BG4A KIOXIA (nvme)
Disk /dev/nvme0n1: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
 
Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot, esp
 2      538MB   128GB  127GB  ext4
 
sconde@umbriel ~ $ sudo blkid /dev/nvme0n1p*
/dev/nvme0n1p1: LABEL_FATBOOT="UEFI" LABEL="UEFI" UUID="F7A7-9CBE" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="a5df1f3b-72b3-2643-a6c3-8473bfdcad58"
/dev/nvme0n1p2: LABEL="ROOTFS" UUID="c20ec5fd-233d-413a-9ae1-8154c328b23e" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="d5f27b9c-606f-9141-b858-5fc0483f3acf"
🗨️ 1
lhacc
cisquito

Gracias, amigo. Es usando la UUID "pequeña", tal y como Vd. indica.

Un saludo.

cisquito
1

Muchas gracias, amigo, por indicar el error.

Efectivamente, no había que incluir /efi al principio. Aunque el compañero skgsergio tenía razón: hay que usar la UUID y no la PARTUUID. Con la PARTUUID no encuentra el arranque.

# blkid /dev/sda1
/dev/sda1: UUID:"4224-04AA" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="529c93fd-271a-4d38-8dc6-86ebeadbc9a9"

Aunque, sin embargo, he descubierto una cosa que haría innecesario añadir manualmente una entrada en el menú de GRUB. Resulta que tras el primer logeo de Arch después de su instalación, si se vuelve a generar el archivo de configuración de GRUB que se detecta el arranque de Windows:

# grub-mkconfig -o /boot/grub/grub.cfg

Vaya… Pues ya podía Richard Stallman haberlo avisado en algún tuturial, ¿no?

Gracias de nuevo, amigo. Un saludo.

Weikis
1

Uso garuda Linux el grub lo tengo montado en /boot/grub y la partición efi la tengo en FAT32 de 1GiB

Cuando tenía el dualboot de Pop Os y usaba systemD con copiar la EFI del arranque de Windows en la carpeta EFI de la unidad con Pop Os ya me aparecía para arrancar Windows sin hacer mucha cosa.

También uso una estructura diferente donde cada SO tiene su NvME independiente de 1TB y luego 2 SSD Sata que comparten ambos sistemas

🗨️ 2
cisquito

Gracias, amigo, por su opción. Voy a ver si la pruebo en una máquina virtual. Parece interesante porque de esa manera no hay que modificar el EFI creado por Windows.

Supongo que se refiere Ud. a copiar todo el directorio /EFI/Microsoft y pegarlo en el directorio /EFI de la distribución.

Un saludo.

🗨️ 1
Weikis
1

Sip a mi me funciono. Es sencillo. Montas las particiones EFI y las copias sin más… luego ya no se si puse un comando para que el gestor de arranque de Linux me encontrará la de Windows. Lo hice hace tiempo ya. En la partición efi te quedaría /EFI/

/Microsoft/

/Distribucion_Efi/

Lo pegas en la raíz como e mencionado.

Pero si ya tienes grub funcionando déjalo estar ya. (; Tampoco va a cambiar el mundo por usar grub, System-d, rEFInd, Clover o lo que uses.