
{"id":1,"date":"2015-02-08T07:13:11","date_gmt":"2015-02-08T07:13:11","guid":{"rendered":"http:\/\/127.0.0.1\/?p=1"},"modified":"2022-03-18T19:59:04","modified_gmt":"2022-03-18T19:59:04","slug":"bonjour-tout-le-monde","status":"publish","type":"post","link":"https:\/\/tty.tartux.net\/?p=1","title":{"rendered":"Grub rescue"},"content":{"rendered":"<p>Comme une poule devant un m\u00e9got face \u00e0 cet invite plus qu'\u00e9trange, il m'aura tout de m\u00eame fallu quelques ann\u00e9es pour arriver \u00e0 percer ce profond myst\u00e8re qui se cache derri\u00e8re une install rat\u00e9e ou une installation de grub peu aboutie (la derni\u00e8re en date pour moi, et sur une Debian neuve, qui plus est).<\/p>\n<p>Voil\u00e0 donc enfin l'article qui va vous sauver.<\/p>\n<p>Tout commence par essayer de savoir ce que votre machine pr\u00e9f\u00e9r\u00e9e a en t\u00eate. Pour cela, une seule commande :<\/p>\n<blockquote><p>&gt;set<\/p><\/blockquote>\n<p>Ici, vous devriez avoir l'id\u00e9e du disque sur lequel le boot essaye de se faire ainsi que le r\u00e9pertoire du grub introuvable. Voici le r\u00e9sultat chez moi :<\/p>\n<blockquote><p>cmdpath=(hd0)<br \/>\nprefix=(hd0)\/boot\/grub<br \/>\nroot=(hd0)<\/p><\/blockquote>\n<p>Le hd0 correspond au disque \/dev\/sda renvoy\u00e9 par un fdisk -l. hd1 correspond \u00e0 \/dev\/sdb et ainsi de suite.<\/p>\n<p>De toute \u00e9vidence le boot ne se fait pas ici, il faut donc trouver o\u00f9 il se cache.<\/p>\n<p>Pour visiter vos disques, une seule commande :<\/p>\n<blockquote><p>&gt;ls<\/p><\/blockquote>\n<p>Ici, vous verrez non seulement les disques mais aussi les partitions.<\/p>\n<p>Voici la r\u00e9ponse chez moi :<\/p>\n<blockquote><p>(hd0) \u00a0 (hd0,msdos1) \u00a0 (hd1) \u00a0\u00a0(hd1,msdos1) \u00a0 (hd2) \u00a0\u00a0(hd2,msdos5) \u00a0\u00a0(hd2,msdos6) \u00a0\u00a0(hd2,msdos3) \u00a0\u00a0(hd2,msdos2) \u00a0\u00a0(hd2,msdos1) \u00a0\u00a0(hd3) \u00a0 (hd3,msdos1)<\/p><\/blockquote>\n<p>Je sais que c'est tr\u00e8s parlant pour le novice donc j'explique :<\/p>\n<p>Mes disques hd0, hd1 et hd3 contiennent une seule partition : msdos1, alors que mon disque hd2 contient 5 partitions msdos1,2,3,5 et 6. Pour mon cas il est facile de reconna\u00eetre le disque qui doit booter, c'est le 2. C'est celui que j'avais choisi pour installer mon syst\u00e8me, je l'avais partitionn\u00e9 avant. Etant le seul \u00e0 contenir plusieurs partitions, on le reconnait assez vite. Le probl\u00e8me se complique si on a plusieurs combinaisons avec des disques ayant le m\u00eame nombre de partitions et m\u00eame peut-\u00eatre plusieurs syst\u00e8mes linux. Dans ce cas, une solution s'impose, lancer un Live CD ou USB puis r\u00e9cup\u00e9rer l'ordre de ses disques avec la commande fdisk -l.<\/p>\n<p>Revenons au cas concret que j'expose. Etant conscient de ce que j'ai partitionn\u00e9 (c'est \u00e0 dire, d'abord un swap puis ma partition racine), il est \u00e9vident que ma partition de boot est la seconde du disque 2. Pour v\u00e9rifier, on tape :<\/p>\n<blockquote><p>&gt;ls (hd2,msdos2)\/<\/p><\/blockquote>\n<p>Ah oui, j'oubliais, le clavier est en qwerty. \u00c7a fait bizarre hein ! Alors rien que pour vous :<\/p>\n<ul>\n<li>shift + 9 -&gt; (<\/li>\n<li>shift + 0 -&gt; )<\/li>\n<li>, -&gt; m<\/li>\n<li>; -&gt; ,<\/li>\n<\/ul>\n<p>Quand on sait \u00e7a, c'est d\u00e9j\u00e0 plus rapide.<\/p>\n<p>Par contre, pour faire le \/, j'ai branch\u00e9 un clavier avec pav\u00e9 num\u00e9rique.<\/p>\n<p>Voici la r\u00e9ponse du prompt :<\/p>\n<blockquote><p>home\/ \u00a0usr\/ \u00a0media\/ \u00a0opt\/ \u00a0srv\/ \u00a0bin\/ \u00a0lib\/ \u00a0vmliuz \u00a0boot\/ \u00a0mnt\/ \u00a0proc\/ \u00a0sys\/ \u00a0dev\/ \u00a0var\/ \u00a0run\/ \u00a0etc\/ \u00a0tmp\/ \u00a0initrd.img<\/p><\/blockquote>\n<p>Le r\u00e9pertoire boot est bien l\u00e0, c'est la bonne nouvelle.<\/p>\n<p>Petite parenth\u00e8se, lorsque je tape help, je devrais avoir la liste des commande. Pour une raison que je ne connais pas, voici ce que j'ai :<\/p>\n<blockquote><p>&gt;help<br \/>\nunknown command 'help'<\/p><\/blockquote>\n<p>Etant donn\u00e9 que je suis sur le bon disque, je passe la commande suivante :<\/p>\n<blockquote><p>&gt;set root=hd2,msdos2<\/p>\n<p>&gt;set prefix=(hd2,msdos2)\/boot\/grub<\/p><\/blockquote>\n<p>Le prompte me rend la main, je continue ma visite de la partition :<\/p>\n<blockquote><p>&gt;ls (hd2,msdos2)\/boot<br \/>\nvmlinuz-3.16.0-4-amd64 \u00a0config-3.16.1-4-amd64 \u00a0grub\/ \u00a0system.map-3.16.0-4-amd64 \u00a0initrd.img-3.16.0-4-amd64<\/p><\/blockquote>\n<p>Le noyau compress\u00e9 (vmlinuz) et le module de boot (initrd) sont bien l\u00e0 et je r\u00e9cup\u00e8re leur nom exact.<\/p>\n<p>Je v\u00e9rifie la pr\u00e9sence de fichiers dans grub :<\/p>\n<blockquote><p>&gt;ls (hd2,msdos2)\/boot\/grub<br \/>\nunicode.pf2 \u00a0i386-pc\/ \u00a0locale\/ \u00a0fonts\/ \u00a0grub.cfg \u00a0grubenv<\/p><\/blockquote>\n<p>On charge le module linux pour pouvoir lire le noyau :<\/p>\n<blockquote><p>&gt;insmod linux<\/p><\/blockquote>\n<p>Si le insmod ne fonctionne pas, il suffit de lire le r\u00e9pertoire i386-pc :<\/p>\n<blockquote><p>&gt;ls (hd2,msdos2)\/boot\/grub\/i386-pc<\/p><\/blockquote>\n<p>Enfin les commandes finales (le sdc2 correspond au dh2,msdos2 comme vu plus haut) :<\/p>\n<blockquote><p>&gt;linux \/boot\/vmlinuz-3.16.0-4-amd64 root=\/dev\/sdc2<br \/>\n&gt;initrd \/boot\/initrd.img-3.16.0-4-amd64<br \/>\n&gt;boot<\/p><\/blockquote>\n<p>Joie.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Comme une poule devant un m\u00e9got face \u00e0 cet invite plus qu'\u00e9trange, il m'aura tout de m\u00eame fallu quelques ann\u00e9es pour arriver \u00e0 percer ce profond myst\u00e8re qui se cache derri\u00e8re une install rat\u00e9e ou une installation de grub peu aboutie (la derni\u00e8re en date pour moi, et sur une Debian neuve, qui plus est). [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[2,3,4],"class_list":["post-1","post","type-post","status-publish","format-standard","hentry","category-install","tag-grub","tag-install","tag-linux"],"_links":{"self":[{"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1"}],"version-history":[{"count":9,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":459,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions\/459"}],"wp:attachment":[{"href":"https:\/\/tty.tartux.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tty.tartux.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}