Tag Archives: grub

You need to load the kernel first (parte 2)

Dopo anni di modalità BIOS Legacy ho effettuato il passaggio a UEFI per sfruttarne alcune delle sue caratteristiche.
Andrà quindi reinstallato grub in modalità EFI, ma per mia paranoia maggiore sicurezza ho aggiunto anche altre due alternative “salva” boot:

  • refind: un Bootloader che può caricare kernel o EFI stub presenti nella partizione EFI di boot. Rinominandolo come /EFI/BOOT/bootx64.efi il sistema lo caricherà di default quando non trova altre immagini disponibili
  • EFI stub realizzata con Buildroot contenente kernel + ramdisk con varie utility di rescue. In meno di 30MB si riesce ad avere un sistema con driver ethernet, wifi, busybox completo, RAID, BTRFS…

    Occorre fare attenzione ad alcune cose: l’immagine Buildroot va creata in modo che l’initrd sia linkata nel kernel creando così un solo file all-inclusive.
    # make menuconfig
    Filesystem images —>
    seleziona initial RAM filesystem linked into the kernel (cpio)

    Nel kernel va abilitato il supporto all’EFI stub affinché l’immagine creata sia in formato .efi e dato che UEFI funziona via framebuffer anche questo va abilitato altrimenti lo schermo rimarrà fisso al logo del bootloader.
    # make linux-menuconfig
    Processor type and features —>
    EFI runtime service support —>
    EFI stub supportDevice Drivers —>
    Graphics support —>
    Frame buffer Devices —>
    Support for frame buffer devices —>
    EFI-based Framebuffer Support

Ripristinare il boot loader

Grub

Smanettando incautamente con i boot loader o installando Windows su un sistema dove è presente una partizione Linux spesso capita di sovrascrivere il mbr.

Superato l’attimo di smarrimento per il mancato caricamento del sistema operativo, occorrerà semplicemente mantenere la calma e seguire questa guida per recuperare la situazione.

Ci occorre un liveCD/DVD, ne va bene uno qualunque: UbuntuSystemrescuecdKnoppix, il cd di installazione di Archlinux

Facciamo boot da CD.
Ipotizziamo di avere una partizione / chiamata /dev/sda1 e nessuna /boot

  • Creiamo i mount point
    # sudo su
    # cd /mnt
    # mkdir sda1
    # mount /dev/sda1 /mnt/sda1
    # mount --bind /dev /mnt/sda1/dev
    # mount --bind /proc /mnt/sda1/proc
  • Eseguiamo il chroot in /dev/sda1
    # chroot /mnt/sda1
  • Modifichiamo grub se necessario
    # nano/boot/grub/menu.lst
    oppure se usiamo grub2
    # nano/boot/grub/grub.cfg
  • Reinstalliamo grub
    # grub-install /dev/sda
  • Usciamo dal chroot e smontiamo la partizione
    # exit
    # umount /mnt/sda1/proc
    # umount /mnt/sda1/dev
    # umount /mnt/sda1
  • Facciamo il reboot ed incrociamo le dita…
    # reboot