Pages : 1
#1 Le 02/07/2024, à 14:46
- FrancisFDZ
[Résolu] chroot et BTRFS
Bonjour
Je souhaiterais accéder à partir de linux mint (sous partition ext4) à un système installé sur partitions BTRFS (1 partition root, 1 partition home)
Je voudrais utiliser le script suivant, qui ne fonctionne pas
mount UUID="6c408f39-2bf4-491b-a71b-242f4517773a" /chroot -t btrfs -o subvol=@
echo "root monté"
mount UUID="284ffc5f-cd25-43cb-b4ac-747547b4ecbf" /chroot/home -t btrfs -o subvol=@home
echo "home monté"
for i in /dev /dev/pts /proc /sys
do mount --bind $i /chroot/$i/ -t btrfs -o subvol=@
echo $i " monté"
done
chroot /chroot /bin/bash
Où est/sont l'/les erreur/erreurs ?
Dernière modification par FrancisFDZ (Le 03/07/2024, à 08:33)
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#2 Le 02/07/2024, à 15:44
- geole
Re : [Résolu] chroot et BTRFS
Bonjour.
Il n'est pas du tout facile de poster aujourd'hui.
Mais tu aurais pu malgré tout donner le retour des commandes.
Au hasard.
Tu ne travailles pas en root.
Le point de montage n'existe pas
Les UUID ne sont pas bons.
Les points de montages dans la boucle ne sont pas exacts ou il en manque.
Le symbole @ est mal placé.
Dans un premier temps, tu devrais faire du ligne à ligne.
Tu peux t'inspirer de ce copier/coller qui provient de la documentation.
sudo -i
mount /dev/sda10 /mnt
mount -t proc /proc /mnt/@/proc
mount -t sysfs /sys /mnt/@/sys
mount --bind /dev /mnt/@/dev
mount --bind /run /mnt/@/run
mount --bind /sys /mnt/@/sys
mount --bind /etc/resolv.conf /mnt/@/etc/resolv.conf
modprobe efivars
chroot /mnt/@
mount -t devpts devpts /dev/pts
df -h && df -i
ping -c4 8.8.8.8 && ping -c4 google.fr
ls -ls /home
Dernière modification par geole (Le 02/07/2024, à 16:11)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#3 Le 02/07/2024, à 17:01
- soshy
Re : [Résolu] chroot et BTRFS
Commence par remplacer
do mount --bind $i /chroot/$i/ -t btrfs -o subvol=@
par
do mount --bind $i /chroot/$i/
Edit: Et probablement aussi
mount UUID="6c408f39-2bf4-491b-a71b-242f4517773a" /chroot -t btrfs -o subvol=@
par
mount -t btrfs -o subvol=@ UUID="6c408f39-2bf4-491b-a71b-242f4517773a" /chroot
et
mount UUID="284ffc5f-cd25-43cb-b4ac-747547b4ecbf" /chroot/home -t btrfs -o subvol=@home
par
mount -t btrfs -o subvol=@home UUID="284ffc5f-cd25-43cb-b4ac-747547b4ecbf" /chroot/home
Dernière modification par soshy (Le 02/07/2024, à 17:11)
Hors ligne
#4 Le 02/07/2024, à 17:37
- FrancisFDZ
Re : [Résolu] chroot et BTRFS
Bonjour.
Il n'est pas du tout facile de poster aujourd'hui.
Mais tu aurais pu malgré tout donner le retour des commandes.
Au hasard.
Tu ne travailles pas en root.
Le point de montage n'existe pas
Les UUID ne sont pas bons.
Les points de montages dans la boucle ne sont pas exacts ou il en manque.
Le symbole @ est mal placé.Dans un premier temps, tu devrais faire du ligne à ligne.
Tu peux t'inspirer de ce copier/coller qui provient de la documentation.sudo -i mount /dev/sda10 /mnt mount -t proc /proc /mnt/@/proc mount -t sysfs /sys /mnt/@/sys mount --bind /dev /mnt/@/dev mount --bind /run /mnt/@/run mount --bind /sys /mnt/@/sys mount --bind /etc/resolv.conf /mnt/@/etc/resolv.conf modprobe efivars chroot /mnt/@ mount -t devpts devpts /dev/pts df -h && df -i ping -c4 8.8.8.8 && ping -c4 google.fr ls -ls /home
Quelques précisions :
- J'ai créé ce script à l'origine pour chrooter sur d'autres OS installés en ext4, il fonctionne sans problème ; j''y ai rajouté des "@" et "-t btrfs" pour ce cas précis.
- Ce script doit bien sur être lancé en passant par sudo.
- j'ai créé spécifiquement un répertoire "/chroot"
- les montages de root et de home fonctionnent
Je suis pratiquement sur que le problème est lié aux "@" et aux "subvol", paticularités de btrfs.
Petit détail : sur mon pc fixe où doit tourner le script, les partitions sont en mode MSDOS et le bios en legacy (pour des raisons historiques, le passage à gpt et UEFI a une allure d'"usine à gaz")
J'ai déjà modifié le script pour pouvoir chrooter à partir de chacun de mes OS sur n'importe lequel des autres, ceux-ci étant alors tous en ext4. Le script que j'ai modifié ne concernait qu'un seul OS et m'a servi de test avant de l'étendre à l'ensemble de mes OS installés;
Vu les problèmes de connexion dont nous venons d'être victimes, je préfère attendre demain pour tester les conseils que j'ai reçus.
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#5 Le 02/07/2024, à 18:17
- geole
Re : [Résolu] chroot et BTRFS
Dans la boucle, tu devrais ajouter le /run
et faire
do mount --bind $i /chroot/@$i
et faire seulement
chroot /chroot
Dernière modification par geole (Le 02/07/2024, à 18:32)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#6 Le 03/07/2024, à 08:32
- FrancisFDZ
Re : [Résolu] chroot et BTRFS
Un raisonnement simple aurait du m’amener à la solution :
- chroot doit faire tourner un système installé à l'origine sur des partitions BTRFS en le montant sur une partition du système hôte en ext4.
Il y a ici 2 partitions à traiter avec les paramètres adaptés, soit les partitions root et home. Le script fonctionne bien pour ces partitions, le problème n"est pas là.
- En ce qui concerne les répertoires à monter en bind, ils viennent du système hôte partitionné en ext4 et doivent être installés sur la partition dédiée, ici "/chroot", formatée également en ext4 ; donc pas besoin des options de montage concernant BTRFS.
Le script devient
mount UUID="6c408f39-2bf4-491b-a71b-242f4517773a" /chroot -t btrfs -o subvol=@
echo "root monté"
mount UUID="284ffc5f-cd25-43cb-b4ac-747547b4ecbf" /chroot/home -t btrfs -o subvol=@home
echo "home monté"
for i in /dev /dev/pts /proc /sys
do mount --bind $i /chroot/$i/
echo $i " monté"
done
chroot /chroot /bin/bash
Les erreurs de codage ("echo [...]") me servant à suivre l'évolution de la commande sont toujours là et en fait sans utilité, mais maintenant le script fonctionne. Je ne pense pas le rectifier/améliorer pour l'instant, et pour moi le problème est résolu (voir ma signature : mea culpa)
Merci de vos conseils qui m'ont aidés à comprendre les détails du fonctionnement de chroot
Dernière modification par FrancisFDZ (Le 03/07/2024, à 17:44)
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#7 Le 03/07/2024, à 09:35
- iznobe
Re : [Résolu] chroot et BTRFS
Bonsoir , il te suffit de lancer en CLI de monter la partition BTRFS correctement , lorsque ce sera fait , alors le chroot devrait fonctionner comme d' habitude .
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#8 Le 03/07/2024, à 10:56
- geole
Re : [Résolu] chroot et BTRFS
Bonjour.
Tu pourrais ajouter.
echo do mount --bind $i /chroot/$i/
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne