« Virt/Chroot » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
Ligne 31 : Ligne 31 :
# On change la racine de / (sur l'environnement d'installation) en <path>/mnt/chroot</path> (sur vos partitions) en utilisant chroot.<syntaxhighlight lang="bash">chroot /mnt/centos-6 /bin/bash</syntaxhighlight>
# On change la racine de / (sur l'environnement d'installation) en <path>/mnt/chroot</path> (sur vos partitions) en utilisant chroot.<syntaxhighlight lang="bash">chroot /mnt/centos-6 /bin/bash</syntaxhighlight>
# On charge en mémoire les variables d'environnement du système chrooté en utilisant source.<pre>source /etc/profile</pre>
# On charge en mémoire les variables d'environnement du système chrooté en utilisant source.<pre>source /etc/profile</pre>
# On ré-install le paquet <package>centos-release</package><syntaxhighlight lang="bash">rpm -i centos-release-6-5.el6.centos.11.1.x86_64.rpm</syntaxhighlight>
{{Admon/tip|Prompt|On peut modifier le prompt afin de spécifier que nous sommes dans un environnement chrooté.<syntaxhighlight lang="bash">export PS1="(chroot) $PS1"</syntaxhighlight>
{{Admon/tip|Prompt|On peut modifier le prompt afin de spécifier que nous sommes dans un environnement chrooté.<syntaxhighlight lang="bash">export PS1="(chroot) $PS1"</syntaxhighlight>
De manière globale, on créer un fichier dans <path>/etc/profile.d/</path>
De manière globale, on créer un fichier dans <path>/etc/profile.d/</path>

Dernière version du 26 septembre 2014 à 09:36

Installation

  • Création du répertoire d'accueil
    mkdir /mnt/centos-6
    
  • On se place à la racine de notre futur environnement chrooté
    cd /mnt/centos-6
    
  • On créer l'arborescence nécessaire aux commandes <app>rpm</app> et <app>yum</app>
    mkdir -p var/lib/rpm
    
  • On initialise les base de données RPM
    rpm --rebuilddb --root=/mnt/centos-6/
    
  • On télécharge le paquet release CentOS
    wget http://mirror.centos.org/centos-6/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm
    
  • On télécharge le paquet release CentOS
    rpm -i --root=/mnt/centos-6/ --nodeps centos-release-6-5.el6.centos.11.1.x86_64.rpm
    
  • On installe <app>yum</app> dans l'environnement chrooté
    yum --installroot=/mnt/centos-6/ install --nogpgcheck -y yum
    

Initialisation

Il reste une dernière chose à faire avant d'entrer dans le nouvel environnement. Il s'agit de copier l'information DNS de <path>/etc/resolv.conf</path>.

Vous devez le faire afin d'assurer le bon fonctionnement du réseau dans le nouvel environnement.

<path>/etc/resolv.conf</path> contient les serveurs de noms pour votre réseau.

Copie du fichier <path>/etc/resolv.conf</path>. L'option -L garantit qu'on ne copie pas un lien symbolique.

# cp -L /etc/resolv.conf /mnt/centos-6/etc/resolv.conf

Montez le système de fichiers /proc dans <path>/mnt/centos-6/proc</path> permet à l'environnement chrooté d'utiliser les informations fournies par le noyau, même lorsqu'on se trouve dans l'environnement chrooté ainsi que <path>/dev</path>.

# mount -t proc none /mnt/centos-6/proc
# mount -o bind /dev /mnt/centos-6/dev
# mount -t sysfs none /mnt/centos-6/sys

Chroot

Maintenant que toutes les partitions sont initialisées et que l'environnement de base est installé, il est temps d'entrer dans notre nouvel environnement. Cela signifie que l'on passe de l'environnement actuel (CD d'installation ou autre environnement) à l'environnement de votre système (soit les partitions initialisées).

L'entrée se fait en deux étapes

  1. On change la racine de / (sur l'environnement d'installation) en <path>/mnt/chroot</path> (sur vos partitions) en utilisant chroot.
    chroot /mnt/centos-6 /bin/bash
    
  2. On charge en mémoire les variables d'environnement du système chrooté en utilisant source.
    source /etc/profile
  3. On ré-install le paquet <package>centos-release</package>
    rpm -i centos-release-6-5.el6.centos.11.1.x86_64.rpm
    
Idea.png
Prompt
On peut modifier le prompt afin de spécifier que nous sommes dans un environnement chrooté.
export PS1="(chroot) $PS1"

De manière globale, on créer un fichier dans <path>/etc/profile.d/</path>

echo 'export PS1="(\033[1;32mcentos-6\033[0m) $PS1"' >> /etc/profile.d/chroot.sh
Bug.png
Incompatibilité dans les versions des base de données RPM
Pour régler l'erreur suivante
rpmdb: /var/lib/rpm/Name: unexpected file type or format
erreur: ne peut ouvrir l'index Name en utilisant db3 - Argument invalide (22)
attention: centos-release-6-5.el6.centos.11.1.x86_64.rpm: Entête V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
rpmdb: /var/lib/rpm/Conflictname: unexpected file type or format
erreur: ne peut ouvrir l'index Conflictname en utilisant db3 - Argument invalide (22)
rpmdb: /var/lib/rpm/Conflictname: unexpected file type or format
rpmdb: /var/lib/rpm/Conflictname: unexpected file type or format
rpmdb: /var/lib/rpm/Conflictname: unexpected file type or format
rpmdb: /var/lib/rpm/Conflictname: unexpected file type or format
rpmdb: /var/lib/rpm/Name: unexpected file type or format
rpmdb: /var/lib/rpm/Name: unexpected file type or format
rpmdb: /var/lib/rpm/Basenames: unexpected file type or format
erreur: ne peut ouvrir l'index Basenames en utilisant db3 - Argument invalide (22)
Erreur de segmentation (core dumped)

Il faut supprimer l'intégralité des répertoires <path>/var/lib/rpm</path> et <path>/var/lib/yum</path>, et recréer les base de données RPM.

rm -rf /var/lib/rpm/?*
rm -rf /var/lib/yum/.??*
rpm --initdb