ext2 via loop mounten und dann chroot
Hi,
kurzer Abriss: habe gestern mal ein Gentoo System auf der Box (3010) per chroot angestellt. Emerge lief nicht, macht aber nichts, man kann ja alles binaer installieren, die Idee war nur so relativ generisch an eine Menge Software zu kommen. Das direkte mounten von ext2 geht nicht also loop. Nachteil vorneweg: Das mounten ueber das loop device kostet Leistung und vermutlich Speicher aufgrund der wohl doppelten Datenpuffer (einmal fuer das block file auf dem VFAT-Stick und einmal natuerlich fuer EXT2).
# wenn man ext2 direkt mounten kann, waere ich sehr dankbar fuer Hinweise
- Stick mit VFAT, mind. 1GB
- erzeuge dort ein block file:
dd bs=1M count=1000 if=/dev/zero of=block
- Dateisystem erzeugen und mounten
losetup /dev/loop0 block
mke2fs -I 128 /dev/loop0
mkdir dir
mount /dev/loop0 dir
- Installiere nun ein Userland der Wahl in diesem System, natuerlich gegen Linux 2.4 gelinkt, sinnvoll mit uclibc, busybox usw. Gentoo macht hier eine gute Figur, es gibt das ganze schon fertig. Man suche dort nach dem stage3-uclibc-mips4 TAR-Archiv und entpacke es gemaess dem Gentoo Handbook, den Portage-Tree installieren hat allerdings kaum Sinn (vorerst. hat bei mir nur alle Inodes des Dateisystems verbraucht)
- Man kompiliere sich (am besten aus den Quellen von Samsung) Kernelmodule fuer das loop device und ext2 und eine busybox die losetup und mount ueber loop device kann. Auch nett: mount von NFS shares.
- kopiere jetzt das fertige block file, die Module und die busybox auf den Stick.
- Stick in die Box und dann dort, sobald verfuegbar:
cd /mnt/..stick../
mkdir /mnt/root
insmod loop.o
insmod ext2.o
./busybox losetup /dev/loop0 block
mount -text2 /dev/loop0 /mnt/root
- ggf /dev/ in das neue System spiegeln (mount --bind geht nicht, also kopieren? -- habe ich nicht probiert)
- chroot in das neue System
chroot /mnt/root /bin/busybox ash
- proc mounten
mount -t proc /proc
- Umgebung laden
. /etc/profile
So, damit waere das System benutzbar. Allerdings: diese "Installation" ist nicht persistent, man ist solang in dem System wie man sich nicht abmeldet, es sollte aber nicht schwer sein, die Schritte zum starten automatisch in der /configs/rc.local auszufuehren.
Den Dropbear SSH von xor16rox auf der Box wuerde ich dann auch ausschalten und auf dem neuen System einen starten, dropbear ist bei der Gentoo stage3 schon dabei.
Pakete installieren habe ich nicht probiert, sollte aber gehen. Dazu waere mein Plan auf meinem Gentoo Desktop per emerge Gentoo - Binaerpakete zu erzeugen und dann auf die zu laden und zu installieren. Der Vorteil: so liesse sich im Prinzip fast alles automatisch kompilieren und installieren.
Noch eins. Moeglicherweise kann man auch alles ohne loop direkt auf vfat machen. Dann muessen vor dem chroot alle Dateirechte korrekt gesetzt werden, was mit einem Skript gehen sollte. Dazu muss aber vfat ausgetrickst werden (mount mit umask=0000, einfach so, oder in manipuliertem usb-mount Skript)
Gruss,
Hannes