Raspbian – Démarrer sur un disque dur

Pour commencer, il faut installer raspbian sur la carte SD.

Préparer le disque dur

Il faut formater le disque dur en Ext4 pour pouvoir y déplacer la partition Root de l’OS (avec gparted ou la commande fdisk, puis mkfs -t ext4 /dev/sda1).

Copie de root

Toutes les commandes ci-dessous sont à faire avec les droits Root.

Identifier la carte SD et le disque dur pour pouvoir les monter (affiché sd?? dans les commandes ci-dessous) :

sudo fdisk -l

Copier la partition Root depuis la carte SD vers le HDD (if=SD of=HDD).

sudo dd if=/dev/sd?? of=/dev/sd?? bs=512

En clair : copie tout ce qui est dans la carte SD vers la partition sda2 du disque dur, par blocs de 512 octets (bs=block size).

Finalement, étendre la ROOT FILE SYSTEM :

sudo resize2fs /dev/sd??

Vérifier copie et nettoyer SD

Monter le disque dur dans un répertoire créé préalablement (ici /home/user/hdd) :

sudo mount -t ext4 /dev/sd?? /home/user/hdd

Vérifier que la copie c’est bien passée sur le HDD :

cd /home/user/hdd
ls -l

Si tout est OK, on supprime la partition Root de la carte avec la commande fdisk ou avec gparted.

Configuration pour démarrage sur HDD

Pour que l’OS démarre sur le HDD, il faut modifier deux fichiers : cmdline.txt et fstab.

Pour commencer, il faut monter la partition boot de la carte SD :

sudo mount -t vfat /dev/sd?? /home/user/sd
cd /home/user/sd

Modifier cmdline.txt

Dans le fichier, remplacer la partie root=/dev/mmcblk0p2 par root=/dev/sda1 :

sudo nano cmdline.txt

Modifier fstab

Modifier le chargement de la partition root comme suite :

roc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults,ro          0       2
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1  /               ext4    defaults,noatime  0       1

avec la commande :

cd /home/user/hdd/etc
sudo nano fstab

On démonte la carte SD et le HDD :

sudo umount /home/user/hdd /home/user/sd

Conclusion

Le Raspberry Pi peut maintenant être démarrer. Il ne reste plus qu’à y installer les logiciels souhaités.

 

Marche à suivre fortement inspirée du site framboise314.fr.

Installer un serveur Mumble (Murmur) sur Raspbian

Installation

Pour installer Raspbian, rendez-vous ici.

Pour commencer, installer le paquet suivant :

sudo apt-get install mumble-server

Configuration

Une fois le serveur installé, il faut effectuer la configuration. Cela se fait à l’aide de la commande suivante :

sudo dpkg-reconfigure mumble-server

Le système va présenter quelques options. Les plus importantes sont les suivantes :

  • Démarrage automatique au lancement de la machine: Oui
  • Priorité élevée: Oui (Cela garantit que le serveur Mumble sera toujours la priorité absolue sur le Raspberry Pi)
    Mot de passe du superutilisateur: Définir le mot de passe sur super utilisateur du serveur Mumble.

Affiner la configuration

Les autres éléments de configuration sont défini dans le fichier /etc/mumble-server.ini.

Pour le modifier, il faut taper la commande suivante :

sudo nano /etc/mumble-server.ini

Dans ce fichier, on trouve entre autre :

  • welcomeText : Le message de bienvenue
  • serverpassword : le mot de passe pour se connecter
  • port : permet de définir un autre port d’accès au serveur (par défaut, c’est le 64738)
  • users : le nombre maximum de connexions permises simultanément
  • autobanAttempts : pour bannir les tentatives de connexion excessives

Une fois les paramètres saisis, il suffit d’appuyer sur CTRP+X pour sauvegarder les modifications. Pour que les modifications soient effectives, il faut redémarrer le serveur:

sudo service mumble-server restart

Pas de chargement de Murmur au démarrage

Si le serveur Murmur ne démarre pas en même temps que le Raspberry Pi, il peut s’agir d’un bug :-). Ce dernier semble avoir été identifié ici : https://bugs.launchpad.net/ubuntu/+source/mumble/+bug/1346431

En attendant, il faudra lancer la requête de démarrage à la main

sudo murmurd

Sauvegarder la configuration

