Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer.
Avez-vous perdu votre courriel d'activation?
09 Septembre 2010, 09:53:28

Connexion avec identifiant, mot de passe et durée de la session
Accueil Aide Recherche Identifiez-vous Enregistrez-vous
forum.mangue.org  |  [TECHNOLOGIES]  |  Matériel, systèmes d'exploitation, et réseaux (Modérateurs: snihf, TiMiD, VERSUS2000)  |  Sujet: [Linux] Spécifier un fstab alternatif au démarrage 0 Membres et 1 Invité sur ce sujet.
Pages: [1] Imprimer
Auteur Sujet: [Linux] Spécifier un fstab alternatif au démarrage  (Lu 698 fois)
VIN100
Jr. Member
**
Sexe: Homme
Messages: 69


Questions? Action!


Voir le profil
[Linux] Spécifier un fstab alternatif au démarrage
« le: 17 Septembre 2005, 21:03:15 »

Bonjour,

J'ai récemment installé linux (Ubuntu Breezy) sur un disque amovible pour un cours au collège.  J'aimerais pouvoir utiliser ce linux à la maison aussi, cependant ça causerait un petit problème dans les système de fichier.   Au collège (là où j'ai effectué l'installation) le disque amovible est le HDA, alors que chez moi je le branche dans le HDD,  donc le /etc/fstab de mon Breezy dit que / est du hda1, /home sur hda2, etc.  alors que pour le faire marcher chez moi il faudrait que / soit hdd1, /home hdd2, etc.

C'est donc pour cela que je me demandais s'il était possible de préciser, dans GRUB, le fichier fstab à utiliser au démarrage?  (par exemple avec un /etc/fstab2)
Je n'ai pas trouvé beaucoup  d'information sur les Options qu'on peut mettre au démarrage du kernel, et rien sur si c'est possible d'avoir 2 fstab...

Savez vous si c'est possible?  Ou bien y a t'il un autre moyen de faire ce que je veux faire?

Merci.
Journalisée

VIN100...:.       « Je suis la vie rêvée du gars dans le coin là-bas qui attend l'autobus »
- Ohdoudou! -
maxime959
Full Member
***
Sexe: Homme
Messages: 143

Je suis un lama!


Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #1 le: 17 Septembre 2005, 21:54:28 »

un truc que je peux te proposer est de faire 2 scripts que tu lances apres ton login qui vont monter les disques selon ou tu es.
Journalisée
VIN100
Jr. Member
**
Sexe: Homme
Messages: 69


Questions? Action!


Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #2 le: 17 Septembre 2005, 22:19:16 »

