www.mikrocontroller.net

P89626/debootstrap

Hier 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'

Inhaltsverzeichnis

[Bearbeiten] links

[Bearbeiten] Stick erstellen

[Bearbeiten] Vorbereitung

Vorbereitungen 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 1

Am 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 2

Auf 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übernahme

Einige 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 einrichten

danach 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 Skript

Wenn 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 Screen

Ein 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.

<< zurück zur Hauptseite 'P89626'

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net