Les fichiers suivants contiennent la configuration du serveur Murmur :

  • /var/lib/mumble-server/mumble-server.sqlite
  • /etc/mumble-server.ini

Installer Raspbian

Ce petit tutoriel présente les étapes de l’installation de Raspbian.

Pour commencer, il faut télécharger Raspbian sur https://www.raspberrypi.org/downloads/raspbian/.

Il faut ensuite rechercher la carte SD sur laquelle faire l’installation. Cela se faite avec la commande « fdisk -l ». Le périphérique est présenté sous la forme « /dev/sdX ».

$ sudo fdisk -l

Disk /dev/sda: 512.1 GB, 512110190592 bytes
255 têtes, 63 secteurs/piste, 62260 cylindres, total 1000215216 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sda1               1  1000215215   500107607+  ee  GPT

...

Disque /dev/sdh : 7969 Mo, 7969177600 octets
246 têtes, 62 secteurs/piste, 1020 cylindres, total 15564800 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0xa6202af7

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sdh1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdh2          122880     6399999     3138560   83  Linux

Une fois identifié, on le démonter (avec umount ou via gparted).

Pour installer l’image téléchargée,  on lance la commande suivante (remplacer sdX pour celui trouvé avec la commande fdisk) :

dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdX

Une fois que la carte est prête, il faut installer Raspbian en démarrant le Raspberry Pi avec la carte SD. Il ne reste plus qu’à suivre l’assistant de configuration.

Pour installer le clavier Suisse, il faut sélectionner le clavier suisse allemand puis sélectionner « french » sur l’écran suivant.

Démarrage en mode graphique

Avec l’arrivée de Raspbian Jessie, l’interface graphique est démarrée par défaut. Il faut donc démarrer la configuration graphiquement en allant sur le « menu –> Préférences –> Raspberry Pi Configuration » ou en démarrant la configuration en ligne de commande (par l’intermédiaire d’une connexion SSH) avec la commande « raspi-config ». Il est possible de désactiver le démarrage sur l’interface par défaut.

Installer un serveur FTP

Pour installer un serveur FTP, lancer la commande suivante :

sudo apt-get install vsftpd

On configure ensuite le serveur en éditant le fichier vsftpd.conf

sudo nano /etc/vsftpd.conf

changez la ligne

Anonymous_enabled=YES

en

Anonymous_enabled=NO

Maintenant, enlevez le # devant les lignes suivantes :

Local_enable = YES
local_unmask=022
Write_enabled=YES
Ascii_upload_enabled=YES
Ascii_download_enabled=YES

Il ne reste plus qu’a sauvegarder et le serveur est prêt.

Installer screen

Screen est un « multiplexeur de terminaux » permettant d’ouvrir plusieurs terminaux dans une même console, de passer de l’un à l’autre et de les récupérer plus tard. C’est par exemple utile lorsque l’on lance un script via une session SSH et que l’on veut le récupérer plus tard lors d’une nouvelle connexion SSH.

Pour l’installer :

sudo apt-get install screen

Utilisation

Créer un nouveau screen en nommant la session :

screen -S nom_de_la_session

Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s’affiche à l’écran. Il ne reste plus qu’à presser la touche [ESPACE].

La nouvelle session du shell s’affiche et attend qu’on saisisse une commande, par exemple :

echo test

Le shell se présente alors comme ça :

foo@bar $ echo test
test
foo@bar $

Pour se détacher de la session du screen :

Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [d]
OU fermer le terminal et/ou ouvrir un autre terminal

Pour se rattacher à la session du screen :

screen -r nom_de_la_session

Raspberry Pi – Faire un backup de sa carte SD

Ce tutoriel est largement copié de l’article suivant (c’est mon backup de « Faire un backup de sa carte SD » 🙂 ) : http://blog.nicolargo.com/2013/04/raspberry-pi-faire-un-backup-de-sa-carte-sd.html

Sauvegarde intégral d’une carte SD

On commence par insérer la carte SD dans le lecteur du PC GNU/Linux sur lequel on veut faire la sauvegarde.
Pour identifier le périphérique correspondant à la carte SD à sauvegarder sur son système, il suffit de saisir la commande suivante et de regarder le device qui correspond à sa carte SD:

$ sudo fdisk -l
[sudo] password for nicolargo:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000e3a56

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sda1   *        2048   617170943   308584448   83  Linux
/dev/sda2       617172990   625141759     3984385    5  Étendue
/dev/sda5       617172992   625141759     3984384   82  partition d'échange Linux / Solaris

Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdb2          122880    31275007    15576064   83  Linux

J’ai donc deux disques détectés sur ma machine:

  • /dev/sda (disque de 320 Go) qui est mon disque dur système sur mon PC portable. Ce n’est pas ce disque que l’on veut sauvegarder.
  • /dev/sdb (disque de 16 Go) qui est ma carte SD que je souhaite sauvegarder.

On lance la sauvegarde avec la commande suivante:

sudo dd if=/dev/sdb | gzip -9 > ./raspberry-20130420-sdb.img.gz

Restauration intégrale d’une carte SD

Après avoir inséré la clé USB sur laquelle on souhaite faire la restauration (attention la clé va être effacée), on commence par identifier l’identifiant du périphérique comme dans le paragraphe précédant (/dev/sdb dans mon cas).

Puis ensuite, il suffit de saisir la ligne de commande:

gunzip ./raspberry-20130420-sdb.img.gz | sudo dd of=/dev/sdb

Sauvegarde partition par patition d’une carte SD

Petit bonus, la sauvegarde par partition!

Comme on peut le voir sur les deux dernières lignes de la commande fdisk du premier paragraphe , la carte SD (point de montage /dev/sdb dans mon cas) comporte deux partitions (mais il peut y en avoir plus selon la configuration de votre Raspberry Pi).

Il faut sauvegarder toutes les partitions:

sudo dd if=/dev/sdb1 | gzip -9 > ./raspberry-20130420-sdb1.img.gz
sudo dd if=/dev/sdb2 | gzip -9 > ./raspberry-20130420-sdb2.img.gz

Ces commandes peuvent prendre plus ou moins de temps selon la taille de votre carte SD. J’ai ainsi mis plus d’une dizaine de minute pour faire la sauvegarde de ma carte SD de 16 Go. On voit ici l’avantage de choisir la taille de ses cartes SD en fonction de ses besoins…

Restauration partition par patition d’une carte SD

Nous allons maintenant restaurer la carte préalablement sauvegardée. La procédure consiste à créer les partitions avec la commande fdisk puis ensuite à y écrire les images avec dd.

On part sur le principe ou la carte est vierge est sans partition (sinon utilisé la commande d pour chacune des partitions puis w pour valider):

$ sudo fdisk /dev/sdb
 
Commande (m pour l'aide): p
 
Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34
 
Périphérique Amorce  Début        Fin      Blocs     Id  Système

On commence par créer le première partition (sdb1):

Commande (m pour l'aide): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Numéro de partition (1-4, par défaut 1):
Utilisation de la valeur par défaut 1
Premier secteur (2048-31275007, par défaut 2048): 8192
Dernier secteur, +secteurs or +taille{K,M,G} (8192-31275007, par défaut 31275007): 122879
Commande (m pour l'aide): t
Partition sélectionnée 1
Code Hexa (taper L pour lister les codes): c
Type système de partition modifié de 1 à c (W95 FAT32 (LBA))

puis la seconde (sdb2):

Commande (m pour l'aide): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Numéro de partition (1-4, par défaut 2):
Utilisation de la valeur par défaut 2
Premier secteur (2048-31275007, par défaut 2048): 122880
Dernier secteur, +secteurs or +taille{K,M,G} (122880-31275007, par défaut 31275007):
Commande (m pour l'aide): p
Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34
Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *        8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdb2          122880    31275007     15576064  83  Linux

On valide les partitions:

Commande (m pour l'aide): w
Synchronisation des disques.

Ensuite on restaure les images:

gunzip ./raspberry-20130420-sdb1.img.gz | sudo dd of=/dev/sdb1
gunzip ./raspberry-20130420-sdb2.img.gz | sudo dd of=/dev/sdb2

Et voilà le travail !

Connexion au Raspberry Pi par SSH

Par l’intermédiaire d’un terminal, taper :

ssh pi@192.168.XXX.XXX

Le mot de passe par défaut est raspberry

La connexion est alors active. Il est possible, sur Raspbian (ou dérivés), d’effectuer des commandes root avec la commande sudo.