# [grub2] grub2-probe fallito

## cloc3

mi è punta vaghezza di passare da grub a grub2.

d'altronde, prima mi costringeranno a farlo.

purtroppo costruisco le mie gentoo box con metodi un tantino esotici.

per esempio, il mio file system principale è un file squashfs direttamente iniettato in una partizione tradizionale con un comando di questo tipo:

```

dd if=image.squash of=/dev/sda*

```

con il vecchio grub, uso una initrd personalizzzata e una kernel line ad hoc. vorrei fare lo stesso con grub2, ma grub2-mkconfig si stampa regolarmente con questa uscita:

```

aspi2 ~ # LANG="" grub2-mkconfig 

/usr/sbin/grub2-probe: error: failed to get canonical path of rootfs.

```

Esiste un modo per produrre un grub.cfg provvisorio, da modificare successivamente?

----------

## pierino_89

Ma /boot è una partizione normale?

----------

## cloc3

 *pierino_89 wrote:*   

> Ma /boot è una partizione normale?

 

si. è una partizione ext2, definita in fstab.

----------

## pierino_89

Da quel che vedo grub2-probe viene chiamato in /etc/grub.d/00_header e in /etc/grub.d/10_linux, probabilmente editando uno dei due file (o entrambi) puoi risolvere il problema. Purtroppo non avendo la tua configurazione mi viene difficile fare supposizioni.

In ogni caso, ti incollo il mio grub.cfg così mal che vada puoi modificare quello.

```
#

# DO NOT EDIT THIS FILE

#

# It is automatically generated by grub2-mkconfig using templates

# from /etc/grub.d and settings from /etc/default/grub

#

### BEGIN /etc/grub.d/00_header ###

if [ -s $prefix/grubenv ]; then

  load_env

fi

set default="0"

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_msdos

insmod ext2

set root='hd0,msdos5'

if [ x$feature_platform_search_hint = xy ]; then

  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

else

  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

fi

    font="/usr/share/grub/unicode.pf2"

fi

if loadfont $font ; then

  set gfxmode=1600x900

  load_video

  insmod gfxterm

  set locale_dir=$prefix/locale

  set lang=it_IT

  insmod gettext

fi

terminal_output gfxterm

insmod part_msdos

insmod ext2

set root='hd0,msdos5'

if [ x$feature_platform_search_hint = xy ]; then

  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

else

  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

fi

insmod png

background_image -m stretch /boot/grub2/I_see_no_God_up_here.png

if sleep --interruptible 0 ; then

  set timeout=5

fi

### END /etc/grub.d/00_header ###

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

menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

        load_video

        insmod gzio

        insmod part_msdos

        insmod ext2

        set root='hd0,msdos5'

        if [ x$feature_platform_search_hint = xy ]; then

          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

        else

          search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

        fi

        echo    'Caricamento Linux 3.8.5-gentoo...'

        linux   /boot/vmlinuz-3.8.5-gentoo root=/dev/sda5 ro  i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force rootfstype=ext4 quiet ro init=/sbin/e4rat-preload

}

submenu 'Opzioni avanzate per Gentoo GNU/Linux' $menuentry_id_option 'gnulinux-advanced-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

        menuentry 'Gentoo GNU/Linux, con Linux 3.8.5-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.5-gentoo-advanced-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.8.5-gentoo...'

                linux   /boot/vmlinuz-3.8.5-gentoo root=/dev/sda5 ro  i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force rootfstype=ext4 quiet ro init=/sbin/e4rat-preload

        }

        menuentry 'Gentoo GNU/Linux, con Linux 3.8.5-gentoo (modalità ripristino)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.5-gentoo-recovery-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.8.5-gentoo...'

                linux   /boot/vmlinuz-3.8.5-gentoo root=/dev/sda5 ro single 

        }

        menuentry 'Gentoo GNU/Linux, con Linux 3.8.2-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.2-gentoo-advanced-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.8.2-gentoo...'

                linux   /boot/vmlinuz-3.8.2-gentoo root=/dev/sda5 ro  i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force rootfstype=ext4 quiet ro init=/sbin/e4rat-preload

        }

        menuentry 'Gentoo GNU/Linux, con Linux 3.8.2-gentoo (modalità ripristino)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.8.2-gentoo-recovery-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.8.2-gentoo...'

                linux   /boot/vmlinuz-3.8.2-gentoo root=/dev/sda5 ro single 

        }

        menuentry 'Gentoo GNU/Linux, con Linux 3.7.8-gentoo' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.7.8-gentoo-advanced-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.7.8-gentoo...'

                linux   /boot/vmlinuz-3.7.8-gentoo root=/dev/sda5 ro  i915.i915_enable_rc6=1 i915.semaphores=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force rootfstype=ext4 quiet ro init=/sbin/e4rat-preload

        }

        menuentry 'Gentoo GNU/Linux, con Linux 3.7.8-gentoo (modalità ripristino)' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.7.8-gentoo-recovery-2366d9b0-2fb2-45e8-9d23-49b0c6e91674' {

                load_video

                insmod gzio

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                else

                  search --no-floppy --fs-uuid --set=root 2366d9b0-2fb2-45e8-9d23-49b0c6e91674

                fi

                echo    'Caricamento Linux 3.7.8-gentoo...'

                linux   /boot/vmlinuz-3.7.8-gentoo root=/dev/sda5 ro single 

        }

}

### 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 ###

menuentry 'Windows 7 (loader) (su /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-B42EB9002EB8BD24' {

        insmod part_msdos

        insmod ntfs

        set root='hd0,msdos1'

        if [ x$feature_platform_search_hint = xy ]; then

          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  B42EB9002EB8BD24

        else

          search --no-floppy --fs-uuid --set=root B42EB9002EB8BD24

        fi

        chainloader +1

}

### 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 ###

```

N.B.: io non ho /boot separata.

Comunque, per curiosità, perché usi squashfs come root?

----------

## cloc3

 *pierino_89 wrote:*   

> Da quel che vedo grub2-probe viene chiamato in /etc/grub.d/00_header e in /etc/grub.d/10_linux, probabilmente editando uno dei due file (o entrambi) puoi risolvere il problema.
> 
> 

 

stendiamoci una pietra sopra.

se tu, prima di postare, ti prendessi cura di avere alzato la useflag device-mapper, correresti meno il rischio di sprecare i tuoi post. 

 :Confused: 

il mio problema rimane ancora non del tutto risolto, perché non ho avuto tempo di approfondire.

non mi sono ancora chiare le conseguenze della scelta di chiamare grub2-install con una partizione read-only. 

 *pierino_89 wrote:*   

> 
> 
> Comunque, per curiosità, perché usi squashfs come root?

 

bè. è comodissimo.

serve per le chiavette usb, che costruisco con la stessa tecnica dei cdrom.

compilo la gentoo-box in chroot, e poi la "masterizzo" con il comando:

```

mksquashfs -parametri /partizione-in-chroot / /dev/blocco-della-chiavetta-usb

```

naturalmente, a differenza dei cd rom, la chiavetta è configurata per offrire degli spazi rw.

forse, oggi come oggi, potrei sostituire i file system squashfs con dei btrfs, che sono ad un tempo compressi e rw, ma non mi sono ancora deciso a studiare la cosa.

----------

