Ripristinare GRUB [RISOLTO]

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Ripristinare GRUB [RISOLTO]

Messaggio da darkstaring »

Buonasera, ho clonato il mio vecchio ssd su un nuovo pc che mi è arrivato oggi per riavere il mio vecchio sistema....
In pratica il disco è già clonato ed ho gia' modificato fstab
ma il problema e che non riesco a ripristinare grub...
premetto uso Arch e non Slackware...
il nuovo pc ha partizioni uefi con windows (che vorrei tenere in caso mi serva)
Il vecchio sistema invece aveva un disco mbr... con il passaggio a uefi credo di dover scrivere grub sulla partizione con flag di boot... il problema e che non ci riesco...
Avete qualche suggerimento ?
se volete chiarimenti sono qua'

Grazie mille
Ultima modifica di darkstaring il mer 25 ott 2017, 16:27, modificato 1 volta in totale.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

Devi reinstallare grub sulla partizione EFI e rigenerare il config.

Com'è il tuo schema partizioni?

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

Codice: Seleziona tutto

Dispositivo     Start      Fine   Settori   Size Tipo
/dev/sda1        2048    739327    737280   360M EFI System
/dev/sda2      739328   1001471    262144   128M Microsoft reserved
/dev/sda3     1001472 215261183 214259712 102,2G Microsoft basic data
/dev/sda4   454942720 456949759   2007040   980M Windows recovery environment
/dev/sda5   456949760 495912959  38963200  18,6G Microsoft basic data
/dev/sda6   495912960 500107263   4194304     2G Microsoft basic data
/dev/sda7   215261184 454942719 239681536 114,3G Linux filesystem
Arch sta su sda7... il config l'ho già rigenerato
ma non riesco a scrivere sulla partizione EFI...
Sai dirmi come dovrei fare?
Ora sono in live su ubuntu...
Grazie

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

Secomdo me ti conviene farlo da archlinux via chroot.

Esempio, dalla live di ubuntu avviata in modalità uefi:

Codice: Seleziona tutto

mkdir /mnt/arch
mount /dev/sda7 /mnt/arch
mount /dev/ --bind /mnt/arch/dev
chroot /mnt/arch /bin/bash
mount none -t proc /proc
mount none -t sysfs /sys
Poi devi montare la partizione EFI. Io per comodità di solito la monto su /boot/efi:

Codice: Seleziona tutto

mkdir -pv /boot/efi
mount /dev/sda1 /boot/efi
Infine installi grub:

Codice: Seleziona tutto

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=boot
Occhio che affinché l'installazione vada a buon fine mi sa che devi installare prima efibootmgr.
A questo punto in '/boot/efi/EFI/boot' dovresti avere un file 'grubx64.efi'. Rinominalo in 'bootx64.efi' e grub dovrebbe partire al prossimo riavvio. Occhio che di bootx64.efi ce ne potrebbe essere un altro - quello di Win - quindi prima backuppa, magari l'intera partizione EFI.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

Grazie mille, ma ancora non funziona:

Codice: Seleziona tutto

[root@ubuntu /]# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=boot
Installazione per la piattaforma x86_64-efi.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
Installazione completata, nessun errore segnalato.
[root@ubuntu /]# pacman -Ss efibootmgr
core/efibootmgr 15-1 [installato]
potrebbe essere perchè ubuntu è lanciato in modalità legacy ?

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

darkstaring ha scritto:Grazie mille, ma ancora non funziona:
potrebbe essere perchè ubuntu è lanciato in modalità legacy ?
Sì. Avvia in modalità UEFI.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

Dopo 1000 errori (risolti) legati alla scheda video
sto scrivendo dal mio vecchio sistema \:D/ ....
Solo una cosa, ho os-prober ma grub-mkconfig non trova windows...
Ho cercato in rete ma ancora non ho trovato la risposta....

Sai darmi qualche altra dritta???...
Grazie mille

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

darkstaring ha scritto: ho os-prober ma grub-mkconfig non trova windows...
Strano... prova a controllare che '/etc/grub.d/30_os-prober' - o quello che è - abbia i permessi di esecuzione.

Altrimenti, creati un file "custom" - esempio: '/etc/grub.d/39_win' - dagli i permessi di esecuzione e piazzaci dentro il contenuto descritto qui - occhio alla parte fondamentale relativa alle variabili '$fs_uuid' e '$hints_string'.

Infine, rigenera il config di grub.

Anch'io utilizzo quella procedura, perché os-prober mi da problemi, specie su sistemi con più dischi.

Edit
Dimenticavo: i miei file custom iniziano sempre con questo contenuto, come previsto negli esempi forniti col pacchetto grub:

Codice: Seleziona tutto

#!/bin/sh
exec tail -n +3 $0
# 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.
anche se nel link sopra non viene riportato. Ma sinceramente non so se sia necessario.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

ls -al /etc/grub.d/30_os-prober
-rwxr-xr-x 1 root root 11301 16 set 22.50 /etc/grub.d/30_os-prober
Il contenuto e' questo:

Codice: Seleziona tutto

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"

export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"

. "$pkgdatadir/grub-mkconfig_lib"

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  exit 0
fi

if [ -z "`which os-prober 2> /dev/null`" ] || [ -z "`which linux-boot-prober 2> /dev/null`" ] ; then
  # missing os-prober and/or linux-boot-prober
  exit 0
fi

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
  # empty os-prober output, nothing doing
  exit 0
fi

osx_entry() {
    if [ x$2 = x32 ]; then
        # TRANSLATORS: it refers to kernel architecture (32-bit)
        bitstr="$(gettext "(32-bit)")"
    else
        # TRANSLATORS: it refers to kernel architecture (64-bit)
        bitstr="$(gettext "(64-bit)")"
    fi
    # TRANSLATORS: it refers on the OS residing on device %s
    onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
        cat << EOF
menuentry '$(echo "${LONGNAME} $bitstr $onstr" | grub_quote)' --class osx --class darwin --class os \$menuentry_id_option 'osprober-xnu-$2-$(grub_get_device_id "${DEVICE}")'  {
EOF
        save_default_entry | grub_add_tab
        prepare_grub_to_access_device ${DEVICE} | grub_add_tab
        cat << EOF
        load_video
        set do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             set do_resume=1
           fi
        fi
        if [ \$do_resume = 0 ]; then
           xnu_uuid ${OSXUUID} uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           if [ /kernelcache -nt /System/Library/Extensions ]; then
              $1 /kernelcache boot-uuid=\${uuid} rd=*uuid
           elif [ -f /System/Library/Kernels/kernel ]; then
              $1 /System/Library/Kernels/kernel boot-uuid=\${uuid} rd=*uuid
              xnu_kextdir /System/Library/Extensions
           else
              $1 /mach_kernel boot-uuid=\${uuid} rd=*uuid
              if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
                xnu_mkext /System/Library/Extensions.mkext
              else
                xnu_kextdir /System/Library/Extensions
              fi
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devprop.bin ]; then
              xnu_devprop_load /Extra/devprop.bin
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}
EOF
}

used_osprober_linux_ids=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"
  if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then
    EXPUUID="$UUID"

    if [ x"${DEVICE#*@}" != x ] ; then
      EXPUUID="${EXPUUID}@${DEVICE#*@}"
    fi

    if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then
      echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2
      continue
    fi
  fi

  BTRFS="`echo ${OS} | cut -d ':' -f 5`"
  if [ "x$BTRFS" = "xbtrfs" ]; then
        BTRFSuuid="`echo ${OS} | cut -d ':' -f 6`"
        BTRFSsubvol="`echo ${OS} | cut -d ':' -f 7`"
  fi

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  # os-prober returns text string followed by optional counter
  CLASS="--class $(echo "${LABEL}" | LC_ALL=C sed 's,[[:digit:]]*$,,' | cut -d' ' -f1 | tr 'A-Z' 'a-z' | LC_ALL=C sed 's,[^[:alnum:]_],_,g')"

  gettext_printf "Found %s on %s\n" "${LONGNAME}" "${DEVICE}" >&2

  case ${BOOT} in
    chain)

          onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
      cat << EOF
menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' {
EOF
      save_default_entry | grub_add_tab
      prepare_grub_to_access_device ${DEVICE} | grub_add_tab

      if [ x"`${grub_probe} --device ${DEVICE} --target=partmap`" = xmsdos ]; then
          cat << EOF
        parttool \${root} hidden-
EOF
      fi

      case ${LONGNAME} in
        Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
        ;;
        *)
          cat << EOF
        drivemap -s (hd0) \${root}
EOF
        ;;
      esac

      cat <<EOF
        chainloader +1
}
EOF
    ;;
    efi)

        EFIPATH=${DEVICE#*@}
        DEVICE=${DEVICE%@*}
        onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
      cat << EOF
menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-efi-$(grub_get_device_id "${DEVICE}")' {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"

      cat <<EOF
        chainloader ${EFIPATH}
}
EOF
    ;;
    linux)
      if [ "x$BTRFS" = "xbtrfs" ]; then
         LINUXPROBED="`linux-boot-prober btrfs ${BTRFSuuid} ${BTRFSsubvol}  2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      else
         LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      fi
      prepare_boot_cache=
      boot_device_id=
      is_top_level=true
      title_correction_code=
      OS="${LONGNAME}"

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

        if [ -z "${LLABEL}" ] ; then
          LLABEL="${LONGNAME}"
        fi

        if [ "${LROOT}" != "${LBOOT}" ]; then
          LKERNEL="${LKERNEL#/boot}"
          LINITRD="${LINITRD#/boot}"
        fi

        onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
        recovery_params="$(echo "${LPARAMS}" | grep single)" || true
        counter=1
        while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do
            counter=$((counter+1));
        done
        if [ -z "$boot_device_id" ]; then
            boot_device_id="$(grub_get_device_id "${DEVICE}")"
        fi
        used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'"

        if [ -z "${prepare_boot_cache}" ]; then
          prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)"
        fi

        if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
            cat << EOF
menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' {
EOF
            save_default_entry | grub_add_tab
            printf '%s\n' "${prepare_boot_cache}"
            cat <<  EOF
        linux ${LKERNEL} ${LPARAMS}
EOF
            if [ -n "${LINITRD}" ] ; then
          cat << EOF
        initrd ${LINITRD}
EOF
            fi
        cat << EOF
}
EOF
            echo "submenu '$(gettext_printf "Advanced options for %s" "${OS} $onstr" | grub_quote)' \$menuentry_id_option 'osprober-gnulinux-advanced-$boot_device_id' {"
            is_top_level=false
        fi
        title="${LLABEL} $onstr"
        cat << EOF
        menuentry '$(echo "$title" | grub_quote)' --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-$LKERNEL-${recovery_params}-$boot_device_id' {
EOF
        save_default_entry | sed -e "s/^/$grub_tab$grub_tab/"
        printf '%s\n' "${prepare_boot_cache}" | grub_add_tab
        cat <<  EOF
                linux ${LKERNEL} ${LPARAMS}
EOF
        if [ -n "${LINITRD}" ] ; then
            cat << EOF
                initrd ${LINITRD}
EOF
        fi
        cat << EOF
        }
EOF
        if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
            replacement_title="$(echo "Advanced options for ${OS} $onstr" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
            quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
            title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
            grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
        fi
      done
      if [ x"$is_top_level" != xtrue ]; then
          echo '}'
      fi
      echo "$title_correction_code"
    ;;
    macosx)
      if [ "${UUID}" ]; then
        OSXUUID="${UUID}"
        osx_entry xnu_kernel 32
        osx_entry xnu_kernel64 64
      fi
    ;;
    hurd)
      onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
      cat << EOF
menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class hurd --class gnu --class os \$menuentry_id_option 'osprober-gnuhurd-/boot/gnumach.gz-false-$(grub_get_device_id "${DEVICE}")' {
EOF
      save_default_entry | grub_add_tab
      prepare_grub_to_access_device ${DEVICE} | grub_add_tab
      grub_device="`${grub_probe} --device ${DEVICE} --target=drive`"
      mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`"
      grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`"
      case "${grub_fs}" in
        *fs)    hurd_fs="${grub_fs}" ;;
        *)      hurd_fs="${grub_fs}fs" ;;
      esac
      cat << EOF
        multiboot /boot/gnumach.gz root=device:${mach_device}
        module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\
                        --multiboot-command-line='\${kernel-command-line}' \\
                        --host-priv-port='\${host-port}' \\
                        --device-master-port='\${device-port}' \\
                        --exec-server-task='\${exec-task}' -T typed '\${root}' \\
                        '\$(task-create)' '\$(task-resume)'
        module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'
}
EOF
    ;;
    minix)
          cat << EOF
menuentry "${LONGNAME} (on ${DEVICE}, Multiboot)" {
EOF
         save_default_entry | sed -e "s/^/\t/"
         prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
         cat << EOF
        multiboot /boot/image_latest
}
EOF
    ;;
    *)
      # TRANSLATORS: %s is replaced by OS name.
      gettext_printf "%s is not yet supported by grub-mkconfig.\n" "  ${LONGNAME}" >&2
    ;;
  esac
done
I permessi di esecuzione ci sono...ho anche provato a rimuovere e rimettere os-prober... ma niente... provo a creare il file custom...

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

Non riesco a capire cosa sia :

Codice: Seleziona tutto

 grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi
&

Codice: Seleziona tutto

grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi
Dice:
These two commands assume the ESP Windows uses is mounted at $esp. There might be case differences in the path to Windows's EFI file, what with being Windows, and all.
Ho provato a montare la partizione di windows e settare la variabile $esp nel punto di mount, ma non funziona

Stavo leggendo questo:
https://wiki.archlinux.org/index.php/Du ... imitations

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

darkstaring ha scritto:Ho provato a montare la partizione di windows e settare la variabile $esp nel punto di mount, ma non funziona
Spetta, devi montare la partizione EFI, non quella di Windows. Esempio:

Codice: Seleziona tutto

mount /dev/sda1 /boot/efi
Ora guarda dentro /boot/efi/EFI e individua dove sta il file indicato guida.

Dovrebbe essere:

Codice: Seleziona tutto

grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Prova a dare uno sguardo.

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

Codice: Seleziona tutto

mount | grep sda1
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
[francesco@Arch grub.d]$ sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
grub-probe: errore: recupero del percorso canonico di "/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi" non riuscito.


Sembra non funzioni

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

Uhm... allora qualcosa non va nel modo canonico. Che sia un'installazione di Win particolare?

Incolla se puoi il tree dell'intera partizione EFI (/boot/efi, in base allo chema che stiamo seguendo).

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 657
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: Ripristinare GRUB

Messaggio da darkstaring »

/boot/efi/
└── EFI
├── arch
│   └── grubx64.efi
└── boot
└── grubx64.efi

Credo di aver sovrascitto la vecchia partizione di efi... l'installazione e' una windows 10 pro di fabbrica

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: Ripristinare GRUB

Messaggio da rik70 »

darkstaring ha scritto:/boot/efi/
└── EFI
├── arch
│   └── grubx64.efi
└── boot
└── grubx64.efi

Credo di aver sovrascitto la vecchia partizione di efi... l'installazione e' una windows 10 pro di fabbrica
Eh sì, manca tutta la parte relativa al loader di Windows :o

Il che spiega perché os-prober non trova nulla.

Hai un backup?

Rispondi