Problema de arranque de Debian10 al arrancar entre USB externo y SSD

Problema de arranque de Debian10 al arrancar entre USB externo y SSD

Instalé Debian 10 en un disco duro interno y funcionó bien con el arranque seguro UEFI.

Cuando instalé un segundo Debian en un USB externo, solo arranca desde ese USB.

Cuando desconecto el USB de la computadora portátil para iniciar en el SSD, aparece un error

Edición mínima de líneas tipo bash.

Deshabilitar el arranque seguro no ayudó.

Disk /dev/sda: 238,5 GiB, 256060514304 bytes, 500118192 sectors
Disk model
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 

Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1050623   1048576   512M EFI System
/dev/sda2  1050624   1550335    499712   244M Linux filesystem
/dev/sda3  1550336 500117503 498567168 237,8G Linux filesystem


Disk /dev/sdb: 57,3 GiB, 61505273856 bytes, 120127488 sectors
Disk model: Ultra USB 3.0   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 

Device       Start       End   Sectors  Size Type
/dev/sdb1     2048   1050623   1048576  512M EFI System
/dev/sdb2  1050624   1550335    499712  244M Linux filesystem
/dev/sdb3  1550336 120125439 118575104 56,6G Linux filesystem


Disk /dev/mapper/sdc3_crypt: 56,5 GiB, 60693676032 bytes, 118542336 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/usb--vg-root: 48,7 GiB, 52240056320 bytes, 102031360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/usb--vg-swap_1: 7,9 GiB, 8451522560 bytes, 16506880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

salida lvs

LV     VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
root   intern-vg -wi-a----- 229,80g                                                    
swap_1 intern-vg -wi-a-----  <7,87g                                                    
root   usb-vg    -wi-ao----  48,65g                                                    
swap_1 usb-vg    -wi-ao----   7,87g 

Respuesta1

Debe tener en cuenta que en el momento de escribir este artículo, Debian 10 todavía está en testingestado, por lo que puede haber asperezas aquí y allá.

Supongo que el instalador de Debian no tenía idea de que la segunda instalación iba a realizarse en una unidad extraíble y sobrescribió la copia de GRUB de la primera instalación en su partición del sistema EFI (ESP) con una configurada para arrancar desde el dispositivo USB.

Para solucionarlo, tendría que hacer dos cosas, en cualquier orden:

1.) Debe asegurarse de que la instalación basada en USB pueda iniciarse por sí sola, es decir, la unidad USB debe incluir una partición FAT32 que contenga una copia del gestor de arranque en \EFI\boot\bootx64.efi. Eso es lo que hace que un USB extraíble sea de arranque en el sentido UEFI.

2.) Para arreglar el gestor de arranque de la instalación en el disco duro interno, puede iniciar en la instalación basada en USB, luego montar la(s) partición(es) de la instalación basada en disco duro interno y hacer chroot en esa instalación.

Su fdisk -lresultado indica que probablemente también se esté utilizando LVM.

Según su fdisk -lresultado, este debería ser el comienzo de los comandos necesarios. Tenga en cuenta que todo esto debe ejecutarse como root, así que primero use su -e ingrese la contraseña de root, o sudo -iingrese su propia contraseña para convertirse en root.

# mkdir /mnt/hddsystem

# cryptsetup luksOpen /dev/sda3 sda3_crypt
<the above command will ask you the encryption passphrase of the HDD installation.
If successful, then /dev/mapper/sda3_crypt should now exist>

# vgscan
<this detects the LVM volume group within the encrypted container of the HDD installation>

# lvs
<this displays all the detected LVM logical volumes and their names>

# vgchange -ay intern-vg
# mount /dev/mapper/intern--vg-root /mnt/hddsystem

<if successful, directories like /mnt/hddsystem/dev, /mnt/hddsystem/proc, /mnt/hddsystem/sys 
should be visible and empty at this point. Other directories should be visible under /mnt/hddsystem too.>

# mount /dev/sda2 /mnt/hddsystem/boot
# mount /dev/sda1 /mnt/hddsystem/boot/efi

En este punto, también podría ser fácil arreglar el arranque del sistema USB, simplemente copiando la versión de GRUB que busca medios USB para arrancar realmente en el USB, antes de sobrescribirlo en el HDD.

# mkdir /mnt/usb-esp
# mount /dev/sdb1 /mnt/usb-esp
# mkdir -p /mnt/usb-esp/EFI/boot
# cp -r /mnt/hddsystem/boot/efi/EFI/debian /mnt/usb-esp/EFI/
# cp /mnt/usb-esp/EFI/debian/grubx64.efi /mnt/usb-esp/EFI/boot/
# cp /mnt/hddsystem/boot/efi/EFI/debian/shimx64.efi /mnt/usb-esp/EFI/boot/bootx64.efi
# umount /mnt/usb-esp

Volver a arreglar la instalación del disco duro...

# mount -o bind /dev /mnt/hddsystem/dev
# mount -o bind /proc /mnt/hddsystem/proc
# mount -o bind /sys /mnt/hddsystem/sys
<these commands are preparations for the following chroot command, mounting all the necessary real and virtual filesystems so that the inactive HDD-based installation can be used like an active, running system.>

# chroot /mnt/hddsystem /bin/bash
<this command transitions us to the HDD-based environment; from this point onwards, for this shell session only, /mnt/hddsystem is /.>

# grub-install /dev/sda1
# update-grub 
<these two commands to fix the bootloader are what all the preparations above were for.>

información relacionada