Dans cet article rien de révolutionnaire avec ce que l’on peut trouver ici ou là sur le web, mais comme ce blog est autant un moyen pour moi de partager mes découvertes qu’un espace « personnel » de prise de notes, je publie tout de même mon retour d’expérience sur l’installation de Debian sur le Dockstar.
Première chose avant de commencer il faut connecter/brancher le Dockstar sans qu’il ait accès à Internet afin qu’il ne réalise pas une mise à jour de son système et coupe ainsi l’accès SSH (si c’est trop tard c’est réparable)
Trouver l’IP du Dockstar
Ensuite il faut trouver l’adresse IP du Dockstar, 3 solutions :
- Brancher le Dockstar sur un routeur DHCP (la Freebox par exemple) en ayant bien au préalable déconnecté le câble du WAN (câble téléphonique pour les boxs), puis aller dans la console de gestion et repérer l’adresse IP qui lui a été affecté
- Brancher le Dockstar en direct sur le PC et scanner les ports avec nmap
- Brancher le Dockstar en direct sur le PC et scanner le réseau avec netdiscover
J’ai personnellement testé les solutions 2 et 3 (je ne pouvais pas la 1 car ma femme regardais la TV via la box), la 3ème est sensée être plus rapide mais de mon expérience ce fut l’inverse (60s pour nmap et 90s pour netdiscover)
Trouver l’IP du Dockstar avec nmap
sudo aptitude install nmap
(nmap avec ses dépendance « pèse » 7221 ko)
Configuration du réseau du PC pour être sur le même sous réseau que le Dockstar (qui va s’attribuer une adresse APIPA en 169.254.*.* en absence de DHCP)
sudo ifconfig eth0 169.254.1.0
Scan du réseau APIPA avec nmap
nmap -e eth0 -sP 169.254.0.0/16
Dont voici la sortie
Starting Nmap 5.21 ( http://nmap.org ) at 2011-03-09 21:10 CET Strange error from connect (105):No buffer space available mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Nmap scan report for 169.254.1.0 Host is up (0.0015s latency). Nmap scan report for 169.254.213.140 Host is up (0.0021s latency). Nmap done: 65536 IP addresses (2 hosts up) scanned in 60.27 seconds
nmap trouve 2 équipements réseau en 169.254.*.*, le PC que l’on utilise et le Dockstar
Trouver l’IP du Dockstar avec netdiscover
C’est à peut près semblable :
sudo aptitude install netdiscover
(netdiscover avec ses dépendances est plus léger que nmap : 668ko)
Il n’est pas nécessaire pour netdiscover de mettre le PC sur le réseau en APIPA mais comme ce sera nécessaire après (ssh) on le fait.
sudo ifconfig eth0 169.254.1.0
Scan du réseau APIPA avec netdiscover
sudo netdiscover -r 169.254.0.0/16 -P
Dont voici la sortie
_____________________________________________________________________________ IP At MAC Address Count Len MAC Vendor ----------------------------------------------------------------------------- 169.254.213.140 00:10:75:1a:d5:8c 01 060 Maxtor Corporation -- Active scan completed, 1 Hosts found.
(netdiscover nous donne directement l’adresse MAC du Dockstar, utile pour faire une réservation d’adresse IP sur votre serveur DHCP)
Désactivation de la mise à jour automatique du Dockstar
Une fois son adresse IP connue on peut se connecter en SSH sur le Dockstar :
ssh root@[adresse IP du Dockstar]
The authenticity of host '169.254.213.140 (169.254.213.140)' can't be established. RSA key fingerprint is b4:6c:97:5d:6a:44:22:23:c9:a1:72:cd:f7:bb:30:91. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '169.254.213.140' (RSA) to the list of known hosts. root@169.254.213.140's password:
Le mot de passe par défaut étant stxadmin
On monte ensuite la partition root en écriture
mount / -rw -o remount
Puis on édite le fichier host pour re-diriger les URLs de pogoplug vers l’hôte locale (elle sont ainsi injoignables).
On édite donc le ficher /etc/hosts avec vi (seul éditeur disponible nativement sur le Dockstar) et on ajoute les lignes suivantes :
127.0.0.1 service.pogoplug.com 127.0.0.1 pm2.pogoplug.com 127.0.0.1 service.cloudengines.com 127.0.0.1 upgrade.pogoplug.com
On monte ensuite la partition root en lecture seule
mount / -r -o remount
Certains Dockstar ont été livré avec 512Mo de NAND (mémoire flash) au lieu de 256Mo, on peut vérifier si on fait partie de ces chanceux :
dmesg | grep "NAND"
Ce n’est pas mon cas :
[ 1.040000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)
On pourra à ce moment faire une réservation d’adresse IP sur le serveur DHCP (la Freebox par exemple), ainsi le Dockstar aura toujours la même IP même lors de reboot successif.
Débrancher le Dockstar du PC pour le brancher sur son routeur (Freebox) ou remettre l’accès à Internet/WAN sur la box.
Re-démarrer le Dockstar
Dans le cas où l’on a cherché l’IP du dockstar avec nmap/netdiscover on rebootera aussi son PC pour qu’il se remette sur le réseau (la commande dhclient ayant eu chez moi un comportement bizarre).
Préparation de la clé USB
J’ai décidé d’installer Debian sur une clé USB de 2Go (1Go voir 512 Mo devraient suffire).
Il faut savoir que selon les clés utilisées, le boot a chaud et/ou à froid sur la Debian installé dessus peut fonctionner ou non, la solution changer de clé.
J’ai réalisé une première installation sur une clé noname et le Dockstar refusait de booter dessus, j’ai donc acheté une nouvelle clé (une SanDisk® Cruzer® Blade™) et cela fonctionne parfaitement (qui plus est elle est plus rapide 23MB/s contre 14MB/s)
Cette clé doit avoir au minima 2 partitions, le première (impérativement) sera le root de Debian (d’un taille conseillé de 512Mo) et la deuxième sera le swap (128-256Mo conseillé).
J’ai personnellement fait 1700Mo pour le / et le reste (soit environ 300Mo) pour le swap.
J’ai utilisé fdisk sous Ubuntu pour faire ces partitions, voici les commandes exécutés (A adapter)
sudo fdisk /dev/sdb
Création de la première partition (n°1) primaire de 1700Mo :
Commande (m pour l'aide): n Commande d'action e étendue p partition primaire (1-4) p Numéro de partition (1-4): 1 Premier cylindre (1-969, par défaut 1): Utilisation de la valeur par défaut 1 Dernier cylindre, +cylindres or +taille{K,M,G} (1-969, par défaut 969): +1700M
Création de la partition n°1 primaire du reste de la clé :
Commande (m pour l'aide): n Commande d'action e étendue p partition primaire (1-4) p Numéro de partition (1-4): 2 Premier cylindre (865-969, par défaut 865): Utilisation de la valeur par défaut 865 Dernier cylindre, +cylindres or +taille{K,M,G} (865-969, par défaut 969): Utilisation de la valeur par défaut 969
Positionnement du flag d’amorce (boot) sur la première partition :
Commande (m pour l'aide): a Numéro de partition (1-4): 1
Positionnement du type swap sur la deuxième partition :
Commande (m pour l'aide): t Numéro de partition (1-4): 2 Code Hexa (taper L pour lister les codes): 82 Type système de partition modifié de 2 à 82 (Linux swap / Solaris)
Vérification
Commande (m pour l'aide): p Disque /dev/sdb: 2000 Mo, 2000682496 octets 64 têtes, 63 secteurs/piste, 969 cylindres Unités = cylindres de 4032 * 512 = 2064384 octets Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identifiant de disque : 0x00000000 Périphérique Amorce Début Fin Blocs Id Système /dev/sdb1 * 1 864 1741792+ 83 Linux /dev/sdb2 865 969 211680 82 Linux swap / Solaris
Écriture des changements et sortie de fdisk :
Commande (m pour l'aide): w La table de partitions a été altérée!
La clé peut être insérée dans le Dockstar (emplacement arrière droit) et ce dernier rebooté
Installation de Debian avec le script de Jeff Doozan
Un gars merveilleux nommé Jeff Doozan à fait un script qui réalise l’installation et la configuration spécifique pour le Dockstar d’un bootloader (uboot) sur la NAND du Dockstar, installe Debian avec le kernel kirkwood (spécifique aux processeurs ARM) en mode tout automatique (formattage) et sans qu’il soit nécessaire d’avoir une console (écran), installe quelques paquets pour le Dockstar (ssh, ntp pour la mise à l’heure, etc.). Plus de détails
On se connecte donc sur son Dockstar :
ssh root@[adresse IP du Dockstar]
On télécharge et lance le script de Jeff :
cd /tmp wget http://jeff.doozan.com/debian/dockstar.debian-squeeze.sh chmod +x dockstar.debian-squeeze.sh export PATH=$PATH:/usr/sbin:/sbin ./dockstar.debian-squeeze.sh
Message d’avertissement, indiquant que le bootloader par défaut va être remplacé et que Debian va être installé sur la clé sda (devant contenir 2 partitions) :
!!!!!! DANGER DANGER DANGER DANGER DANGER DANGER !!!!!! This script will replace the bootloader on /dev/mtd0. If you lose power while the bootloader is being flashed, your device could be left in an unusable state. This script will configure your Dockstar to boot Debian Squeeze from a USB device. Before running this script, you should have used fdisk to create the following partitions: /dev/sda1 (Linux ext2, at least 400MB) /dev/sda2 (Linux swap, recommended 256MB) This script will DESTROY ALL EXISTING DATA on /dev/sda1 Please double check that the device on /dev/sda1 is the correct device. By typing ok, you agree to assume all liabilities and risks associated with running this installer. If everything looks good, type 'ok' to continue:
Que l’on accepte avec ok
Le script télécharge et installe divers outils d’interaction avec les NAND et test la présence du bootloader d’origine puis le script demande si on doit désactiver le service d’auto-update de pogoplug :
DISABLE POGOPLUG SERVICES The pogoplug service includes an auto-update feature which could be used to cripple or disable your device. It is recommended that you disable this service. NOTE: The pogoplug service is proprietary software created by Cloud Engines. It is not available for use in other distributions and will not be available in your new linux installation even if you choose not to disable it. Would you like to disable the pogoplug services? [Y/n]
On accepte avec Y
Le script installe alors le bootloader modifié sur la NAND, formate la première partition de la clé USB et y installe Debian et divers paquets.
A partir de ce moment l’installation prend environ 45 minutes (dépendant de la vitesse d’écriture de votre clé)
Le log complet d’installation est disponible ici : JeffDoozan_Debian_Installation
Au terme de l’installation le script propose de rebooter, on accepte avec Y, la connexion SSH est alors perdue.
Quelque instants plus tard (30s – 1 min) on peut rétablir la connexion SSH en root avec le mot de passe root et là normalement vous devriez avoir un superbe prompt Debian :
root@debian:~#
Si le mot de passe root est refusé essayez le mot de passe par défaut du Dockstar (stxadmin), si cela marche cela veut dire que votre clé USB n’est pas bootable à chaud, donc que le Dockstar n’a pu booter sur Debian, il a donc booté sur son OS d’origine. Il vaut mieux alors changer de clé USB et recommencer.
Petite comparaison Debian / Pogo OS
Avec top sur Pogo OS :
Mem: 22796K used, 103268K free, 0K shrd, 0K buff, 6876K cached CPU: 0% usr 0% sys 0% nice 100% idle 0% io 0% irq 0% softirq Load average: 0.00 0.00 0.00 PID PPID USER STAT VSZ %MEM %CPU COMMAND 340 338 root S 11708 9% 0% /usr/local/cloudengines/bin/hbplug 703 637 root R 3404 3% 0% top 308 1 root S 3404 3% 0% udhcpc -b Pogoplug 1 0 root S 3400 3% 0% init 310 1 root S 3400 3% 0% telnetd 315 1 root S 3208 3% 0% ntpd -g 319 315 root S 3208 3% 0% ntpd -g 637 636 root S 2676 2% 0% -bash 339 1 root S 2672 2% 0% -sh 636 313 root S 2580 2% 0% /usr/sbin/dropbear 313 1 root S 2100 2% 0% /usr/sbin/dropbear 338 1 root S 1696 1% 0% /usr/local/cloudengines/bin/hbwd /usr/local/cloudengines/bin/hbplug 639 2 root SWN 0 0% 0% [jffs2_gcd_mtd2] 72 2 root SW 0 0% 0% [pdflush] 49 2 root SW< 0 0% 0% [khubd] 2 0 root SW< 0 0% 0% [kthreadd] 3 2 root SWN 0 0% 0% [ksoftirqd/0] 4 2 root SW< 0 0% 0% [events/0] 5 2 root SW< 0 0% 0% [khelper] 46 2 root SW< 0 0% 0% [kblockd/0] 51 2 root SW< 0 0% 0% [kmmcd] 65 2 root SW 0 0% 0% [crypto] 66 2 root SW 0 0% 0% [crypto_ret] 71 2 root SW 0 0% 0% [pdflush] 73 2 root SW< 0 0% 0% [kswapd0] 74 2 root SW< 0 0% 0% [aio/0] 227 2 root SW< 0 0% 0% [mtdblockd] 228 2 root SW< 0 0% 0% [nftld] 262 2 root SW< 0 0% 0% [kcryptd/0] 337 2 root SW< 0 0% 0% [xce]
Sur Debian :
top - 19:59:01 up 1:24, 1 user, load average: 0.01, 0.02, 0.00 Tasks: 37 total, 1 running, 36 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 125732k total, 19580k used, 106152k free, 804k buffers Swap: 211672k total, 0k used, 211672k free, 11116k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 529 root 20 0 2548 1028 824 R 2.0 0.8 0:00.02 top 1 root 20 0 2020 696 604 S 0.0 0.6 0:01.00 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root 20 0 0 0 0 S 0.0 0.0 0:00.01 events/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuset 7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm 11 root 20 0 0 0 0 S 0.0 0.0 0:00.01 sync_supers 12 root 20 0 0 0 0 S 0.0 0.0 0:00.01 bdi-default 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kblockd/0 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kseriod 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0 18 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd 19 root 20 0 0 0 0 S 0.0 0.0 0:00.00 aio/0 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 crypto/0 25 root 20 0 0 0 0 S 0.0 0.0 0:00.00 mtdblockd 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 orion_spi 82 root 20 0 0 0 0 S 0.0 0.0 0:14.76 kmmcd 84 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd 86 root 20 0 0 0 0 S 0.0 0.0 0:00.09 khubd 94 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0 95 root 20 0 0 0 0 S 0.0 0.0 0:00.06 usb-storage 168 root 16 -4 2328 696 380 S 0.0 0.6 0:00.10 udevd 217 root 20 0 0 0 0 S 0.0 0.0 0:00.00 mv_crypto 420 root 20 0 1824 260 160 S 0.0 0.2 0:00.00 dhcpcd-bin 447 root 18 -2 2324 548 236 S 0.0 0.4 0:00.01 udevd 448 root 18 -2 2324 548 236 S 0.0 0.4 0:00.01 udevd 498 root 20 0 5824 976 616 S 0.0 0.8 0:00.01 sshd 516 root 20 0 1644 532 464 S 0.0 0.4 0:00.01 getty 521 root 20 0 8972 2760 2256 S 0.0 2.2 0:00.15 sshd 523 root 20 0 3092 1616 1300 S 0.0 1.3 0:00.03 bash
Plus de processus mais moins de mémoire consommée !!
Et tout cela en 258Mo d’espace disque :
df -h Filesystem Size Used Avail Use% Mounted on rootfs 1.7G 258M 1.4G 17% / none 60M 36K 60M 1% /dev /dev/sda1 1.7G 258M 1.4G 17% / tmpfs 62M 0 62M 0% /lib/init/rw tmpfs 62M 0 62M 0% /dev/shm tmpfs 62M 0 62M 0% /tmp
Post installation
Je détaillerais mes configurations et autres installations dans un autre article sauf une très importante pour la sécurité, le changement du mot de passe root qui se fait avec la commande :
passwd
Et demande de saisir 2 fois le nouveau mot de passe :
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Si vous n’utilisez pas de réservation d’adresse IP sur le DHCP, il peut être conseillé de configurer une IP fixe sur votre Dockstar (voir à la fin de cet excellent article)
A suivre dans Configuration de base du Dockstar
Sources :