Windows disparu de grub

Tags: #<Tag:0x00007f63f23ed5e8> #<Tag:0x00007f63f23ed4a8> #<Tag:0x00007f63f23ed3b8>

Bonsoir,
Après avoir réinstaller debian avec gnome cette fois (pour mon désespoir) j’ai donc redémarrer.
Sur le menu grub je ne trouve plus windows il n’y a qu’une option : Debian.
De mémoire j’ai fais l’installation comme toutes les fois précédente :
installation assisté sur un Disque entier (HDD 2To)
windows 10 est sur un SSD 256go
j’ai installé le programme de lancement (grub) sur la partition windows comme indiqué dans l’installateur , la dernière fois tout c’était bien passé.
Quand je vais dans le bios et que je lance mon SSD je retombe sur le grub puis sur debian

Capture d’écran de 2021-07-05 22-45-58

J’ai trouvé d’autres topic sur ce problème mais ils sont tous très vieux et concerne des versions dépassé de ses OS alors dans l’urgence de la situation (j’ai encore du travail non sauvegardé sur mon SSD) je dois en refaire un.
Dans le pire des cas j’aimerai au moins pouvoir récupérer ce qu’il y a sur mon SSD même si je devais faire deuil de windows :frowning:

Que faire ? si je débranche mon disque dur je ne pense pas résoudre le problème, si au contraire je débranchait mon SSD et que j’allais demain a la fnac acheter un câble pour le connecter en USB sur linux est ce que je pourrais récupèrer mes données ??

Merci à vous

« Comme indiqué » ? Ça m’étonnerait que l’installateur suggère une connerie pareille.
Ça m’étonnerait aussi que l’installation de GRUB dans une partition NTFS située sur un autre disque que celui qui contient /boot/grub soit possible.

Tu n’aurais pas plutôt installé GRUB dans le MBR du disque de Windows ?

En effet. GRUB ne marchera pas car il manque /boot/grub qui est sur le disque dur.

Exécute os-prober en root. Windows devrait être détecté. update-grub l’ajoutera au menu de GRUB. Si os-prober ne détecte pas Windows, vérifie la racine de la partition NTFS système de Windows. Elle doit contenir bootmgr et bcd.

J’ai déjà effectué ces commandes mais pour update grub j’obtiens toujours un message d’erreur :

spiritbreaker@bambino:~$ su
Mot de passe : 
root@bambino:/home/spiritbreaker# os-prober
root@bambino:/home/spiritbreaker# update-grub
bash: update-grub : commande introuvable
root@bambino:/home/spiritbreaker#

Je ne l’ai pas préciser mais je suis un grand débutant sur debian.

« Comme indiqué » ? Ça m’étonnerait que l’installateur suggère une connerie pareille.
Ça m’étonnerait aussi que l’installation de GRUB dans une partition NTFS située sur un autre disque que celui qui contient /boot/grub soit possible.

image

voila l’équivalent en anglais de ce que j’ai eu lors de mon installation.
Si j’ai mal fait quelque chose j’aimerai comprendre quoi pour ne pas le refaire étant donné qu’il me semble avoir juste suivi les instructions.

Bonjour Bambino

Visiblement, tu n’a pas eu accès à la commande update-grub
parce que tu n’avais pas utilisé les options de la commande su
qui t’auraient permis cet accès.


Si tu veux obtenir les privilèges du compte root
ET avoir accès aux commandes d’administration depuis ce compte,
il faut utiliser l’option login de la commande su

Voir la page man de la commande su
en lançant la ligne de commande suivante :

man su

L’option login de la commande su
peut être entrée de trois façons différentes
qui auront le même effet :

En utilisant l’option longue :

su --login

ou bien en utilisant
une des deux options courtes suivantes :

su -l

ou :

su -

En utilisant l’option login de la commande su
les variables d’environnement seront initialisées de façon à pouvoir accéder et lancer,
dans de bonnes conditions, les commandes de maintenance du système.

Et donc, la liste des chemins contenus dans la variable PATH
te permettra d’accéder aux commande d’administration,
comme par exemple, la commande update-grub

