Denis Chupau aka Daggett

URL: linux-expert.net/?Trucs_et_astuces___Android___Tutoriel_%3A_Chroot_Debian

Tutoriel : Chroot Debian

Prérequis

Installer Debian GNU/Linux dans un fichier image

Sur votre PC GNU/Linux
En tant qu'utilisateur classique

mkdir debian-wheezy
dd if=/dev/zero of=debian-wheezy.root bs=1024k count=5000
mkfs.ext3 debian-wheezy.root

Remarque : je choisis une taille de 5Go pour le fichier image, vous pouvez mettre moins. De plus pour aller plus vite, utiliser :

dd if=/dev/zero of=debian-wheezy.root bs=1024k count=1 seek=5000

En tant que root

mount -o loop debian-wheezy.root debian-wheezy
debootstrap --foreign --arch armel wheezy debian-wheezy/
umount debian-wheezy

Transfert de l'image sur votre appareil sur la carte SD :

./AndroidDevKit/linadb push debian-wheezy.root /sdcard/debian-wheezy.root

ou bien via n'importe quel autre moyen en ayant l'appli qui va bien (FTP, SSH, etc.).

Remarque : l'architecture choisie ici est "armel" pour un maximum de compatibilité avec les appareils existants, vous pouvez choisir l'architecture "armhf" :

http://emdebian.org/~zumbi/fosdem-arm-2011/


Sur l'appareil

Dans une fenêtre terminal
En tant qu'utilisateur root, on prépare le chroot

cd /sdcard
mkdir debian
# NEW=/sdcard/debian
# mount --bind /dev $NEW/dev
# mount --bind /proc $NEW/proc
# mount --bind /sys $NEW/sys
# mount --bind /dev/pts $NEW/dev/pts

Puis on termine debootstrap dedans (en tant que root)

# export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/system/xbin
# chroot $NEW /bin/bash
# /debootstrap/debootstrap --second-stage

Modifier les sources APT

echo "## Debian Squeeze sources.list

## Debian.org FR mirror
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

## Debian security updates
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
" >> /etc/apt/sources.list

echo "domain local
search local
# DNS Google
nameserver 8.8.8.8
nameserver 8.8.4.4" >> /etc/resolv.conf

Terminer en installant les logiciels que vous voulez

aptitude update
aptitude upgrade
aptitude install vim openssh-server rsync openvpn sshfs

Remarque : certains problèmes de fonctionnement peuvent survenir, notamment avec openvpn (voir Trucs & astuces android -> Astuces pour le chroot Debian).

 

Configuration et automatisation
Script d'automatisation du montage

pousser le script suivant sur /sdcard/debian-chroot.sh

###########
#!/bin/sh
ROOT=/sdcard/debian
CHROOT=/sdcard/debian/debian-wheezy.root
BB=/system/xbin/busybox

if ! ls $ROOT/dev
then
    $BB mount -o loop $CHROOT $ROOT
fi

if ! ls $ROOT/proc/1 > /dev/null
then
    $BB mount --bind /dev $ROOT/dev
    $BB mount --bind /proc $ROOT/proc
    $BB mount --bind /sys $ROOT/sys
    $BB mount --bind /dev/pts $ROOT/dev/pts
    mkdir $ROOT/dev/net
    ln -s /dev/tun $ROOT/dev/net/
fi

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export HOME=/root
export LANG=C
$BB chroot $ROOT /bin/bash --login
##########

Configuration utile

aptitude install locales
dpkg-reconfigure locales
aptitude install console-data
dpkg-reconfigure console-data

=> PC / Azerty / French / Same as X11 / latin 9
=> Latin 1 And Latin 5 - Western Europe and Turkish

Auteur: Denis Chupau