staging.inyokaproject.org

chroot Umgebung crashed den Desktop

Status: Gelöst | Ubuntu-Version: Ubuntu MATE 20.04 (Focal Fossa)
Antworten |

Rachengold

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

Ich habe hier ein kleines chroot script:

sudo mount /dev/sda7 /mnt
sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc
sudo mount --bind /run /mnt/run 


sudo chroot /mnt /bin/bash 
sudo pacman  -Syu

Wenn ich die chroot-Umgebung mit exit verlasse und dann das Terminal mit exit beende, crashed Firefox und das terminal lässt sich nicht neustarten. Was kann ich machen damit Firefox nicht crashed und das mate-terminal startet?

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Wofür konkret soll das Einhängen von /run gut sein? Das wird von Ubuntu anders verwendet als von Arch.

Für ein einfaches aktualisieren braucht es bis auf das eingehangene Root Verzeichnis gar nichts von deinen Befehlen, dafür fehlt die Internet-Durchreichung.

Und wofür soll sudo im chroot gut sein (außer vielleicht den Fehlermeldung zum host zu werfen)?

Und warum hängst du die Verzeichnisse nicht wieder aus, wenn du die chroot-Umgebung verlässt?

Rachengold

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

Erstmal danke tomtomtom

sudo chroot /mnt /bin/bash

im Wiki von ubuntuusers gefunden

Ich habe das chroot-script so angepasst:

sudo mount /dev/sda7 /mnt
#sudo mount -o bind /dev /mnt/dev
#sudo mount -o bind /sys /mnt/sys
#sudo mount -t proc /proc /mnt/proc
#sudo mount --bind /run /mnt/run 


sudo chroot /mnt /bin/bash 
sudo pacman  -Syu

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Das im Ubuntuusers-Wiki erklärt wird, wie man in ein Ubuntu chrootet, dürfte klar sein (das würde btw. von einen Arch-System aus auch nicht so wie im Wiki erklärt funktionieren, da müsstest du erstmal die Umgebungsvariable neu setzen).

Erklärt aber immer noch nicht die restlichen Fragen. 😛

fleet_street

Top-Wikiautor
Avatar von fleet_street

Anmeldungsdatum:
30. August 2016

Beiträge: 1901

Wenn du das als Skript ausführst, kannst du es nur bis zum chroot in ein Skript packen. Das, was du in der chroot-Umgebung machen möchtest, gehört da nicht hinein.

Warum? Die bash wartet, bis sudo chroot /mnt /bin/bash beendet ist und danach – also nach manuellem Verlassen der chroot-Umgebung – wird sudo pacman -Syu ausgeführt. Das dürfte dein Terminal beschäftigt halten, aber warum firefox involviert ist, kann ich nicht sagen.

Rachengold

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

tomtomtom

Wofür konkret soll das Einhängen von /run gut sein?

https://wiki.ubuntuusers.de/chroot/Live-CD/

Zusätzliche Schritte Weiterhin muss /run eingebunden werden:

sudo mount --bind /run /mnt/run

Frieder108

Avatar von Frieder108

Anmeldungsdatum:
7. März 2010

Beiträge: 8780

Hi, ich würde mich bei dem chroot eher an diese Anleitung aus der Grub-Reparatur halten und zusätzlich noch mittels

sudo mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf 

die Internetverbindung durchschleifen.

Des weiteren benötigt pacman -Syu kein sudo → du bist doch zu diesem Zeitpunkt bereits als Admin in deinem Arch unterwegs.

Was deinen Firefox anbelangt - kann es sein, dass du in beiden Systemen den selben Profilordner, bspw. über eine Datenpartition, benutzt?

Rachengold

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

Frieder108 Nein Firefox hat unterschiedliche Profile. Zur Zeit hat sich das mit den Abstürzen/Crash erledigt.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

fleet_street schrieb:

Wenn du das als Skript ausführst, kannst du es nur bis zum chroot in ein Skript packen. Das, was du in der chroot-Umgebung machen möchtest, gehört da nicht hinein.

