Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Noyau] Mélange des disques au démarrage (résolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Thu Mar 07, 2013 8:43 pm    Post subject: [Noyau] Mélange des disques au démarrage (résolu) Reply with quote

Bonjour à tous.

Je me permets de solliciter votre aide car là, je sèche vraiment :

Sur une machine (amd64), le noyau 3.5.7 fonctionne parfaitement. Par contre, depuis la version 3.6.11 (et ensuite 3.7.9 puis 3.7.10), impossible de booter la machine :

Code:
VFS: cannot open root device "sda3" or unknown-block(0,3): error -123

puis plus loin l'inévitable :
Code:
kernel panic - not syncing: VFS: unable to mount root fs on unknown block(0,3)


Le problème vient donc du fait que le noyau ne trouve pas ma partition /dev/sda3 ; et là je remarque qu'il me trouve mon disque sous le nom /dev/sde !
En effet je possède 4 slots (lecteurs de carte SD), qui, à mon avis, portent maintenant les noms /dev/sda à /dev/sdd. De plus, si un disque USB est branché, il nomme mon disque /dev/sdf !

J'avoue ne pas comprendre pourquoi mon disque dur n'est plus le premier détecté, ou simplement le premier nommé.

Comme info, je tiens à dire que le noyau est compilé à la main, sans initrd ni genkernel. Les noyaux incriminés par ce comportement ont été configurés, comme tous les autres avant eux, avec make oldconfig.

Je n'ai pas envie de mettre dans ce post le .config du noyau (qui est long, même sans les commentaires) car je ne sais pas vraiment quelle partie est la plus à même d'être intéressante pour mon problème. Mais si vous en avez besoin, je peux fournir tout ou partie de la config.

Merci d'avance pour toute idée,
Fab.


Last edited by DidgeriDude on Tue Mar 26, 2013 6:18 pm; edited 1 time in total
Back to top
View user's profile Send private message
mysix
Apprentice
Apprentice


Joined: 26 Mar 2010
Posts: 183

PostPosted: Fri Mar 08, 2013 7:07 am    Post subject: Reply with quote

Salut,

Cela peut arriver lorsqu'il y a un changement au niveau du bios.
Mais ce que tu peux faire, c'est de démarrer sur un livecd tel que sysrescuecd
et dans ton fichier grub.conf dans la partition boot, tu mets les références UUID de tes disques
à la place des noms logiques /dev/sdx.

Regardes ici: http://www.gentoo-wiki.info/Gentoo:/dev/disk/by-uuid

Ainsi, le nom des disques peuvent autant de fois changer sans pour autant te bloquer au démarrage ;)
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Fri Mar 08, 2013 10:47 am    Post subject: Reply with quote

Merci de ta réponse.
J'avais déjà regardé cette histoire d'UUID directement dans grub. Par contre, dans mes souvenirs, ce n'était pas directement géré par grub, mais grâce à l'initrd qui l'accompagnait, du moins jusqu'à une certaine version de grub (<2 ?).

De plus, ce n'est pas grub, mais grub-static qui est installé sur cette machine en amd64 no-multilib, et je ne suis pas sûr que la version gère les UUID.

Mais autant je peux comprendre que c'est le BIOS qui fait des siennes, autant je ne pige pas pourquoi il n'y a aucun problème avec le noyau 3.5.7 (le BIOS n'est-il pas reconnu de la même manière d'une version du noyau à une autre ? Si c'est le cas, pourquoi rien ne m'est apparu dans mon make oldconfig ?...)

Bref, un truc m'échappe...

PS : Peut-être qu'un flash de BIOS...
Back to top
View user's profile Send private message
StinGer_Uesugi
Tux's lil' helper
Tux's lil' helper


Joined: 12 Nov 2010
Posts: 125
Location: Milky Way > Solar System > Earth > France > Paris > Home

PostPosted: Fri Mar 08, 2013 12:28 pm    Post subject: Reply with quote

Je confirme que tu as besoin d'un ititramdisk pour pouvoir passer une ligne root=UUID= au kernel. L'initramdisk fait ensuite un findfs pour chercher le disque correspondant à l'UUID spécifié.
J'ai fait un initrd il y a peu, ce n'est pas très compliqué. Si tu veux partir sur cette option, fais signe ! ;)
_________________
Why drink and drive when you can smoke and fly ?
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 819

PostPosted: Fri Mar 08, 2013 9:31 pm    Post subject: Reply with quote

Grub2 est largement scriptable, j'imagine qu'il est possible de lui faire faire une recherche de fs pour passer la bonne ligne root=/dev/sdX au noyau.

Sinon compiler l'USB en module, comme ça il n’interférera plus avec le early boot.

L'ordre de détection du matériel peut changer d'un noyau à l'autre et d'après ce que j'ai lu à l'époque il n'y as pas de moyen de modifier la priorité d'un module compilé en dur dans le noyau.


EDIT: Y'a peut-être un autre moyen d'utiliser les UUID, sans initramfs, lu dans /usr/src/linux/init/do_mounts.c :

