schroot für Debian/Ubuntu mit Arch
Da ich ja neulich von Ubuntu auf Arch gewechselt bin, habe ich dort natürlich keine Tools um Debian Pakete für testing oder diverse PPAs zu bauen.
Dies ist natürlich ärgerlich da ich das ein oder andere Paket natürlich weiterhin für Debian und Ubuntu anbieten will, insbesondere pyNeighborhood ist ja eher für Einsteiger und damit Ubuntu Anwender gedacht.
Damit ich weiterhin diese Pakete bauen kann habe ich mich für schroot entschieden. Damit kann man einfach und effektiv verschiedene chroot Umgebungen verwalten, so das ich mit einem einzigen Befehl in einem Debian System bin.
Für die Installation der benötigen Programme habe ich yaourt verwenden:
yaourt -S debootstrap schroot
Der nächste Schritt bestand daraus ein neues Logical Volume einzurichten und darauf dann ein Debian Basissystem zu packen:
sudo lvcreate -L 5G -n sid main sudo mkdir /mnt/sid sudo mount /dev/mapper/main-sid /mnt/sid sudo debootstrap --arch=amd64 sid /mnt/sid http://ftp.de.debian.org/debian sudo umount /mnt/sid
Nun müssen nur noch 2 Sachen gemacht werden damit man schroot verwenden kann. Das wichtigste wäre die Anpassung der Datei /etc/schroot/schroot.conf, hier muss dies am Ende der Datei (alternativ auch sonstwo) einkopiert und angepasst werden:
[sid] type=block-device device=/dev/mapper/main-sid root-groups=wheelDamit kann jeder Benutzer der in der Gruppe wheel ist auch schroot voll verwenden. Natürlich sollte man bei größeren Sicherheitsanforderungen die Manpage der schroot.conf aufmerksam durchlesen! Zusätzlich sollte man noch in der Datei /etc/schroot/default/nssdatabases die Zeile mit networks kommentieren, da sonst ein Start der chroot Umgebung nicht funktioniert, dies liegt daran das Arch Standardmäßig keine /etc/networks hat welche vom Startscript kopiert werden könnte.
Nun kann man mit
schroot -c sid -peine Benutzershell in chroot öffnen. Dabei wird sogar das /home-Dateisystem vom Hostsystem übernommen.
Könnte man damit auch ein cleanes ArchLinux mappen? Ich baue öfter Pakete für das AUR und wünsche mir ab und zu auch ein Testsystem, mit welche ich Sachen testen kann ohne mein Produktiv-System möglicherweise zu zerstören.
Wenn dies möglich wäre, könnte man von diesem zusätzlichen System booten?
Fragen über Fragen, würd mich freuen wenn du dazu Informationen hättest.
Grüße
Kommentar von Wutzara — 06.07.2010 21:29:09 | # - re
Also man kann so ein chroot schon so umbauen das man davon auch booten könnte, aber das wäre nur nötig wenn du Kernelpakete oder andere grundlegende Sachen bauen willst die beim booten benötigt werden.
Für deinen Zweck wäre wohl auch ein Logical Volume (wie bei mir) am sinnvollsten, den du kannst auch lvm-snapshot als Typ vom chroot angeben dann macht er automatisch von dem LV einen Snapshot und mountet diesen. Das ganze ist in der schroot.conf Manpage ganz gut beschrieben.
Ein Arch kann man auch in einem chroot Installieren, chroot ist ja nur ein Aufruf vom Kernel, was man damit tut bleibt einem selbst überlassen. wiki.archlinux.org/index.php/Install_from_Existing_Linux erklärt wie das ganze funktioniert, das mit dem /proc Dateisystem usw... musst du halt weglassen weil das schroot schon für dich macht.
mfg Betz Stefan
Kommentar von encbladexp — 06.07.2010 22:17:30 | # - re
Freudscher Verleser: habe anstatt schroot schrott gesehen :D
Kommentar von Dud — 06.07.2010 22:46:50 | # - re