J'essaie de créer une image Linux avec des packages choisis.
Ce que j'essaie de faire, c'est de concevoir à la main les packages que je vais utiliser sur un ordinateur portable XO, car la compilation de packages prend beaucoup de temps sur le vrai matériel XO. image au XO, je peux gagner du temps et de l’espace.
Lorsque j'ai essayé d'installer certains paquets, la configuration a échoué car les répertoires proc, sys et dev étaient manquants. J'ai donc appris ailleurs que je devais "monter" les répertoires proc, ... de l'hôte dans mon environnement chroot.
J'ai vu deux syntaxes et je ne sais pas lequel utiliser.
Dans la machine hôte:
mount --bind /proc <chroot dir>/proc
et une autre syntaxe (en environnement chroot):
mount -t proc none /proc
Lequel devrais-je utiliser et quelle est la différence?
Pour /proc
et /sys
, je suppose que vous pouvez utiliser l'une ou l'autre méthode. Ce sont tous deux des systèmes de fichiers spéciaux, de sorte qu'ils peuvent être recréés autant de fois que nécessaire (la méthode de montage de liaison utilise exactement le même montage que le système hôte, alors que l'autre méthode utilise un nouveau montage). J'ai toujours vu la monture Bind recommandée dans les guides, je l'utilisais donc. Pour autant que je sache, il n'y a pas de réelle différence importante.
Cependant, /dev
est généralement un montage tmpfs géré par udev. Il doit donc s'agir du même système de fichiers que sur la machine hôte. Cela signifie que vous auriez besoin d'utiliser la méthode bind mount.
Si ce chroot doit être utilisé pendant un certain temps, vous pouvez mettre ces entrées dans /etc/fstab
sur le système hôte pour simplifier les choses.
Le Arch Linux Wiki suggère les commandes suivantes:
cd /mnt/Arch # or where you are preparing the chroot dir
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
Je peux confirmer qu'ils ont travaillé pour moi.
Le Manuel Gentoo appelle spécifiquement ces deux commandes pour remonter/proc et/dev. Je les ai utilisés plusieurs fois.
mount -t proc none /mnt/chroot/proc
mount -o bind /dev /mnt/chroot/dev
Je soupçonne que/sys est juste un dossier normal, vous devriez donc être capable de faire un lien dur.
ln /sys /mnt/chroot/sys
Il est peut-être intéressant de noter dans cette question populaire que Arch Linux a créé un script Arch-chroot ; télécharger Arch-install-scripts-15-1-any.pkg.tar.xz
Ceci qui s’occupe de divers problèmes liés à la fois dans Arch-Linux et Manjaro, où je l’ai aussi utilisé avec succès. Peut-être plus de Arch_dérivés comme Parabole sont tout aussi compatibles.
Bien qu'une simple norme chroot
dans une installation secondaire de Manjaro ne vous permette pas d'exécuter
pacman --sync linux
(la solution miracle après un crash système), en remplaçant la ligne par
Arch-chroot /run/media/*YOURSELF*/manja-disk2
vous permettra de réparer votre installation secondaire d’Arch-dérivate via
pacman --sync linux
comme un charme. Le script bash Arch-chroot
prend soin de /dev /sys /proc
et bien plus encore, qui sont laissés à eux-mêmes par la variable standard chroot
.
voir aussi: Utilisation d'Arch-chroot