« Virt/Chroot » : différence entre les versions
(Page créée avec « == Préparation == 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... ») |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
== | == Installation == | ||
* Création du répertoire d'accueil<syntaxhighlight lang="bash">mkdir /mnt/centos-6</syntaxhighlight> | |||
* On se place à la racine de notre futur environnement chrooté<syntaxhighlight lang="bash">cd /mnt/centos-6</syntaxhighlight> | |||
* On créer l'arborescence nécessaire aux commandes <app>rpm</app> et <app>yum</app><syntaxhighlight lang="bash">mkdir -p var/lib/rpm</syntaxhighlight> | |||
* On initialise les base de données RPM<syntaxhighlight lang="bash">rpm --rebuilddb --root=/mnt/centos-6/</syntaxhighlight> | |||
* On télécharge le paquet ''release'' CentOS<syntaxhighlight lang="bash">wget http://mirror.centos.org/centos-6/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm</syntaxhighlight> | |||
* On télécharge le paquet ''release'' CentOS<syntaxhighlight lang="bash">rpm -i --root=/mnt/centos-6/ --nodeps centos-release-6-5.el6.centos.11.1.x86_64.rpm</syntaxhighlight> | |||
* On installe <app>yum</app> dans l'environnement chrooté<syntaxhighlight lang="bash">yum --installroot=/mnt/centos-6/ install --nogpgcheck -y yum</syntaxhighlight> | |||
== 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>. | 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>. | ||
| Ligne 7 : | Ligne 17 : | ||
Copie du fichier <path>/etc/resolv.conf</path>. L'option -L garantit qu'on ne copie pas un lien symbolique. | 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/ | # cp -L /etc/resolv.conf /mnt/centos-6/etc/resolv.conf | ||
Montez le système de fichiers /proc dans <path>/mnt/ | 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/ | # mount -t proc none /mnt/centos-6/proc | ||
# mount -o bind /dev /mnt/ | # mount -o bind /dev /mnt/centos-6/dev | ||
# mount -t sysfs none /mnt/centos-6/sys | |||
== Chroot == | == Chroot == | ||
| Ligne 18 : | Ligne 29 : | ||
L'entrée se fait en deux étapes | L'entrée se fait en deux étapes | ||
# On change la racine de / (sur l'environnement d'installation) en <path>/mnt/chroot</path> (sur vos partitions) en utilisant chroot.< | # 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 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> | ||
{{Admon/tip|Prompt|On peut modifier le prompt afin de spécifier que nous sommes dans un environnement chrooté.< | {{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> | |||
<syntaxhighlight lang="bash">echo 'export PS1="(\033[1;32mcentos-6\033[0m) $PS1"' >> /etc/profile.d/chroot.sh</syntaxhighlight> | |||
}} | |||
{{Admon/bug|Incompatibilité dans les versions des base de données RPM|Pour régler l'erreur suivante<pre> | |||
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)</pre> | |||
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. | |||
<syntaxhighlight lang="bash"> | |||
rm -rf /var/lib/rpm/?* | |||
rm -rf /var/lib/yum/.??* | |||
rpm --initdb | |||
</syntaxhighlight>}} | |||
Version du 25 septembre 2014 à 11:57
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
- 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
- On charge en mémoire les variables d'environnement du système chrooté en utilisant source.
source /etc/profile