Das ist richtig, aber da gehört so einiges nicht rein, z.B. kein sudo. 😉

Warum? Die bash wartet, bis sudo chroot /mnt /bin/bash beendet ist und danach – also nach manuellem Verlassen der chroot-Umgebung – wird sudo pacman -Syu ausgeführt.

Alternative wäre

chroot /mnt pacman -Syu

- aber wie geschrieben, da stimmen so einige Sachen nicht.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Rachengold schrieb:

tomtomtom

Wofür konkret soll das Einhängen von /run gut sein?

https://wiki.ubuntuusers.de/chroot/Live-CD/

Nochmal: Im ubuntuusers-Wiki ist erklärt, wie du von einem Ubuntu per chroot in ein anderes Ubuntu gehst. Auch nochmal: /run wird unter Arch anders verwendet als unter Ubuntu, so ist unter debianoiden Systemen z.B. udisk2 gepatched und greift auf andere Pfade beim Einbinden zu als unter Arch.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Frieder108 schrieb:

Des weiteren benötigt pacman -Syu kein sudo → du bist doch zu diesem Zeitpunkt bereits als Admin in deinem Arch unterwegs.

Hatten wir oben schon - keine Antwort des TEs, was das da soll.

Was deinen Firefox anbelangt - kann es sein, dass du in beiden Systemen den selben Profilordner, bspw. über eine Datenpartition, benutzt?

Selbst das wäre egal, denn hier wird ja gar nicht auf den Firefox des anderes Systems zugegriffen.

Rachengold

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

tomtomtom da ich das chrootscript eventuell auf einem anderen PC mit user der in sudoers eingetragen ist nutzen will nutze ich sudo ... zum chrooten Das alles erklärt aber nicht den Bug in chroot. Ich hoffe es passt noch hier und wandert nicht ab:

Gibt es also einen chrootbug der passt?

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Rachengold schrieb:

da ich das chrootscript eventuell auf einem anderen PC mit user der in sudoers eingetragen ist nutzen will nutze ich sudo ... zum chrooten

In das Skript gehört da trotzdem kein sudo, das ist völlig irrelevant da DRIN.

Das alles erklärt aber nicht den Bug in chroot.

Wo auch immer da einer sein soll, den du nicht mal benennen kannst.

Wäre ja schon schön, wenn du das, was du da tust, erklären könntest...

Rachengold

(Themenstarter)

Anmeldungsdatum:
27. Oktober 2019

Beiträge: 292

tomtomtom das sudo ... habe ich mittlerweile weggelassen:

sudo mount /dev/sda7 /mnt
#sudo mount -o bind /dev /mnt/dev
#sudo mount -o bind /sys /mnt/sys
#sudo mount -t proc /proc /mnt/proc
#sudo mount --bind /run /mnt/run 


sudo chroot /mnt /bin/bash 
pacman  -Syu

Ich will Archlinux aktualisieren ohne neu booten zu müssen.

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 52312

Rachengold schrieb:

tomtomtom das sudo ... habe ich mittlerweile weggelassen:

Nochmal: Du willst ein Skript schreiben. IN ein Skript gehört kein sudo, erst recht nicht, wenn es sowieso komplett als root ausgeführt werden muss. Eine Shebang wäre auch noch eine Idee, vor allem wenn du das, wie angegeben, auch auf anderen PCs verwenden willst. Das die letzten zwei Zweilen so nicht funktionieren können wurde dir auch bereits erklärt...

Ich will Archlinux aktualisieren ohne neu booten zu müssen.

Jaaa….

bash -c 'echo -e "#!/bin/bash\nmount /dev/sda7 /mnt\nmount -o bind /dev /mnt/dev\nmount -o bind /sys /mnt/sys\nmount -t proc /proc /mnt/proc\ncp /etc/resolv.conf /mnt/etc/\nchroot /mnt pacman -Syu\numount /mnt/{dev,proc,sys} /mnt" > arch-update.sh' && chmod +x arch-update.sh  
sudo ./arch-update.sh
Antworten |