#1 Le 06/06/2005, à 19:24
- cep
Modifier sa distribution en chroot depuis un live cd ou autre distrib
Man chroot nous dit :
« chroot remplace le répertoire racine du processus en cours par celui spécifié par le chemin path. Ce répertoire sera utilisé comme origine des chemins commençant par /. Le répertoire racine est hérité par tous les enfants du processus ayant fait le changement.
Seul le Super-User peut effectuer un changement de répertoire racine. Notez que cet appel système ne modifie pas le répertoire de travail, aussi `.' peut se retrouver en-dehors de l'arbre dont la racine est `/'.
chroot renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.»
Ainsi, grâce à chroot, un répertoire d’une distribution installée sur un disque dur deviendra dans une console la racine virtuelle du système /, et on pourra exécuter en root des programmes d’un live cd sur cette distribution qui ne peut plus démarrer.
On pourrait ainsi, grace à chroot, déplacer le /home, changer le password de root, et bien d’autres choses.
Pour illustrer cette commande, je vais chrooter ma ubuntu depuis une machine debian. J’aurais bien sûr pu le faire depuis un live cd kaella ou knoppix.
En outre, volontairement, j’ai utilisé le chroot pour lancer un fdisk et éditer mon fichier /boot/grub/menu.lst. Le chroot n’était bien entendu pas nécessaire pour faire cela.
cepcasa@cepcasa:~$ su
Password:
cepcasa:/home/cepcasa# mkdir /mnt/chroot
cepcasa:/home/cepcasa# mount /dev/hda5 /mnt/chroot
cepcasa:/home/cepcasa# chroot /mnt/chroot (pour entrer dans l’ environnement chrooté)
Puis on lance par exemple la commande fdisk pour avoir la table des partitions.
root@cepcasa:/ # fdisk -l /dev/hda
Disk /dev/hda: 6448 MB, 6448619520 bytes
255 heads, 63 sectors/track, 784 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 32 257008+ 6 FAT16
/dev/hda2 33 784 6040440 f W95 Ext'd (LBA)
/dev/hda5 33 784 6040408+ 83 Linux
Ensuite on édite le menu.lst avec l’éditeur de texte nano :
root@cepcasa:/ # nano /boot/grub/menu.lst
Ce qui donne :
Lorsqu’on a terminé les modifications, on peut umounter :
root@cepcasa:/ # umount /mnt/chroot
umount: /mnt/chroot: not mounted
Ctrl + D pour quitter chroot
cepcasa:/home/cepcasa# exit
Et on se retrouve dans son environnement classique.
cepcasa@cepcasa:~$
Voilà, c’est tout. Et, comme dit plus haut, on peut faire bien plus avec chroot
A toutes fins utiles, je joins une aide très abrégée de l’éditeur de textes nano :
^G (F1) Appeler le menu d'aide
^X (F2) Fermer et, le cas échéant, quitter nano
^O (F3) écrire le fichier en cours sur le disque
^J (F4) Justifier le paragraphe courant
^Y (F7) Aller à l'écran précédent
^V (F8) Aller à l'écran suivant
^T (F12) Appeler le correcteur orthographique (si dispo.)
^P Aller à la ligne précédente
^N Aller à la ligne suivante
^G veut dire CTRL + G
Hors ligne
#2 Le 10/06/2005, à 21:57
- Ephack
Re : Modifier sa distribution en chroot depuis un live cd ou autre distrib
Des infos pratiques complémentaires ici :
http://forum.ubuntu-fr.org/viewtopic.php?id=3693
Hors ligne