|
|
|
|
||||||
| fr.comp.os.linux.config Prise en main d'un système Linux. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
J'aimerais tester la nouvelle version de gentoo linux sans abîmer mon système. Pour cela, j'aimerai installer cette distribution dans un répertoire et pouvoir démarrer le noyau en lui disant de considérer que le répertoire racine est ce répertoire, un peu comme un chroot. Existe-t-il une option de boot qui permet cela? Ou alors, un patch xxx a appliquer pour l'activer? Sinon, existe t-il d'autres solutions pour faire l'essai, sans trop toucher aux partitions? Merci de vos conseils. -- Theveneau Hadrien |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
UML (User Mode Linux)
|
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Theveneau Hadrien a écrit
> Bonjour, > > J'aimerais tester la nouvelle version de gentoo linux sans abîmer mon > système. > Pour cela, j'aimerai installer cette distribution dans un répertoire > et pouvoir démarrer le noyau en lui disant de considérer que le > répertoire racine est ce répertoire, un peu comme un chroot. > > Existe-t-il une option de boot qui permet cela? Ou alors, un patch xxx > a appliquer pour l'activer? > Sinon, existe t-il d'autres solutions pour faire l'essai, sans trop > toucher aux partitions? > > Merci de vos conseils. vmware |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On Thu, 28 Dec 2006 19:17:08 +0100, ALain Montfranc <x@x.con>:
>vmware Je peux me tromper, mais il me semble que VMware émule un matériel particulier, pas forcément le même que le matériel "physique". Il ne permet donc pas d'évaluer totalement le comportement qu'aurait telle ou telle distribution sur le PC réel. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Le Thu, 28 Dec 2006 19:17:08 +0100, ALain Montfranc a écrit:
> > vmware vmware sapucépalibr Avec le noyau 2.6.20 et KVM, il n'y aura plusaucune raison de l'utiliser encore. -- Dix grammes d'abstraction valent des tonnes de bricolage. Loi de Booker. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
On Thu, 28 Dec 2006 22:28:21 +0100, Emmanuel Florac
<eflorac@imaginet.fr>: > Avec le noyau 2.6.20 et KVM, il n'y aura plus >aucune raison de l'utiliser encore. Apparemment KVM n'aime que certains processeurs : You will need an x86 machine running a recent Linux kernel on an Intel processor with VT (virtualization technology) extensions, or an AMD processor with SVM extensions (also called AMD-V). De quels types de processeurs s'agit-il exactement ? J'imagine qu'avec mon pov' Sempron 32 bits, ce n'est pas la peine d'y penser ? |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" wrote in message
<1167328325.117238.249470@h40g2000cwb.googlegroups .com>: > J'aimerais tester la nouvelle version de gentoo linux sans abîmer mon > système. > Pour cela, j'aimerai installer cette distribution dans un répertoire > et pouvoir démarrer le noyau en lui disant de considérer que le > répertoire racine est ce répertoire, un peu comme un chroot. > > Existe-t-il une option de boot qui permet cela? init=/bin/sh Tu obtiens un shell, tu n'as plus qu'à y faire: exec chroot /repertoire /sbin/init (ne pas oublier le exec) Si tu fais ça souvent, tu peux le mettre dans un script. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Nicolas George a écrit : > init=/bin/sh > > Tu obtiens un shell, tu n'as plus qu'à y faire : > > exec chroot /repertoire /sbin/init > > (ne pas oublier le exec) > > Si tu fais ça souvent, tu peux le mettre dans un script. Merci pour toutes les réponses! J'arriverai sûrement a ce que je veux! Juste une dernière question: a quoi sert le exec? Ce que je voulais faire, c'était tester la gentoo... mais en pouvant ensuite transférer directement les fichiers de l'installation de test vers mon répertoire racine. C'est pourquoi je voulais un truc du style chroot.... Merci encore. -- Theveneau Hadrien |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" wrote in message
<1167399810.682732.201650@i12g2000cwa.googlegroups .com>: > Juste une dernière question: a quoi sert le exec? À ce que l'init lancé dans le chroot ait le PID 1, c'est à dire celui d'init. Sinon, c'est ton /bin/sh qui reste PID 1, et ça peut faire des trucs bizarres. |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Nicolas George a écrit : > À ce que l'init lancé dans le chroot ait le PID 1, c'est à dire celui > d'init. Sinon, c'est ton /bin/sh qui reste PID 1, et ça peut faire des trucs > bizarres. Je vois le truc.... Merci de la réponse! -- Theveneau Hadrien |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Le Thu, 28 Dec 2006 22:53:05 +0100, Fabien LE LEZ a écrit:
> > De quels types de processeurs s'agit-il exactement ? J'imagine qu'avec mon > pov' Sempron 32 bits, ce n'est pas la peine d'y penser ? Pas la peine, en effet... Il faudra un bon x86-64 de dernière génération (mais tous les processeurs actuellement en magasin doivent l'être). -- A thing of beauty is a joy forever. J. Keats. Ah! Singe débotté, hisse un jouet fort et vert! Marcel Bénabou. |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
OoO La nuit ayant déjà recouvert d'encre ce jour du jeudi 28 décembre
2006, vers 23:37, Nicolas George <nicolas$george@salle-s.org> disait: > init=/bin/sh > Tu obtiens un shell, tu n'as plus qu'à y faire: > exec chroot /repertoire /sbin/init Un export TERM=linux auparavant semble régler quelques problèmes qui peuvent survenir par la suite. J'en ignore la raison (je suppose que ce n'est pas le noyau qui doit faire ça d'habitude). -- Don't just echo the code with comments - make every comment count. - The Elements of Programming Style (Kernighan & Plauger) |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Malheureusement, ca ne marche pas chez moi.....
Il faut dire que le système chroote est assez eloigne du systèmee s'hébergeant: noyaux differents, libs differentes, config differentes, etc... Alors, j'ai teste quelque chose vu sur cette page, dans le même ordre d'idées: http://grumbel.blogspot.com/2006/01/...st-single.html Pour résumer, on bricole un programme en C qui remplace /bin/init (option init=...) et qui se charge de faire les chroot nécessaires. Voici le code, que j'ai retouche: // ---- BEGIN ---- // // Petit programme trouve sur la page // http://grumbel.blogspot.com/2006/01/...st-single.html // Par Ingo Runkhe // Modifications par Theveneau Hadrien // A compiler avec gcc -static chrootinit.c -o chrootinit -Wall #include <sys/mount.h> // Fonction mount et ses parametres... #include <unistd.h> // Fonction chroot et chdir #include <stdio.h> // Fonction printf // Valeurs a adapter dans votre cas #define ROOT_DEVICE "/dev/hda3" #define ROOT_FILESYSTEM "reiserfs" #define TARGET "/gentoo" #define INIT "/sbin/init" int main(int argc, char** argv) { // Remontage de la partition racine mount(ROOT_DEVICE, "/", ROOT_FILESYSTEM, MS_REMOUNT, "") ; // Remontage de procfs mount("/proc", "/proc", "proc", MS_REMOUNT, ""); // Montage mirroir de /proc dans TARGET/proc mount("/proc", TARGET "/proc", "none", MS_BIND, ""); // Montage mirroir de /dev dans TARGET/dev mount("/dev", TARGET "/dev", "none", MS_BIND, ""); // Chdir et chroot dans le bon dossier chdir(TARGET); chroot("."); // Remontage de la partition racine mount(ROOT_DEVICE, "/", ROOT_FILESYSTEM, MS_REMOUNT | MS_RDONLY, ""); // Debug information... printf("Chroot done! Exec standard init..."); // Execution de l'init standard dans le chroot ! execlp(INIT, INIT, NULL); return 0; } // ---- END ---- // Malheureusement, ca ne marche toujours pas. Je vais donc me rebattre sur la solution du repartitionage, a moins qu'il y ait d'autres idées.... En espérant que le code inspirera quelqu'un dans le même problème, voire donnera des idées a d'autres... Merci encore pour les idées. A Bientôt. -- Theveneau Hadrien |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" wrote in message
<1167426953.191215.117060@73g2000cwn.googlegroups. com>: > Il faut dire que le système chroote est assez eloigne du systèmee > s'hébergeant: noyaux differents, libs differentes, config differentes, > etc... Ce n'est pas un problème, tant que le noyau du système chrooté est capable d'exécuter le /bin/sh du système hôte. Tu as dû faire une erreur de manipulation quelque part. |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
Nicolas George a écrit : > Ce n'est pas un problème, tant que le noyau du système chrooté est capable > d'exécuter le /bin/sh du système hôte. Tu as dû faire une erreur de > manipulation quelque part. Oui, mais le /bin/sh a un code compilé pour une version précise du noyau, le /chroot/bin/sh va chercher ses librairies dans / et non dans /chroot, etc...... En fait, je me demande quand les développeurs du noyau vont ajouter une VRAIE option chroot=machinchose.... pour bientôt j'espère: c'est cela qu'il faudrait! Merci des réponses. -- Theveneau Hadrien |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" :
> Oui, mais le /bin/sh a un code compilé pour une version précise du > noyau, Muf? > le /chroot/bin/sh va chercher ses librairies dans / et non dans > /chroot, etc...... Une fois que tu es chrooté, le / que voit le /chroot/bin/sh est le /chroot, pas le /. |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" wrote in message
<1167654494.591652.252500@48g2000cwx.googlegroups. com>: > Oui, mais le /bin/sh a un code compilé pour une version précise du > noyau, Ça ne veut quasiment rien dire. Le seul problème qui pourrait se produire dans la vraie vie, c'est si le système hôte est 64bits, et le noyau que tu veux utiliser pour booter le système est 32bits. Dans tous les autres cas, ça va passer. > le /chroot/bin/sh va chercher ses librairies dans / et non dans > /chroot, etc...... On se fiche du /chroot/bin/sh, il n'y a que deux binaires qui interviennent: /bin/sh et /chroot/sbin/init. Le premier est exécuté directement, et ça ne va pas poser problème. Le second est exécuté par la commande chroot, donc avec la racine déjà changée. Du coup, il se prend pour /sbin/init, et toute la liaison dynamique est faite dans le cadre du système chrooté. > En fait, je me demande quand les développeurs du noyau vont ajouter > une VRAIE option chroot=machinchose.... pour bientôt j'espère: c'est > cela qu'il faudrait! Vraiment, je ne vois pas l'intérêt. |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
Nicolas George a écrit : > Ça ne veut quasiment rien dire. Le seul problème qui pourrait se produire > dans la vraie vie, c'est si le système hôte est 64 bits, et le noyau que tu > veux utiliser pour booter le système est 32 bits. Dans tous les autres cas, > ça va passer. Très bien. Mais, alors, que signifie le message "FATAL: Kernel is too old?" Merci des réponses. -- Theveneau Hadrien |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" :
> Très bien. Mais, alors, que signifie le message "FATAL: Kernel is too > old?" Ça vient peut-être de udev, qui a toujours besoin de la toute dernière version du noyau... J'imagine que tu bootes avec le noyau de ta vieille distrib. Si tu bootes le noyau de la nouvelle à la place, ça devrait marcher. Tu dois avoir un /chroot/boot/vmlinuz-foobar et un /chroot/boot/initrd-foobar pour une bonne valeur de foobar, tu te crées dans le menu de ton bootloader une entrée pour booter ce noyau avec cet initrd et le paramètre init=/bin/sh, et ça devrait marcher. |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
"Theveneau Hadrien" wrote in message
<1167663631.954454.177430@k21g2000cwa.googlegroups .com>: > Très bien. Mais, alors, que signifie le message "FATAL: Kernel is too > old?" Pour préciser la réponse de Luc, tout à fait pertinente, il faudrait que tu précises à quel moment tu vois le message en question. |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
Nicolas George a écrit : > Pour préciser la réponse de Luc, tout à fait pertinente, il faudrait que tu > précises à quel moment tu vois le message en question. Je ne me rappelle plus. Mais, je crois que je vais abandonner cette solution. Merci beaucoup de vos aides! -- Theveneau Hadrien |
|
![]() |
| Outils de la discussion | |
|
|