Pagina 1 di 1

Cartella /boot condivisa tra varie distro

Inviato: 30 ottobre 2018, 9:18
da Zar Marco
Ci riprovo, mettendo in OT anche se parlo pure di arch, da cui sto scrivendo.
Mi è stato consigliato di tenere un'unica boot per tutte le distro, fatto, ora mi trovo con i vari kernel in un unico posto

Codice: Seleziona tutto

╭─[legion_of_archers] as zar_marco in ~                                                                                                                                                                                             10-30 09:17:16
╰──➤  ls /boot 
amd-ucode.img                     grub                                initramfs-4.19-x86_64.img                 initrd-4.19.0-gentoo                   loader                                     vmlinuz-4.18.16_1
c195de32cffc419da408ddb1d976e44d  initramfs-4.14-x86_64-fallback.img  initramfs-genkernel-x86_64-4.19.0-gentoo  intel-ucode.img                        System.map-4.18.16_1                       vmlinuz-4.18.5-redcore
config-4.18.16_1                  initramfs-4.14-x86_64.img           initramfs-linux-fallback.img              kernel-genkernel-x86_64-4.19.0-gentoo  System.map-4.18.5-redcore                  vmlinuz-4.19-x86_64
config-4.18.5-redcore             initramfs-4.18.16_1.img             initramfs-linux.img                       linux414-x86_64.kver                   System.map-genkernel-x86_64-4.19.0-gentoo  vmlinuz-linux
EFI                               initramfs-4.19-x86_64-fallback.img  initrd-4.18.5-redcore                     linux419-x86_64.kver                   vmlinuz-4.14-x86_64
esiste una qualche maniera per dividerli in sottocartelle, in maniera che grub riesca a riconoscere quale kernel è di quale distro? O posso farlo solo a mano?

Re: Cartella /boot condivisa tra varie distro

Inviato: 30 ottobre 2018, 12:34
da 4javier
Che intendi con "a mano"?

Re: Cartella /boot condivisa tra varie distro

Inviato: 30 ottobre 2018, 13:18
da TheSaint
Ma perché non cambiare il nome ai vari kernel e dire a grub di prendere quello di competenza ?
Se non sbaglio si trova i vari preset in /etc/mkinitcpio.d/

Re: Cartella /boot condivisa tra varie distro

Inviato: 30 ottobre 2018, 14:23
da Zar Marco
Ho modificato in mkinitcpio.d mettendo che crei un nome specifico per initramfs di arch ed anche per il vmlinuz. Ma se lancio grub-mkconfig mi mette tutti i Kernel come entry di arch. Poi faccio e mando lo screen

allora ho modificato così mkinitcpio.d

Codice: Seleziona tutto

╭─[legion_of_archers] as root in /boot                                                                                                                                                                                              10-30 14:39:29
╰──➤  cat /etc/mkinitcpio.d/linux.preset
# mkinitcpio preset file for the 'linux' package

ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-arch-linux"

PRESETS=('default' 'fallback')

#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-arch-linux.img"
#default_options=""

#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-arch-linux-fallback.img"
fallback_options="-S autodetect"
se vado a forzare la reinstallazione del kernel ottengo questi errori

Codice: Seleziona tutto

==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-arch-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-arch-linux.img
==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-arch-linux'
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-arch-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-arch-linux-fallback.img -S autodetect
==> ERROR: specified kernel image does not exist: `/boot/vmlinuz-arch-linux'
errore: l'esecuzione del comando non è riuscita correttamente
(3/3) Arming ConditionNeedsUpdate...


Re: Cartella /boot condivisa tra varie distro

Inviato: 30 ottobre 2018, 19:21
da 4javier
Dal preset non puoi modificare il nome del kernel, solo indicargli quale vuoi usare per generare l'initramfs.

Re: Cartella /boot condivisa tra varie distro

Inviato: 31 ottobre 2018, 4:48
da TheSaint
4javier ha scritto:
30 ottobre 2018, 19:21
modificare il nome del kernel
Ah!, vero serve solo per initramfs. Scusate la svista.
Per il kernel e/o initiramfs ci potrebbe essere un lavoro a manina che gli metti un symlink con un nome diverso, oppure come farlo con gli hook di pacman.
Comunque la via più semplice è togliere manjaro, oppure farla avviare dal boot loader del BIOS.

Re: Cartella /boot condivisa tra varie distro

Inviato: 31 ottobre 2018, 10:57
da Zar Marco
So che sarebbe la soluzione più semplice, ma manjaro ho deciso di tenerla per vedere in quanto si rompe. Ma il problema non lo creava manjaro, in quanto kernel initram e vmlinuz hanno nome diverso rispetto a quello di arch. E' void che nomina initramfs e vmlinuz nella stessa maniera. Ma il problema non è solo quello, ma quanto che grub mette i vari kernel, anche se con nomi diversi, sempre nelle entry di arch

Re: Cartella /boot condivisa tra varie distro

Inviato: 31 ottobre 2018, 12:50
da 4javier
Se le entry a cui ti riferisci sono quelle del menu di selezione di grub, dipendono solo dal grub.cfg. Come lo hai generato?

Re: Cartella /boot condivisa tra varie distro

Inviato: 31 ottobre 2018, 16:50
da Zar Marco
L'ho creato con grub-mkconfig -o /boot/grub/grub.cfg

Re: Cartella /boot condivisa tra varie distro

Inviato: 31 ottobre 2018, 18:13
da 4javier
Posta l'output di

Codice: Seleziona tutto

grub-mkconfig

Re: Cartella /boot condivisa tra varie distro

Inviato: 1 novembre 2018, 6:58
da TheSaint
È già dal primo messaggio che consiglio di intervenire sulla configurazione di grub. Il metodo automatico come vedi non da la risoluzione del tuo problema.
Di quante volte si è scritto sul forum come si scrive e verifica l' avvio con grub, non hai avuto tempo di fare una ricerca ?

Re: Cartella /boot condivisa tra varie distro

Inviato: 1 novembre 2018, 16:00
da Zar Marco
Ho intuito il dover intervenire manualmente, e posso farlo tranquillamente, ma la mia era una richiesta per farlo diventare "automatico", per questo chiedevo se era possibile una suddivisione in cartelle, ma ho intuito non essere possibile.

Detto ciò, questo è l'output di grub-mkconfig

Codice: Seleziona tutto

╭─[legion_of_arches] as root in /home/zar_marco                                                                                                                                                                                     11-01 15:54:58
╰──➤  grub-mkconfig -o /boot/grub/grub.cfg
Generazione file di configurazione GRUB...
Trovata immagine linux: /boot/vmlinuz-linux
Trovata immagine initrd: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Trovata immagine linux: /boot/kernel-debian-sources-x86_64-4.14.12-2
Trovata immagine initrd: /boot/intel-ucode.img /boot/amd-ucode.img
Trovata immagine linux: /boot/vmlinuz-4.19-x86_64
Trovata immagine initrd: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-4.19-x86_64.img
Found fallback initrd image(s) in /boot: initramfs-4.19-x86_64-fallback.img
Trovata immagine linux: /boot/vmlinuz-4.14-x86_64
Trovata immagine initrd: /boot/intel-ucode.img /boot/amd-ucode.img /boot/initramfs-4.14-x86_64.img
Found fallback initrd image(s) in /boot: initramfs-4.14-x86_64-fallback.img
fatto
nel frattempo ho eliminato un paio di partizioni, quindi mi ritrovo solo arch-manjaro e nixos, che qui non viene proprio trovato.

Re: Cartella /boot condivisa tra varie distro

Inviato: 1 novembre 2018, 16:06
da 4javier
Posta /boot/grub/grub.cfg

Re: Cartella /boot condivisa tra varie distro

Inviato: 1 novembre 2018, 17:36
da pipep
Io ho una situazione un po' diversa dalla tua.
Ho un sistema UEFI e come boot loader non uso grub ma systemd-boot.
Però posso dire come ho fatto io, che magari ti da qualche spunto.
  • La partizione di avvio EFI la monto in /efi.
  • Al suo interno ho creato diverse cartelle, una per ogni sistema che voglio avviare in multiboot, p.es. /efi/arch, /efi/gentoo, efi/ubuntu, ecc.
Così ho i diversi file di avvio ordinati in una cartella per ogni sistema, e ogni sistema posso aggiornarlo automaticamente senza interventi manuali.

Re: Cartella /boot condivisa tra varie distro

Inviato: 2 novembre 2018, 13:41
da Zar Marco
Ok, questo è il mio grub.cfg

Codice: Seleziona tutto

 cat /boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  7706867b-b5b4-4ff6-838a-d0b190c14f82
else
  search --no-floppy --fs-uuid --set=root 7706867b-b5b4-4ff6-838a-d0b190c14f82
fi
    font="/@arch/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=it_IT
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod fat
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root  F514-EFC4
        else
          search --no-floppy --fs-uuid --set=root F514-EFC4
        fi
        echo    'Caricamento Linux linux...'
        linux   /vmlinuz-linux root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
        echo    'Caricamento ramdisk iniziale...'
        initrd  /intel-ucode.img /amd-ucode.img /initramfs-linux.img
}
submenu 'Opzioni avanzate per Arch Linux' $menuentry_id_option 'gnulinux-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
        menuentry 'Arch Linux, con Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux linux...'
                linux   /vmlinuz-linux root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /intel-ucode.img /amd-ucode.img /initramfs-linux.img
        }
        menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux linux...'
                linux   /vmlinuz-linux root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /initramfs-linux-fallback.img
        }
        menuentry 'Arch Linux, con Linux kernel-debian-sources-x86_64-4.14.12-2' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-kernel-debian-sources-x86_64-4.14.12-2-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux kernel-debian-sources-x86_64-4.14.12-2...'
                linux   /kernel-debian-sources-x86_64-4.14.12-2 root=/dev/nvme0n1p3 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /intel-ucode.img /amd-ucode.img
        }
        menuentry 'Arch Linux, con Linux 4.19-x86_64' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19-x86_64-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux 4.19-x86_64...'
                linux   /vmlinuz-4.19-x86_64 root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /intel-ucode.img /amd-ucode.img /initramfs-4.19-x86_64.img
        }
        menuentry 'Arch Linux, with Linux 4.19-x86_64 (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19-x86_64-fallback-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux 4.19-x86_64...'
                linux   /vmlinuz-4.19-x86_64 root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /initramfs-4.19-x86_64-fallback.img
        }
        menuentry 'Arch Linux, con Linux 4.18.16_2' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.16_2-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux 4.18.16_2...'
                linux   /vmlinuz-4.18.16_2 root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /intel-ucode.img /amd-ucode.img /initramfs-4.18.16_2.img
        }
        menuentry 'Arch Linux, con Linux 4.14-x86_64' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14-x86_64-advanced-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux 4.14-x86_64...'
                linux   /vmlinuz-4.14-x86_64 root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /intel-ucode.img /amd-ucode.img /initramfs-4.14-x86_64.img
        }
        menuentry 'Arch Linux, with Linux 4.14-x86_64 (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14-x86_64-fallback-7706867b-b5b4-4ff6-838a-d0b190c14f82' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod fat
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  F514-EFC4
                else
                  search --no-floppy --fs-uuid --set=root F514-EFC4
                fi
                echo    'Caricamento Linux 4.14-x86_64...'
                linux   /vmlinuz-4.14-x86_64 root=UUID=7706867b-b5b4-4ff6-838a-d0b190c14f82 rw rootflags=subvol=@arch  quiet
                echo    'Caricamento ramdisk iniziale...'
                initrd  /initramfs-4.14-x86_64-fallback.img
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Detto ciò, sto già usando systemd-boot, quindi il problema l'avrei risolto, ma volevo comunque sapere se era possibile risolvere con grub, in quanto più facilmente personalizzabile