Logo carnetderootxzz@carnetderoot.net"La simplicité est la sophistication suprême" - Léonard De Vinci
samedi 30 novembre 2019

:: Reconstruire un RAID1 logiciel ::

Copie de la table de partition à partir du disque sain

# sfdisk -d /dev/sda | sfdisk /dev/sdb 

Reconstruction de la grappe

# mdadm --manage --add /dev/md0 /dev/sdb1 

Suivi de la reconstruction

# watch -n 60 cat /proc/mdstat 

md1 : active raid1 sdc5[3] sda5[2] 
      488133496 blocks super 1.2 [2/1] [U_] 
      [>....................]  recovery =  0.3% (1780160/488133496) finish=59.1min speed=136935K/sec 

jeudi 28 novembre 2019

:: Procédure de mise à jour Debian ::

Debian 7 Wheezy vers Debian 8 Jessie

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués ("On hold")

    $ sudo dpkg --get-selections | grep 'hold$'

Note : Il est préférable de résoudre les problèmes avec ces paquets avant de procéder à la mise à niveau du système, sous peine de risquer quelques surprises.

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/wheezy/jessie/' /etc/apt/sources.list.d/<fichier>

Mise à niveau du système

  • Facultatif : vérification de l'espace disque avant d'effectuer la mise à niveau

    $ sudo apt-get update && sudo apt-get -o APT::Get::Trivial-Only=true dist-upgrade
    [...]
    543 mis à jour, 305 nouvellement installés, 10 à enlever et 0 non mis à jour.
    Il est nécessaire de prendre 382 Mo dans les archives.
    Après cette opération, 503 Mo d'espace disque supplémentaires seront utilisés.

    Si il y a un problème d'espace disque, la commande retourne un avertissement :

    E: Vous n'avez pas assez d'espace disponible dans /var/cache/apt/archives/.
  • Mise à niveau

    $ sudo apt-get update && sudo apt-get dist-upgrade
    $ sudo apt-get upgrade
    $ sudo shutdown -r now

Debian 8 Jessie vers Debian 9 Stretch

Préparation

Mise à jour du système en dernière version mineure.

$ sudo apt-get update && sudo apt-get upgrade -y

Suppression des paquets installés automatiquement et qui ne sont plus nécessaires

$ sudo apt-get autoremove

Suppression des fichiers de configuration obsolètes