Quote:
/*
* Convert a name into device number. We accept the following variants:
*
* 1) device number in hexadecimal represents itself
* 2) /dev/nfs represents Root_NFS (0xff)
* 3) /dev/<disk_name> represents the device number of disk
* 4) /dev/<disk_name><decimal> represents the device number
* of partition - device number of disk plus the partition number
* 5) /dev/<disk_name>p<decimal> - same as the above, that form is
* used when disk name of partitioned disk ends on a digit.
* 6) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
* unique id of a partition if the partition table provides it.
* The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
* partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
* filled hex representation of the 32-bit "NT disk signature", and PP
* is a zero-filled hex representation of the 1-based partition number.
* 7) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation to
* a partition with a known unique id.
*
* If name doesn't have fall into the categories above, we return (0,0).
* block_class is used to check if something is a disk name. If the disk
* name contains slashes, the device name has them replaced with
* bangs.
*/


Donc un root=PARTUUID=SSSSSSSS-PP devrait marcher, mais attention c'est l'uuid de la partition pas celui du système de fichiers qu'on utilise plus classiquement avec l'initramfs, et j'ai pas trouvé comment on récupère ce "NT disk signature"

Et apparemment c'est un ajout est assez récent, donc lire dans le fichier /usr/src/linux/init/do_mounts.c si c'est déjà disponible pour le noyau que vous utilisez.

EDIT2: comme nt disk signature essai
Code:
 od --address-radix=none --skip-bytes 440 --read-bytes=4 --format=x1 /dev/sdX


Last edited by GentooUser@Clubic on Sat Mar 09, 2013 8:57 pm; edited 1 time in total
Back to top
View user's profile Send private message
bivittatus
l33t
l33t


Joined: 31 Jan 2006
Posts: 687
Location: Roissy-en-Brie (France)

PostPosted: Sat Mar 09, 2013 8:45 am    Post subject: Reply with quote

Salut!

J'ai eu le même problème il y a quelques temps, mais je ne sais plus avec quel kernel.

Par contre, le fait de passer en AHCI au niveau du bios et de ne plus y déclarer mes disques a solutionné le problème (à chaque boot, il y a une recherche de disques avant le lancement de grub).


Je n'ai pas assez de connaissances pour expliquer pourquoi ça a solutionné le problème, mais en tout cas, depuis, plus de soucis!

Si ça peut aider...;)
_________________
Linus TORVALDS: "Je ne suis pas là pour détruire Microsoft. Ce sera juste un effet secondaire tout à fait involontaire."
Back to top
View user's profile Send private message
guilc
Moderator
Moderator


Joined: 15 Nov 2003
Posts: 3322
Location: Paris - France

PostPosted: Sat Mar 09, 2013 11:17 am    Post subject: Reply with quote

bivittatus wrote:
le fait de passer en AHCI au niveau du bios

Si ce n'est pas déjà fait (et qu'il n'y a pas de windows déjà installé en dual boot), c'est effectivement à faire de toute urgence.
Le support SATA AHCI est très supérieur à tout le reste (branchement des disques sata à chaud, NCQ, meilleures perfs, etc...)

Attention, s'il y a déja un windows d'installé en parallèle, ça va le faire partir en écran bleu au boot (il faudra lui faire une "réparation du systeme")
_________________
Merci de respecter les règles du forum.

Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Sat Mar 09, 2013 10:59 pm    Post subject: Reply with quote

Tout d'abord, merci à tous pour vos idées.

@StinGer_Uesugi : J'avoue ne pas être trop chaud pour créer un initrd. Ça fonctionnait bien sans, je pense donc que ça doit continuer sans. Par contre j'ai bien suivi ton post sur l'initrd, et j'ai grandement apprécié les infos y figurant, surtout un lien menant vers une démarche pas à pas pour en un créer un de toutes pièces...

@GentooUser@Clubic : J'ai trouvé l'idée séduisante d'utiliser le PARTUUID mais à part un vieux soft de Win NT (FTEdit.exe) pour modifier le NT Disk Signature, je n'ai pas trouvé grand chose pour ne serait-ce qu'obtenir cette valeur. Mais je garde ça sous le coude...

@bivittatus et @guilc : Là j'aime bien. J'avais trouvé des histoires à propos de l'AHCI mais la machine qui pose problème est celle d'un collègue et dont je ne m'occupe que de la maintenance lorqu'il est dépassé. Et donc, n'ayant pas accès à son BIOS, je n'avais pas creusé cette piste. Je vais voir et je vous tiens au courant. (Par contre, aucun Windows donc pas de souci en vue de ce côté-là !)

Merci encore à tous.
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 819

PostPosted: Sun Mar 10, 2013 3:20 am    Post subject: Reply with quote

D'après ce que j'ai cru lire la "NT Disk Signature" n'est autre que la Signature facultative dont parle l'article de wikipedia, selon ces deux sites ils ont la même adresse (01B8) : http://fr.wikipedia.org/wiki/Master_boot_record http://thestarman.narod.ru/asm/mbr/GPT.htm