1 J'aime

Bonjour,

Dans mon exemple sur les 2 première lignes je fais su, puis mot de passe, et sur les autres lignes il est écrit que je suis en root@nomutilisateur.
Que fais je de mal dans cette manipulation ?

Je viens de me rendre compte que mon windows n’est pas supprimé j’ai accès au SSD depuis mon debian avec tout mes fichiers dedans, ce qui est une bonne nouvelle, il ne me reste plus qu’a restaurer le grub mais la commande « update-grub » me renvoi commande introuvable même si je fais un su avant

Est-ce que tu as lu attentivement la réponse de @MicP concernant la différence entre « su » tout seul et « su -l » et pourquoi il ne faut pas utiliser la première forme ?

Quand ce sera compris, passe en root correctement et relance os-prober. Si cela ne détecte toujours pas Windows, installe le paquet boot-info-script, exécute la commande bootinfoscript et poste le rapport ici en lui appliquant le format texte préformaté.

apt-get boot-info-script
bootinfoscript
1 J'aime

oui du coup je viens de voir la différence j’ai donc fais « su - » au lieu de « su »

barra@bambino:~$ su -
Mot de passe : 
root@bambino:~# os-prober
/dev/sda1:Windows 10:Windows:chain
root@bambino:~# update-grub
Création du fichier de configuration GRUB…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Image Linux trouvée : /boot/vmlinuz-4.19.0-17-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.19.0-17-amd64
Image Linux trouvée : /boot/vmlinuz-4.19.0-13-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.19.0-13-amd64
Windows 10 trouvé sur /dev/sda1
fait
root@bambino:~#

Cette fois ci la commande a fonctionner merci à vous tous

J’ai vraiment du mal avec cette façon de faire je pensais quand passant en root j’aurais le droit de faire toutes les commandes, quel est donc l’intérêt de faire un « su » si je ne peux pas accéder à toutes les commandes ?

Salut,

il s’agit de récupérer les variables d’environnement de root, relit bien le message de MicP, donc comme tu as fais finalement su - ou su -l ou su --login.

C’est bien le cas. Mais avoir le droit ne suffit pas : il faut aussi en avoir le moyen. Le moyen, en l’occurrence, c’est le chemin d’accès aux commandes. Il y a deux façons d’exécuter une commande : soit en indiquant son chemin complet, par exemple /usr/sbin/update-grub, soit en utilisant implicitement les chemins définis dans la variable d’environnement $PATH. De nombreuses commandes destinées à root sont dans /sbin et /usr/sbin qui sont inclus dans le $PATH de root mais pas dans le $PATH des utilisateurs normaux. Or su tout seul conserve le $PATH de l’utilisateur courant, alors que su - applique le $PATH de root.

D’autre part, certains commandes appellent elles-même d’autres commandes sans spécifier leur chemin complet et ne fonctionnent donc correctement qu’avec le $PATH de root, les exécuter avec le chemin complet ne suffit pas toujours. Je pense que c’est le cas d’os-proberet update-grub.

Bon, tu as résolu ton problème mais si tu as vraiment installé GRUB dans le MBR du disque de Windows, alors les deux disques sont dépendants l’un de l’autre : GRUB et Debian ne peuvent démarrer qu’avec le disque de Windows et Windows ne peut être lancé que depuis le disque de Debian. A mon avis il serait préférable de réinstaller GRUB dans le MBR du disque de Debian et de réinstaller un programme d’amorçage standard dans le MBR du disque de Windows afin que les deux soient indépendants.

2 J'aime

Merci pour ces explications très claire.
Pour ce qui est de réinstaller grub je vais passer mon tour, à la base j’avais laissé grub sur la partition de debian et je devais donc passé par le bios pour booter sur le disque dur.

J’ai compris que tu m’as dis qu’il était possible d’installer un autre programme pour compenser cela mais je galère déjà tellement à chaque fois que je fais quelque chose que je préfère laisser les choses tel quel tant que ça fonctionne.

J’ai encore de nouveau bug debian à régler je n’ai plus accès à mon compte désormais ^^ alors que tout aller bien …