Je ne comprends pas trop ce que tu veux dire?   Le montage des partitions système (/, swap et /home) se fait lors du démarrage du kernel non?  Donc je ne pense pas arriver à me loguer et exécuter les scripts si linux de démarre pas (kernel panic je crois, mais j'ai pas essayé en fait).

Peut-être qu'un petit shéma pourrait aider :

À l'école :
HDA : disque amovible (boot sur lui, sinon sur le HDC)
. . . . . Contient Grub en MBR et Linux (Breezy) (hda1, hda2, hda3)
HDC : Windows

À la maison :
HDA : mon disque contenant Ubuntu Warty et Grub
HDB : Disque de données
HDC : Disque de données
HDD : disque "amovible", où je brancherais Breezy

le problème étant que je suppose que le kernel de Breezy (sur lequel je veux travailler puisqu'il est plus à jour), en se chargeant, va aller voir sont /etc/fstab, qui lui dit que "/" est sur hda1, "/home" sur hda3 et "swap" sur hda2, ce qui est correct au Cégep, mais pas à la Maison Sad

Bien sûr je pourrais faire simple et reconfigurer mon Ubuntu Warty (celui de la maison) pour le mettre sur le HDD, et brancher mon Breezy sur le HDA, mais ça cause des problèmes de fils dans mon ordi et ça devient compliquer à brancher/débrancher...

Je pourrais aussi me faire un script sur Warty (hdA maison) qui interchangerait 2 fichier fstab sur le hdD (Breezy), un pour le Cégep et l'autre pour la Maison.  Le problème est que ça implique que :  je branche le disque dur, je démarre sur Warty, j'interchange les fichiers, je redémarre sur Breezy, puis lorsque j'ai fini je redémarre sur Warty pour ré-interchanger les fichiers, pour ensuite débrancher le disque et l'ammener à l'école.  C'est un peu chiant.

Alors c'est pour ça que je me demandais si c'était possible de soit spécifier le fstab au kernel à partir de Grub?
(sachant que c'est le Grub de mon Warty qui démarre à la maison et le Grub de mon Breezy qui démarre au Cégep).



Voilà, c'est peut-être un peu plus clair...

maxime959 : j'ai peut-être mal compris ce que tu as voulu dire, peut-être que tu avais la solution?
Journalisée

VIN100...:.       « Je suis la vie rêvée du gars dans le coin là-bas qui attend l'autobus »
- Ohdoudou! -
snihf
Moderator
Sr. Member
*****
Sexe: Homme
Messages: 353


Arpenter les royaumes oubliés...


Voir le profil WWW
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #3 le: 17 Septembre 2005, 23:08:25 »

l'emplacement du / est passé en paramètre au noyau lors du boot je crois, en tout cas c'est le cas avec lilo, par exemple :
Code:
image = /boot/vmlinuz-2.6.13.1-gr
  root = /dev/hda1
  label = Linux-2.6.13.1
  read-only
indique que ton / est sur /dev/hda1.

Donc tu peux déjà régler le pb au moment du boot en mettant deux entrées différentes dans le /etc/lilo.conf. Par contre à ce moment là ta partosh / est montée en read only, et elle est ensuite remontée avec les autres partoshs à partir des informations lues dans le /etc/fstab, donc là tu as un problème.
Je n'ai pas trouvé d'options dans mount permettant de lui faire lire un autre fichier que le /etc/fstab, mais tu peux éventuellement aller hacker tes fichiers de démarrage pour faire changer un lien symbolique selon tes besoins.

Après, il faut que tu trouves un moyen de savoir au boot dans quel cas tu te trouves, je te conseille d'utiliser une variable d'environnement initialisée lors du boot. Exemple une variable LOCATION=chezmoi dans le premier cas LOCATION=ecole dans le second, et tu vérifies ça dans le script pour créer le bon lien symbolique vers ton fstab.

Pour initialiser une variable d'environnement au boot, c'est la même chose que pour passer un paramètre au noyau, tu ajoutes un LOCATION=pouet dans les paramètres du noyau, comme ce n'est pas un paramètre reconnu, c'est automatiquement déclaré comme variable d'environnement.

PS : je viens de voir que tu utilises grub, donc exemple grub :
Code:
title Linux-2.6.13.1-gr
root (hd0,1)
kernel /boot/vmlinuz-2.6.13.1-gr ro root=/dev/hda1

edit : en me relisant je trouve pas ça très clair, donc plus d'infos là : http://www.tldp.org/HOWTO/BootPrompt-HOWTO-2.html#ss2.5
 Grin
« Dernière édition: 17 Septembre 2005, 23:11:13 par snihf » Journalisée

"Two of the most famous products of Berkeley are LSD and Unix. I don't think that this is a coincidence."

http://www.valombre.net/blog/
VERSUS2000
Moderator
Dieu
*****
Sexe: Homme
Messages: 840



Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #4 le: 17 Septembre 2005, 23:21:51 »

Sinon plutot que de passer les partoches /dev/bidule.
Y aurrais pas moyen d'utiliser udev ? Il me semble que udev est capable de reconnaitre un disque meme s'il change d'emplacement sur les napes.
Faudrais creuser ça.
Je crois que timid s'y connais un peu mieux que moi en udev...
Journalisée

Il existe des gens qui sont Hyperactifs. Les fous.
Moi je me contente juste d'être Larveactif ^_^
maxime959
Full Member
***
Sexe: Homme
Messages: 143

Je suis un lama!


Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #5 le: 18 Septembre 2005, 03:07:39 »

VIN100 > oublie j'ai di de la merde Smiley
Journalisée
VIN100
Jr. Member
**
Sexe: Homme
Messages: 69


Questions? Action!


Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #6 le: 18 Septembre 2005, 03:18:46 »

maxime959 : c'est correct, tu m'as fait chercher un peu plus sur le problème Wink


snihf :  Ça serait une idée intéressante oui, mais je viens de lire ça :
Citation
Le noyau du système chargé et décompressé, s'exécute et s'initialise : réservation mémoire, prise en compte de la zone d'échange (swap),  détection du matériel et chargement des pilotes des périphériques, montage du système de fichiers et enfin lance le 1er processus /sbin/init
(à quelque part dans http://www.ac-creteil.fr/reseaux/systemes/linux/demarrage-linux.html)

Donc si le montage du système de fichiers se fait avant même l'exécution d'inittab (ce que j'ai remarqué aussi en regardant les messages au boot de la machine), je ne vois pas trop comment faire un script qui changerait un lien symbolique.  Undecided

Versus :  je vais regarder udev plus en détail, même si juste avec le man j'ai pas trop compris encore ce que ça fait...  Je suis quand même assez débutant en linux hein!


Autre idée non fondée que j'ai eue : peut-être que "/etc/fstab" est précisé à quelque part dans les headers du noyau.  Je pourrais donc modifier les sources et compiler un 2eme "vmlinuz" et spécifier ce kernel dans grub quand je suis chez moi, et booter sur l'ancien quand je suis au collège.
Remarquez que je n'ai jamais compilé linux, que je n'ai aucune idée comment faire et que je sais pas si ce que j'ai dit est possible ou fonctionnel...  Huh
Journalisée

VIN100...:.       « Je suis la vie rêvée du gars dans le coin là-bas qui attend l'autobus »
- Ohdoudou! -
snihf
Moderator
Sr. Member
*****
Sexe: Homme
Messages: 353


Arpenter les royaumes oubliés...


Voir le profil WWW
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #7 le: 18 Septembre 2005, 12:22:58 »

snihf :  Ça serait une idée intéressante oui, mais je viens de lire ça : (à quelque part dans http://www.ac-creteil.fr/reseaux/systemes/linux/demarrage-linux.html)

Donc si le montage du système de fichiers se fait avant même l'exécution d'inittab (ce que j'ai remarqué aussi en regardant les messages au boot de la machine), je ne vois pas trop comment faire un script qui changerait un lien symbolique.  Undecided
non, c'est / qui est monté en read only avant l'exécution d'inittab, et ce à partir des infos données par grub ou lilo, comme je l'ai plus ou moins expliqué plus haut.

Citation
Autre idée non fondée que j'ai eue : peut-être que "/etc/fstab" est précisé à quelque part dans les headers du noyau.  Je pourrais donc modifier les sources et compiler un 2eme "vmlinuz" et spécifier ce kernel dans grub quand je suis chez moi, et booter sur l'ancien quand je suis au collège.
Remarquez que je n'ai jamais compilé linux, que je n'ai aucune idée comment faire et que je sais pas si ce que j'ai dit est possible ou fonctionnel...  Huh
/etc/fstab n'est pas lu par le noyau, mais par mount. Donc si tu dois recompiler quelque chose c'est mount, et tu en reviens au problème de modifier tes fichiers pour utiliser une version différente de mount selon l'endroit où tu te trouves.

Mais de toute façon versus a raison, udev te permet de régler ton problème de façon beaucoup plus propre. Avec udev tu peux assigner un "device" (/dev/hda par exemple) à un périphérique donné à partir de son ProductId. Autrement dit le même disque dur sera toujours considéré comme /dev/hda quelque soit sont emplacement sur les nappes.

Plus d'infos là : http://www.reactivated.net/udevrules.php
Journalisée

"Two of the most famous products of Berkeley are LSD and Unix. I don't think that this is a coincidence."

http://www.valombre.net/blog/
Popiet
Newbie
*
Sexe: Homme
Messages: 40


Mangue.org : mangez-en


Voir le profil WWW
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #8 le: 18 Septembre 2005, 15:44:37 »

je ne sais pas si c'est applicable dans ton cas, mais il me semble qu'on peut dire à grub quel disque doit être quoi. je m'explique : à la maison, j'avais linux sur un disque en master (hda) et win sur le slave (hdb). win refusait de booter dessus. pour le faire marcher, j'ai mis dans grub.conf, au debut de la section correspondant à win :

map (hd0,hd1)
map (hd1,hd0)

ce qui je crois à pour effet de faire croire au systeme que hd1 (slave sur napper ide 0, hda) est en fait hd0 (master sur nappe ide 0, hdb), et vice-versa.
donc peut-être qu'avec des map subtils tu peux t'en sortir.
bon j'espère que j'ai pas dit trop de bêtises, cette manip je l'ai faite il y a assez longtemps quand même, et une seule fois.
Journalisée

Your american beer, guys, it's a bit like makin' love in canoe : it's fucking close to water
VIN100
Jr. Member
**
Sexe: Homme
Messages: 69


Questions? Action!


Voir le profil
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #9 le: 18 Septembre 2005, 20:35:42 »

Merci les gars.

Intéressant ce udev, je crois bien que c'est ce qu'il me faut.  Le problème, c'est que je ne vois pas ce qui caractérise de façon définitive mes disques.

Code:
### Ma partition "/" pour mon Ubuntu Breezy (celui qui doit changer d'endroit)
vin100@ubuntuV:/ $ udevinfo -a -p /sys/block/hdc/hdc1

udevinfo starts with the device the node belongs to and then walks up the
device chain, to print for every device found, all possibly useful attributes
in the udev key format.
Only attributes within one device section may be used together in one rule,
to match the device for which the node will be created.

  looking at class device '/sys/block/hdc/hdc1':
    SYSFS{dev}="22:1"
    SYSFS{size}="7807527"
    SYSFS{start}="63"
    SYSFS{stat}="     268      338        8       64"

###  Et d'autres infos qui ne changent pas vraiment entre les différents disque/partitions (infos des connecteurs ide et pcimachins je crois)

### Directement mon disque avec Breezy

vin100@ubuntuV:/ $ udevinfo -a -p /sys/block/hdc     

#...

  looking at class device '/sys/block/hdc':
    SYSFS{dev}="22:0"
    SYSFS{range}="64"
    SYSFS{removable}="0"
    SYSFS{size}="16514064"
    SYSFS{stat}="      83     2524     3931     1144        6        2       64       13        0     1154     1157"

### Ma partition "/" de Warty

vin100@ubuntuV:/ $ udevinfo -a -p /sys/block/hda/hda1
...
  looking at class device '/sys/block/hda/hda1':
    SYSFS{dev}="3:1"
    SYSFS{size}="8191953"
    SYSFS{start}="63"
    SYSFS{stat}="    5393   196362     5390    43120"

### Mon disque hda (Warty)

vin100@ubuntuV:/ $ udevinfo -a -p /sys/block/hda
...
  looking at class device '/sys/block/hda':
    SYSFS{dev}="3:0"
    SYSFS{range}="64"
    SYSFS{removable}="0"
    SYSFS{size}="40021632"
    SYSFS{stat}="    5213     1180   201353    55446     1896     3688    44672    58575        0    46301   114021"


Dommage, il me donne pas de numéro de série ou de model...  Et je n'ai aucune idée si size ou stat change au fil du temps.

Je vais regarder plus en détail l'utilisation de script externe, je devrais pouvoir utiliser l'idée de snihf de mettre une variable d'environnement à partir de Grub, et de l'utiliser dans les règles de udev.  À moins que je puisse faire plus simple directement avec les informations ci-haut.


Et pendant ce temps la mes devoirs avancent pas  Roll Eyes
Journalisée

VIN100...:.       « Je suis la vie rêvée du gars dans le coin là-bas qui attend l'autobus »
- Ohdoudou! -
TiMiD
Moderator
Full Member
*****
Sexe: Homme
Messages: 161



Voir le profil WWW
Re: [Linux] Spécifier un fstab alternatif au démarrage
« Répondre #10 le: 18 Septembre 2005, 22:47:20 »

Dans ton cas tu pourrasi toujours faire matcher udev sur size (tous tes disques ont l'air d'être de taille différente)

dans le cas général, je n'ai pas trouvé comment faire pour obtenir un identificateur unique pour les disques IDE
si tu as du temps, regarde du côté de http://source.mvista.com/sde/, c'est un remplacant de udev qui a l'air de gérer ca, et plein d'autres trucs que udev gère pas ...
Journalisée
Pages: [1] Imprimer 
forum.mangue.org  |  [TECHNOLOGIES]  |  Matériel, systèmes d'exploitation, et réseaux (Modérateurs: snihf, TiMiD, VERSUS2000)  |  Sujet: [Linux] Spécifier un fstab alternatif au démarrage
Aller à:  

forum.mangue.org | Propulsé par SMF 1.0.8.
© 2001-2004, Lewis Media. Tous droits réservés.
Page générée en 0.324 secondes avec 18 requêtes.