J'ai déjà donné une commande pour la récupérer dans mon post précédent :
Code:
od --address-radix=none --skip-bytes 440 --read-bytes=4 --format=x4 /dev/sdX


Par contre j'ai aussi remarqué que tous les éditeurs de partitions n'écrivent pas cette signature (parted le fait, pas cfdisk), si elle n’est pas présente, il dois être safe de l'écrire soit-même, par contre faut pas se rater et bien sauvegarder son MBR avant.


Last edited by GentooUser@Clubic on Sun Mar 10, 2013 3:35 pm; edited 1 time in total
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Sun Mar 10, 2013 8:17 am    Post subject: Reply with quote

Oups désolé, je n'avais pas vu la fin du message comme étant une commande pour le lire.
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Tue Mar 26, 2013 6:17 pm    Post subject: Reply with quote

Bonjour à tous.

Désolé du délai de réponse, je n'ai eu accès à la machine que récemment.

Bon alors c'est résolu bien que cela ne me plaise pas : j'ai en effet testé les idfférentes solutions que vous avez proposées mais rien de concluant...

Alors je me suis résolu à compiler l'USB en module...

Autant ça résoud le souci, autant je ne comprends pas la raison de ce problème...

Merci encore à vous tous pour vos propositions et vos idées.

Fab.
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 819

PostPosted: Tue Mar 26, 2013 9:40 pm    Post subject: Reply with quote

Quote:
Autant ça résoud le souci, autant je ne comprends pas la raison de ce problème...


Simple si la couche USB est chargé avant celle du SATA ses périphériques apparaîtrons en premier, une modification des interdépendances entre les différentes parties du noyaux à du provoquer ce changement d'ordre.

Juste pour info c'est quoi qui ne convient pas avec ma solution ? Noyau trop vieux ou le programme de partitionnement n'a pas écrit de signature ?
Back to top
View user's profile Send private message
Biloute
Guru
Guru


Joined: 03 Apr 2008
Posts: 301
Location: LENS

PostPosted: Thu Mar 28, 2013 9:59 pm    Post subject: Reply with quote

Pour obtenir l'UUID de mes partitions j'utilisait gdisk avec sysrescuecd.
_________________
Gentoo rocks
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 819

PostPosted: Thu Mar 28, 2013 11:24 pm    Post subject: Reply with quote

gdisk c’est pour le GPT (ce qui simplifierait tout) mais anéfé fdisk, lui, fournit cette information.
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Sun Apr 07, 2013 2:42 pm    Post subject: Reply with quote

Désolé pour le temps de réponse...

GentooUser@Clubic wrote:
Simple si la couche USB est chargé avant celle du SATA ses périphériques apparaîtrons en premier, une modification des interdépendances entre les différentes parties du noyaux à du provoquer ce changement d'ordre.

Oui, je comprends le principe. Ce qui m'embête en fait, c'est que je suis dans l'impossibilité de faire en sorte que le noyau garde l'ordre de chargement qu'il avait avant, et qui me convenait parfaitement.
Mais bon, mon souci vient peut-être aussi du fait qu'inconsciemment, je pense qu'il est naturel de charger le support des disques durs avant celui de l'USB, alors que ce n'est qu'arbitraire...

GentooUser@Clubic wrote:
Juste pour info c'est quoi qui ne convient pas avec ma solution ? Noyau trop vieux ou le programme de partitionnement n'a pas écrit de signature ?

J'ai bien récupéré la signature via ta commande mais la modification du grub.conf avec PARTUUID m'a donné le même message d'erreur. Peut-être que cela aurait fonctionnné avec grub2... Ne possédant pas la machine, j'ai tenté une autre approche...

Merci en tout cas pour ton aide.


Last edited by DidgeriDude on Tue Apr 16, 2013 8:11 pm; edited 1 time in total
Back to top
View user's profile Send private message
GentooUser@Clubic
l33t
l33t


Joined: 01 Nov 2004
Posts: 819

PostPosted: Mon Apr 08, 2013 7:31 pm    Post subject: Reply with quote

DidgeriDude wrote:

J'ai bien récupéré la signature via ta commande mais la modification du grub.conf avec PARTUUID m'a donné le même message d'erreur. Peut-être que cela aurait fonctionnné avec grub2... Ne possédant pas la machine, j'ai tenté une autre approche...
Grub n'a rien à voir là dedans, donc soit ton noyau est trop vieux pour cette fonctionnalité soit tu a oublié de donner l'index de la partition en plus de l'uuid.
Back to top
View user's profile Send private message
DidgeriDude
Guru
Guru


Joined: 30 Jan 2005
Posts: 347
Location: Laon (France)

PostPosted: Tue Apr 16, 2013 8:14 pm    Post subject: Reply with quote

GentooUser@Clubic wrote:
Grub n'a rien à voir là dedans, donc soit ton noyau est trop vieux pour cette fonctionnalité soit tu a oublié de donner l'index de la partition en plus de l'uuid.

OK pour Grub ! Par contre, oui je suis un boulet : j'avais oublié l'index... Pas grave, je testerais ça sur une de mes machines à l'occasion.

Merci encore.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum