Journal Grub : Comment booter sur un dossier ?

Posté par  .
Étiquettes : aucune
0
15
mai
2004
Bonjour journal,

J'ai décidé de faire une lfs aujourd'hui.
Au début de la doc, ils disent que l'on peut mettre sa LFS dans un dossier si on ne veut pas mettre de partition, ce que j'ai fait.
J'ai bien suivi toutes les instructions, et ça marche très bien quand je chroote dedans.
J'ai compilé un kernel spécialement pour elle, mais je veux tester s'il marche bien.
Dans grub, j'ai tenté de mettre "root=/dev/hda3/lfs" mais ça ne marche pas : il me fait une erreur du genre Cannot mount "hda3/lfs"

Ma question est : est ce possible de faire croire à grub que ma "/" se trouve dans "/dev/hda3/lfs" ?

Merci pour les tuyaux :p
  • # linux, pas grub

    Posté par  (site web personnel) . Évalué à 7.

    Ce n'est pas à Grub qu'il faut faire croire ça mais au noyau linux. Grub se contente de passer la chaine de caractère "root=/dev/hda3/lfs" au noyau. C'est à linux d'interpréter ta chaine pour comprendre qu'il faut qu'il chrooter init dans /lfs (c'est bien ça que tu veux?).

    Tu peux toujours essayer d'ajouter comme option "init=/lfs/chrootinit" en plus de l'option "root=/dev/hda3", où chrootinit est un programme qui fait "chroot /lfs /sbin/init" compilé statiquement.

    Je ne sais pas du tout si ça va marcher ;)

    Tiens nous au courant!
    • [^] # Re: linux, pas grub

      Posté par  (site web personnel) . Évalué à 6.

      J'ai fait quelques tests et ça a l'air de marcher :)
      J'écris ce message depuis un /sbin/init chrooté ;)

      En gros, ce que j'ai fait:
      1/- J'ai créé un environnement pour le chroot dans /chroot
      2/- J'ai créé le fichier /chroot/chrootinit avec le contenu suivant:

      #!/bin/bash
      mount -t proc /proc /proc
      mount -o bind /proc /chroot/proc
      mount -o bind /dev /chroot/dev
      exec /usr/sbin/chroot /chroot /bin/bash

      Apparamment, le fichier chrootinit n'a pas besoin d'être compilé statiquement comme je l'ai dit par erreur... un script ça marche très bien!

      3/- J'ai ajouté une entrée dans grub/lilo en mettant l'option init=/chroot/chrootinit. Pendant que j'écris ce message, j'ai ceci:

      $ cat /proc/cmdline
      root=/dev/hdb1 devfs=mount hdd=ide-scsi acpi=ht splash=silent vga=788 init=/chroot/initchroot

      4/- J'ai redémarré et j'ai choisi le chroot dans grub.

      Maintenant j'ai un shell dans l'environnement chrooté. Mon shell a le PID 1.

      5/- J'ai remonté hdb1 dans un sous-répertoire (/chroot/hdb1)
      6/- Je me suis rechrooté dans mon vrai système avec "chroot hdb1 /sbin/init"

      Et ça démarre bien ;)

      Ce n'est pas exactement le même contexte que le tien mais à mon avis ça veut dire que c'est possible de booter sur un répertoire comme tu le demandes.
      • [^] # Re: linux, pas grub

        Posté par  . Évalué à 0.

        Hum ... merci beaucoup pour tes super explications bien détaillées. Mais ca marche pas :/ Je boote toujours sur mon système de base.

        J'ai pas noté les erreurs, je te tiens au courant. Merci encore :p

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.