$ sudo rm -f /etc/*.dpkg-{new,old} 

Vérification de l'état des paquets

  • Liste des paquets "Half-installed" ou "Failed-Config"

    $ sudo dpkg --audit
  • Liste des paquets bloqués par apt-get

    $ sudo dpkg --get-selections | grep 'hold$'
  • Liste des paquets bloqués par aptitude

    $ aptitude search "~ahold"

Modification des sources de paquets

  • Modifier le fichier /etc/apt/sources.list

    $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list
  • Et pour chaques fichiers présents dans /etc/apt/sources.list.d/ :

    $ sudo sed -i 's/jessie/stretch/' /etc/apt/sources.list.d/<fichier>

Mise à niveau et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo reboot

Mise à jour Debian 9 vers 10

Sauvegarde du systeme

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.11 (stretch)
Release:    9.11
Codename:   stretch

# uname -mrs
Linux 4.9.0-11-amd64 x86_64

Mise à jour complète et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo apt --purge autoremove

Modification des sources apt

Vérification du contenu existant

# cat /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ stretch main
deb-src http://ftp.fr.debian.org/debian/ stretch main

deb http://security.debian.org/ stretch/updates main
deb-src http://security.debian.org/ stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ stretch-updates main
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main

Remplacer les occurences de stretch par buster

$ sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
$ sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*

Mise à niveau et redémarrage

$ sudo apt update
$ sudo apt upgrade
$ sudo apt full-upgrade
$ sudo reboot

Vérifications et nettoyage

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster

$ uname -r
4.19.0-6-amd64

$ sudo apt --purge autoremove

vendredi 15 novembre 2019

:: CloudSHell2 - Installation d'Archlinux ::

Introduction

Toutes les opérations décrites ci-dessous ont été faites à partir d'un portable sous Archlinux et du reader/writer eMMC se branchant sur le port SD (via un adaptateur micro-SD).

La commande lsblk permet de récupérer le nom du périphérique, pour ma part /dev/mmcblk0

Préparation du module eMMC

Remise à zéro

$ sudo dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=8

Partitionnement

$ sudo fdisk /dev/mmcblk0

Créer une nouvelle partition primaire vide, en tapant les commandes suivantes :

  1. o : crée une nouvelle table de partition DOS
  2. n : crée une nouvelle partition avec les paramètres suivants :
    • p : type de partition primaire
    • 1 : première partition
    • 4096 : premier secteur de la partition
    • ENTER : dernier secteur de la partition (defaut)
  3. w : écrit la table de partition et quitte

Création du système de fichiers ext4

$ sudo mkfs.ext4 /dev/mmcblk0p1

Montage du système de fichiers

$ mkdir root  
$ sudo mount /dev/mmcblk0p1 root

Téléchargement et extraction du système de fichier root

$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-odroid-xu3-latest.tar.gz  
$ sudo bsdtar -xpf ArchLinuxARM-odroid-xu3-latest.tar.gz -C root

Flash du bootloader

$ cd root/boot/
$ sudo ./sd_fusing.sh /dev/mmcblk0

Démontage du système de fichiers

$ cd ../..
$ sudo umount root

Premier démarrage du système

  1. Insérer le module eMMC dans son emplacement sur la carte XU4
  2. Connecter le câble ethernet et brancher l'alimentation
  3. Attendre la fin du démarrage du système puis se connecter en ssh avec le user alarm et le mot de passe alarm

    $ ssh alarm@cloudshell.domaine.lan
  4. Ouvrir une session root avec le mot de passe root

    $ su - root

Initialisation

Création du trouseau de clés et enrichissement des certificats des dépôts Arch Linux ARM

# pacman-key --init
# pacman-key --populate archlinuxarm

Gestion de paquets

Mise à jour du système

# pacman -Syu

Paquets supplémentaires

# pacman -S vim

Configuration réseau

Nom d'hôte

  • /etc/hostname

    cloudshell
  • /etc/hosts

    127.0.0.1       localhost
    ::1             localhost
    127.0.1.1       cloudshell.domaine.lan cloudshell

Adresse IP

Comme il s'agit d'un serveur installé dans mon réseau local, je préfère lui assigner une adresse ip fixe tout en gardant la possibilité de demander une adresse ip dynamique (si je le déplace par exemple). J'ai donc créé un profil statique en ajoutant les lignes suivantes à la fin du fichier /etc/dhcpcd.conf :

  • /etc/dhcpcd.conf

    # Static profile
    interface eth0
    static ip_address=192.168.0.2/24 
    static routers=192.168.0.254
    static domain_name_servers=192.168.0.254 8.8.8.8

Configuration des disques

Le CloudShell2 permet de connecter deux disques SATA au format 3.5" et supporte les technologies RAID0, RAID1, SPAN ainsi que l'accès direct (mode PM).

Dans ma configuration, j'ai branché deux disques SATA de 3To et configuré le 'DIP switch' en RAID1. Le volume RAID est accessible via /dev/sda et sera monté sur /home.

Partitionnement

# fdisk /dev/sda

Créer une nouvelle partition primaire sur le volume, en tapant les commandes suivantes :

  1. n : crée une nouvelle partition avec les paramètres suivants :
    • p : partition de type primaire
    • 1 : numéro de partition
    • ENTER (2048) : premier secteur par defaut
    • ENTER (dernier secteur) : dernier secteur par defaut
  2. w : applique les changements et quitte

Formatage de la partition

# mkfs.ext4 /dev/sda1

Synchronisation du contenu de /home

# mkdir /mnt/data
# mount /dev/sda1 /mnt/data
# rsync -avz /home/ /mnt/data/

Une fois les données synchronisées (et vérifiées !), on peut nettoyer le répertoire /home :

# rm -rf /home/*

Montage de la partition et génération du fstab

# mount /dev/sda1 /home
# genfstab -p -U / > /etc/fstab

Ecran LCD

# echo "options fbtft_device name=hktft9340 busnum=1 rotate=270" > /etc/modprobe.d/cloudshell.conf
# echo "spi_s3c64xx" >> /etc/modules-load.d/fbtft_device.conf
# echo "spidev" >> /etc/modules-load.d/fbtft_device.conf
# echo "fbtft_device" >> /etc/modules-load.d/fbtft_device.conf

Ventilateur

Récepteur infrarouge

Références