|
|
P89626/debootstrapHier ein Versuch einen USB Stick mit Debian für MEDION LIFE P89626 (MD 86407) NAS zu erstellen. Diese Anleitung funktioniert, soweit nicht anders angegeben, auch mit den neuen Medion Life P89631 (MD 86729). << zurück zur Hauptseite 'P89626'
[Bearbeiten] links
[Bearbeiten] Stick erstellen[Bearbeiten] VorbereitungVorbereitungen des USB-Sticks an einem Ubuntu System: Den USB-Stick in das Dateisystem ext3 formatieren Stick einbinden, z.B.: sudo mount /dev/sdb1 /mnt/ Falls nicht installiert: sudo apt-get install debootstrap [Bearbeiten] debootstrap - Schritt 1Am PC führt man den ersten Teil vom debootstrap durch: sudo debootstrap --verbose --foreign --arch armel --include=udev,netbase,ifupdown,iproute,\ openssh-server,dhcpcd,iputils-ping,nano,wget,net-tools,ntpdate,uboot-envtools \ squeeze /mnt/ http://cdn.debian.net/debian/ Stick mit sudo umount /mnt auswerfen, Stick vom PC entehmen und in der Vorderseite der Box einstecken. [Bearbeiten] debootstrap - Schritt 2Auf der Box per Telnet fogendes eingeben: mkdir `ls /e-data`/proc mount -t proc proc /e-data/`ls /e-data`/proc chroot /e-data/`ls /e-data`/ /debootstrap/debootstrap --second-stage ... der debootstrap second-stage dauert etwas... Es endet dann mit: """I: Base system installed successfully.""" [Bearbeiten] DatenübernahmeEinige Daten kann man direkt weiter nutzten, z.B.: cp /etc/hostname > /e-data/`ls /e-data`/etc/hostname Samba config Übernehmen cp -r /etc/samba /e-data/`ls /e-data`/etc/samba NFS exports: cp /etc/exports /e-data/`ls /e-data`/etc/exports [Bearbeiten] Debian per chroot einrichtendanach kann man bash starten... chroot /e-data/`ls /e-data`/ /bin/bash Ein wenig einrichten: echo "LANG=C" > /etc/default/locale echo "export TERM=xterm-color" >> /etc/profile cat <<END > /etc/network/interfaces auto lo eth0 iface lo inet loopback iface eth0 inet dhcp END cat <<END > /etc/fstab /dev/root / ext3 noatime,errors=remount-ro 0 1 tmpfs /tmp tmpfs defaults 0 0 END cat <<END > /etc/apt/sources.list deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free END Hinweis: Die Box muss direkt an der Box neu gestartet werden, danach wieder in der Weboberfläche anmelden und den Backdor-Link ausführen, damit Telnet wieder geöffnet ist. Danach kann man weiter machen z.B.: aptitude update aptitude dist-upgrade [Bearbeiten] chroot per SkriptWenn man hin und wieder ins Debian System wechseln möchte, bzw. parallel in beiden Umgebungen sein will, kann man sich dafür auf dem Stick das Script do_chroot.sh legen: ~ # cd /e-data/XXX/ # <- XXX ist die ID des Sticks curl --insecure https://raw.github.com/jedie/NAS7820-Tools/master/do_chroot.sh > do_chroot.sh chmod +x do_chroot.sh ./do_chroot.sh Beispiel: Eine Verbindung mit Telnet/SSH-Verbindung wird aufgebaut und das Skript gestartet, dann ist man in Debian... Mit exit wird das System verlassen und landet wieder im normalen System. Das einbinden von /dev (Beitrag wegen Fehler: http://www.mikrocontroller.net/topic/240238#2450527)
mount -t devpts pts ${ROOT}/dev/pts
[Bearbeiten] Debian chroot-Umgebung mit statisch kompiliertem GNU ScreenEin Problem ist, dass die chroot-Umgebung geschlossen wird, sobald die SSH-Verbindung unterbrochen wird. So kann man keine Server (z.B. bacula) in der chroot-Umgebung laufen lassen. Abhilfe schafft ein statisch kompiliertes GNU Screen: https://www.gnu.org/software/screen/ Das fertige Paket für die armel-Architektur gibt es hier: https://mocko.org.uk/projects/armbinaries/ Zusätzlich müssen noch die Terminfos zur Verfügung gestellt werden. Die bekommt man durch das Paket ncurses-term:
Das terminfo Verzeichnis <chroot>/usr/share/terminfo zum Beispiel nach /i-data/6764ac2f/lib/terminfo kopieren und die Umgebungsvariable mittels export bekannt machen: /i-data/6764ac2f/admin/bin/ # export TERMINFO=/i-data/6764ac2f/lib/terminfo Anschließend kann mittels screen eine Screen Session gestartet werden, in der dann wiederum die Debian chroot-Umgebung geladen werden kann. Wenn die Screen Session detached wird, läuft die chroot-Umgebung und damit auch etwaige Server weiter. Das Ganze lässt sich natürlich noch weiter automatisieren. |