Archives de catégorie : Logiciels libres

Passage à Mageia 8

Je me suis lancé dans le passage à Mageia 8 en optant pour une mise à jour à partir du CD ROM d’installation vu que je ne suis qu’en ADSL. Ça fait maintenant un bout de temps que je procède par mise à jour pour passer à la nouvelle version, car cela marche plutôt bien et c’est ce qui a de plus rapide pour passer d’une version à une autre sans avoir à tout reconfigurer et réinstaller.

Je dispose de plusieurs postes sous Mageia 7.1, j’ai commencé par mon thinkpad x230 et à ma grande déception le résultat est assez catastrophique. Je ne liste pas tous les problèmes tellement il y en a, ça commence par des conflits avec les packages existants de la 7.1 qui fait que dans la pratique la mise à jour via l’interface d’installation échoue et il est nécessaire de passer par un shell pour faire une mise à jour manuelle et régler les conflits au fil de la mise à jour. Ça m’a malheureusement rappeler les mises à jour catastrophiques du temps de la Mandrake, j’imaginais que ce temps là était révolu.
Une fois l’installation terminée, les soucis ne sont pas terminés, Plasma se lance pas, je me retrouve avec un écran noir et juste le curseur de la souris, XFCE est complètement cassé, avec l’enregistrement de session qui ne marche pas, le gestionnaire de fenêtre qui ne se lance pas, les conkys qui s’affichent de temps à autre, et j’arrête là la liste. J’ai essayé avec un utilisateur vierge c’est pareil que ce soit avec XFCE ou plasma.

J’ai stoppé net mon passage à la Mageia 8 et j’ai pris un peu de recul. J’ai terminé la restauration de mon thinkpad x230 après coup après quelques heures à le reconfigurer, finalement cette mise à jour m’aura pris plus de temps qu’une installation classique avec reconfiguration.

Mon écran principal de mon Thinkpad X230 sous XFCE avec xplanetFX en fond d’écran

Cette épisode m’a bien refroidi pour mes autres postes sous Mageia 7.1, néanmoins ce week end j’ai lancé la mise à jour de mon thinkpad x200 branché à la TV qui me sert de PC mediacenter avec kodi. J’ai lancé une mise à jour à partir du shell et là aussi j’ai rencontré des problèmes de conflits avec la mise à jour classique via l’interface du CD-ROM d’installation. Et là je dois dire qu’après avoir réglé les conflits et supprimer le stock de packages orphelins de la Mageia 7.1, j’ai retrouvé un système rapidement utilisable sans les déboires que j’ai rencontrées avec le x230.

Bien sûr tout cela n’est pas très engageant, mais Mageia 8 reste une excellente distribution avec une communauté active, bien maintenue et remarquablement bien finie. Les outils serveur notamment comme OpenSSH ou LAMP sont par défaut très bien configurés et les modification sont mineures, contrairement à d’autres distributions (je pense notamment à Ubuntu que j’ai pu tester et que j’ai trouvé bien moins finie pour les outils serveurs). Alors mes petites déboires de mise à jour ne doivent pas effrayer outre mesure, elles sont très probablement dues à l’installation d’outils tiers et de configuration atypique. La plupart des utilisateurs qui ne passent que par le gestionnaire de packages de la distribution avec des configurations classiques ne rencontrent pas ces problèmes.

Sauvegarde le retour

J’ai connu en début d’année des déboires suite à un crash disque inopiné comme je l’évoque dans ce post. En fait un problème disque bas bruit, non détecté, a conduit à la corruption de données, données qui ont été sauvegardées en écrasant la sauvegarde saine. J’ai été surpris par le crash disk qui est arrivé sans crier gare, et c’est seulement en remontant ma sauvegarde que je me suis rendu compte de sa corruption. Malgré des heures passées à tenter de récupérer les données manquantes avec photorec entre autres, j’ai perdu dans l’affaire pas mal de données essentiellement des fichiers multimédia patiemment emmagasinés depuis des années.

Suite à cet incident, j’avais revu de fond en comble ma stratégie de sauvegarde qu’on peut retrouver dans cet autre post. J’avais évoqué mes déboires et présenté fièrement cette nouvelle stratégie dans ce journal sur linuxfr. Bien m’en a pris, les commentaires qui m’ont été faits m’ont ouvert les yeux et j’ai revue de fond en comble ma stratégie de sauvegarde qui ressemble maintenant à quelque chose comme cela :

Continuer la lecture de Sauvegarde le retour

Signal et linux

La messagerie sécurisée Signal étant devenue subitement à la mode, une partie de mon entourage a décidé de migrer de WhatApp à Signal pour ma plus grande joie. En effet Signal est un logiciel open source et pendant longtemps j’ai eu l’impression de me battre contre des moulins à vent pour leur faire comprendre l’intérêt de basculer sur Signal. Mais j’ai baissé les bras et je me suis résolu à installer WhatsApp pour ne pas être exclu de la communauté familiale. Il a fallu tout ce battage médiatique suite aux changements des termes d’utilisation de WhatsApp pour finir de les convaincre même si la presse généraliste a eu tendance à exagérer considérablement l’impact des évolutions sur l’utilisateur européen.

Il en reste pas moins que je jongle maintenant avec les deux messageries en attendant peut être de me passer WhatsApp totalement. J’avais pris l’habitude d’utiliser la version linux de WhatsApp, il se trouve que Signal également propose une version linux que j’ai installé simplement avec flatpak.

flatpak install flathub org.signal.Signal
flatpak run org.signal.Signal

Comme avec WhatsApp, vous devez avoir Signal installé sur votre mobile et être connecté sur le mobile pour que Signal puisse fonctionner sur le poste linux. Au lancement de Signal, un QR code s’affiche et il faudra avec le mobile pointer dessus pour associer le mobile avec le PC linux.

Signal ressemble à cela, on ne retrouve pas tous les contacts mais uniquement ceux qui ont Signal.

Signal présente le gros avantage par rapport à WhatsApp de permettre de faire des visioconférences sous linux ce que ne permet pas WhatsApp.

L’exception de copie privée

Ce post a d’abord été publié sur linuxfr, cette version a été complétée et enrichie.

Le contexte

J’ai un post sur ce blog qui explique comment enregistrer un film d’une box internet sur son PC car pour beaucoup de box ce n’est pas natif et il n’est pas prévu que ça soit possible. Il se trouve qu’on me fait régulièrement la remarque comme quoi ce n’est pas légal. Au travers de ce post je souhaite donc faire un point sur la copie privée et ce post traduit ma compréhension du sujet.

Que dit la loi ?

Ce qu’on appelle l’exception de copie privée est apparue dans la loi n°57-298 du 11 mars 1957. L’article 41 nous dit que l’auteur ne peut interdire “Les copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées à une utilisation collective”. Depuis cette loi a été abrogée mais cette disposition a été codifiée dans le Code de la Propriété Intellectuelle à l’article L122-5-2, l’auteur ne peut interdire “Les copies ou reproductions réalisées à partir d’une source licite et strictement réservées à l’usage privé du copiste et non destinées à une utilisation collective”. On la retrouve également dans l’article L211-3-2 pour les droits voisins du même code.

C’est à ce titre qu’on pouvait copier des films sur magnétoscope et de la musique sur K7 audio pour les plus anciens qui ont connu cette époque. A vrai dire les choses n’ont pas évoluer même si les moyens techniques de diffusion et d’enregistrement ont beaucoup évolué depuis. D’ailleurs c’est bien au titre de l’exception de copie privée qu’une redevance est prélevée pour les disques durs, mémoire, CD, vidéo K7, mais également smartphone, ordinateurs, box internet, etc. Redevance qui sert ensuite à rémunérer les ayants droits (75%) et financer des actions culturelles (25%) comme l’explique ce site consacré à la copie privée. La rémunération pour copie privée fait l’objet des articles L311-1 à L311-8 du Code de la Propriété Intellectuelle qui précisent bien que la copie privée conduit à la mise en place d’une redevance forfaitaire à l’achat qui dépend du support, de la durée et de sa capacité d’enregistrement.

Par ailleurs la directive européenne 2001/29/CE du 22 mai 2001 (modifiée par la directive 2019/790) via l’alinéa 7 de la directive 2019/790 confirme la possibilité de mettre en place des protections pour garantir l’exercice effectif des droits d’auteur mais “tout en veillant à ce que l’utilisation de mesures techniques n’empêche pas les bénéficiaires de jouir des exceptions et limitations prévues par la présente directive”. En clair, cette directive oblige les États membres à prendre les mesures appropriées pour garantir le bénéfice de certaines exceptions dont la copie privée.

Concrètement la transposition dans le droit français de cette directive dans le Code de la Propriété Intellectuelle (article L331-31) a donné comme mission (entre autres) à la Haute autorité pour la diffusion des œuvres et la protection des droits sur Internet (HADOPI) de veiller “à ce que la mise en œuvre des mesures techniques de protection n’ait pas pour effet de priver les bénéficiaires des exceptions”. Cela comprend bien évidemment l’exception pour copie privée et on peut en conclure que sur la base de cet article l’HADOPI pourrait interdire les éditeurs et distributeurs de services à recourir à des moyens techniques limitant la copie.

Que dit la jurisprudence ?

Mais les choses ne sont malheureusement pas si simples, il existe une subtilité d’ordre juridique qui a son importance. La copie privée reste une exception légale et n’est pas un droit. En d’autres termes vous ne pouvez pas être poursuivi pour avoir copié un film pour un usage privé en restant dans le cadre de la loi, mais vous ne pouvez pas invoquer cette exception pour poursuivre un distributeur ou un producteur si vous ne parvenez pas à copier un film.

A ce sujet la jurisprudence a parfaitement complété la loi au travers de l’affaire “Mulholland drive”. C’est l’histoire d’un mec qui avec l’appui de l’association de défense des consommateurs UFC Que choisir, s’est plaint auprès de la justice qu’il ne pouvait pas copier le DVD du film “Mulholland drive” en invoquant l’exception de copie privé. L’affaire a connu de multiples rebondissements avec un premier arrêt du 30 avril 2004 par le tribunal de première instance de Paris qui a donné d’abord tort au plaignant qui a interjeté appel de ce jugement. La cour d’appel de Paris dans son arrêt du 22 avril 2005 a cette fois-ci donné raison au plaignant. La cour de cassation a ensuite été saisie et a cassé le jugement dans son arrêt du 28 février 2006. Retour à la cour d’appel de Paris qui dans son arrêt du 4 avril 2007 a débouté cette fois-ci le plaignant qui pourvoit en cassation. La cour de cassation rend un jugement définitif avec son arrêt du 19 juin 2008 et déclare la requête irrecevable et confirme ainsi que la copie privée n’est qu’une exception et ne peut être considérée comme un droit.

Pour résumer

Moralité cette jurisprudence réduit drastiquement le champ d’application de la copie privée. Alors certes les gendarmes ne viendront pas fracasser votre porte à 6h du mat’ parce que vous avez copié “les bronzés” de votre box ou d’un DVD mais il n’existe pas de recours juridique si vous n’y parvenez pas.

Continuer la lecture de L’exception de copie privée

Prise en compte de la Whitelist et blacklist avec spamassassin pour filtrer les mails

J’ai galéré à mettre en place les whitelist et blacklist avec SpamAssassin, en deux mots les expéditeurs qui sont dans la blacklist sont considérés comme des spammeurs et leurs mails classés comme spams, et a contrario les expéditeurs dans la whitelist ne sont pas considérés comme des spammeurs. Il m’a fallu des mois de mise au point à force de tâtonnement avant de trouver le bon réglage, maintenant que ça marche je tiens à partager ma configuration. Dans le fichier /etc/mail/spamassassin/local.cf j’ai ces lignes là :

score USER_IN_WHITELIST -100.0
score USER_IN_BLACKLIST 100.0

shortcircuit USER_IN_WHITELIST       on
shortcircuit USER_IN_BLACKLIST       on

La variable USER_IN_WHITELIST attribue un score de -100 si le mail est dans la whitelist et a contrario à +100 s’il est dans la blacklist. En parallèle j’ai créé un fichier /etc/mail/spamassassin/white-black-list.cf qui contient la whitelist et la blacklist sous ce format (extrait)

whitelist_from *@amazon.fr
whitelist_from *@cdiscount.com
whitelist_from *@jamendo.com
whitelist_from *@dgfip.finances.gouv.fr
blacklist_from *@captainpromos.com
blacklist_from *@captain-promos.com
blacklist_from *@captainpromos.fr
blacklist_from *@captain-promos.fr
blacklist_from *@sender.motherbabychild.com
blacklist_from *@mecacom.fr
blacklist_from *@british-abaf.com
blacklist_from *@b.professionnel-pres-de-chez-toi.fr
blacklist_from *@ecatalog.fr

Dans la pratique, la directive shortcircuit (court circuit) permet de ne pas dérouler tous les tests et de les stopper dès lors que l’expéditeur se trouve dans la whitelist ou la blacklist. Pour un spam dont l’expéditeur est dans la blacklist, dans le corps du mail on retrouvera :

Détails de l'analyse du message:   (100.0 points, 5.0 requis)
 0.0 SHORTCIRCUIT           Not all rules were run, due to a shortcircuited
                            rule
 100 USER_IN_BLACKLIST      From: address is in the user's black-list

Je me permets maintenant une digression, “Black lives matter” est passé par là et le code va évoluer pour que whitelist devienne welcomelist et blacklist devient blocklist car certains auraient relevé une connotation raciale dans le terme de whitelist et blacklist. Le changement sera effectif dans les prochaines versions, on peut voir ici l’annonce sur la mailing list officielle SpamAssassin. C’est un courant de fond qui touche tous les logiciels libres, par extension la notion même de maître esclave disparait également, Github a renommé ainsi la branche master par main.

La novlangue devient une réalité et on fait table rase de ce qui fait notre histoire et notre culture pour gommer toutes les aspérités pour faire plaisir à une minorité d’intégristes prônant la dictature du politiquement correct. Ce mouvement est dangereux car il refuse le débat, la contradiction et la réflexion historique et cherche à imposer un point de vue unique. Il prospère et se diffuse entre autres via les réseaux sociaux qui forment aujourd’hui une formidable caisse de résonance pour le moindre crétin, discréditant et diffamant toute voix sensée et raisonnable. Pour sûr quand ce travail d’appauvrissement culturel aurait fait son œuvre, on s’exposera à un violent retour de bâton pour avoir sciemment gommé notre passé.

Coffre fort à mots de passe

Il y a quelque temps j’avais présenté dans un post le coffre fort à mots de passe que j’utilisais basé sur KeePassX. Le principe est que la base de donnée est sur un partage réseau de mon serveur, elle est partagée pour une utilisation familiale et tout le monde l’enrichit. Une seule instance de KeePassX peut ouvrir en écriture la base et les autres en lecture. La base de donnée est copiée à droite et à gauche au cas où.

Il se trouve que KeePassX n’est plus développé depuis 4 ans, il est donc fortement recommandé de l’abandonner et de passer à autre chose. Il se trouve qu’il existe un fork de KeePassX qui s’appelle KeePassXC qu’il est préférable d’utiliser d’autant qu’il dispose d’une intégration au navigateur Firefox. Pour cela il faudra installer la dernière version 2.6.2, la version 2.4.1 qu’on trouve sur une Mageia 7.1 ne permet pas l’intégration avec Firefox. Pour cela j’ai récupéré les sources et j’ai recompilé pour être sûr d’avoir toutes les options qui m’intéressent.

Tout d’abord j’ai dû installer les packages lib64argon2-devel, lib64sodium-devel, lib64qrencode-devel, lib64yubikey-devel, ykpers-devel et asciidoctor. Les options de compilation sont :

cmake .. -DWITH_XC_NETWORKING=ON -DWITH_XC_SSHAGENT=ON -DWITH_XC_BROWSER=ON -DWITH_XC_ALL=ON

Cela donne quelque chose comme cela :

-- Found Git HEAD Revision: e9b9582

-- Setting up build for KeePassXC v2.6.2

-- Including translations...

-- Using asciidoctor: /bin/asciidoctor
-- Enabled features:
 * Auto-Type, Automatic password typing
 * Networking, Compile KeePassXC with network access code (e.g. for downloading website icons)
 * KeePassXC-Browser, Browser integration with KeePassXC-Browser
 * SSHAgent, SSH agent integration compatible with KeeAgent
 * KeeShare, Sharing integration with KeeShare (requires quazip5 for secure containers)
 * YubiKey, YubiKey HMAC-SHA1 challenge-response
 * UpdateCheck, Automatic update checking
 * FdoSecrets, Implement freedesktop.org Secret Storage Spec server side API.

-- Disabled features:

-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/linux/systeme/keepassxc-2.6.2/build

Une fois compilé et lancé, il charge sans opération particulière la base issue de KeePassX. On a un look qui ressemble à celui là :

Continuer la lecture de Coffre fort à mots de passe

Vérifier l’état d’un disque dur avec smartmontools

J’ai rencontré quelques soucis avec un disque Seagate IronWolf placé dans mon serveur Dell PowerEdge T310 depuis à peine quelques mois dans un RAID5 comme je l’évoque dans ce post. Il est sans cesse rejeté par le RAID que je dois reconstruire à chaque fois, et ça prend des heures. Pourtant je n’ai pas d’erreur de disques SMART flagrantes. Pour mémoire SMART est une technologie qui permet de monitorer les disques. Dans un récent post, j’avais expliqué comment utiliser smartmontools sous linux pour vérifier les disques avant de lancer une sauvegarde, dans ce post je vais détailler comment on peut vérifier l’état de santé avec cet outil dont l’équivalent pourrait être Seatools de Seagate sous windows.

Tout d’abord pour vérifier l’état du disque on tapera la commande suivante qui va lancer un test court

 smartctl -t short -d megaraid,7 -a /dev/sdb
 

L’option -d correspond au device pour ma part je pointe sur le disque de mon RAID à la septième position qui correspond à mon disque naze. Pour un disque SATA normalement le -d est inutile, en revanche pour un disque branché en USB (via un adaptateur ou une boîtier), vous avez le choix de mettre comme variable derrière -d sat, usbsunplus, usbcypress et usbjmicron. Dans la pratique, il faudra taper lsusb, vous allez retrouver votre disque dur branché enUSB, exemple avec un adaptateur SATA/USB

Bus 002 Device 010: ID 7825:a2a4 ULT-Best Best USB Device

Maintenant il faut se rendre sur cette page et voir à quel device correspond votre adaptateur ou boîtier, attention tous les périphériques ne sont pas listés, il faudra donc faire des tests avec tous les devices énumérés plus haut, pour ma part ça était -d sat.à la fois pour l’adaptateur SATA/USB et à la fois pour le boîtier USB. Avantage à linux car sous windows avec Seatools la plupart du temps il ne reconnait pas les adaptateurs et boîtiers USB.

Revenons au résultat du test court, cela donne un résultat comme cela

smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.6.6-server-1.mga7] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate IronWolf
Device Model:     ST3000VN007-2AH16M
Serial Number:    ZGY6KHBC
LU WWN Device Id: 5 000c50 0c47c70df
Firmware Version: SC60
User Capacity:    3 000 592 982 016 bytes [3,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5980 rpm
Form Factor:      3.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Sat Nov 21 09:29:23 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART Status not supported: ATA return descriptor not supported by controller firmware
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		(  601) seconds.
Offline data collection
capabilities: 			 (0x73) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					No Offline surface scan supported.
					Self-test supported.
					Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   1) minutes.
Extended self-test routine
recommended polling time: 	 ( 525) minutes.
Conveyance self-test routine
recommended polling time: 	 (   2) minutes.
SCT capabilities: 	       (0x50bd)	SCT Status supported.
					SCT Error Recovery Control supported.
					SCT Feature Control supported.
					SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   079   064   044    Pre-fail  Always       -       78583125
  3 Spin_Up_Time            0x0003   095   095   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       8
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   085   060   045    Pre-fail  Always       -       345223728
  9 Power_On_Hours          0x0032   094   094   000    Old_age   Always       -       6111 (85 55 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       8
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   099   000    Old_age   Always       -       4295032835
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   082   073   040    Old_age   Always       -       18 (Min/Max 15/25)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       0
193 Load_Cycle_Count        0x0032   075   075   000    Old_age   Always       -       50402
194 Temperature_Celsius     0x0022   018   040   000    Old_age   Always       -       18 (0 14 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   193   193   000    Old_age   Always       -       25
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       1894 (198 60 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       17183414698
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       6251948358

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%      6102         -
# 2  Short offline       Completed without error       00%      6078         -
# 3  Short offline       Completed without error       00%      6054         -
# 4  Short offline       Completed without error       00%      6030         -
# 5  Short offline       Completed without error       00%      6006         -
# 6  Extended offline    Completed without error       00%      5990         -
# 7  Short offline       Completed without error       00%      5982         -
# 8  Short offline       Completed without error       00%      5958         -
# 9  Short offline       Completed without error       00%      5934         -
#10  Short offline       Completed without error       00%      5910         -
#11  Short offline       Completed without error       00%      5886         -
#12  Short offline       Completed without error       00%      5862         -
#13  Short offline       Completed without error       00%      5838         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Sat Nov 21 09:30:23 2020

Use smartctl -X to abort test.

Continuer la lecture de Vérifier l’état d’un disque dur avec smartmontools

Sauvegarde de données

Depuis maintenant 20 ans la numérisation touche tous les domaines, dans le domaine privé, cela concerne des données de bureautique, les échanges par mail mais également tous les fichiers multimédia photo, vidéo et images. Récemment je me pensais à l’abri de la perte de données, je suis équipé depuis des années d’un serveur Dell PowerEdge avec RAID matériel acheté d’occasion sur Ebay (PowerEdge 840 puis T310) et je fais des sauvegardes régulières sur disque dur externe USB grâce à un script lancé automatiquement avec l’utilitaire cron. Les données les plus précieuses se retrouvent sur un autre disque externe que je stocke au boulot. Mon RAID était basé sur 4 disques Seagate ST2000DM01 de 2To chacun de 2015, alors certes le RAID n’est pas assimilable à de la sauvegarde, c’est juste un système de redondance qui dispatche les données sur plusieurs disques pour éviter de tout perdre quand un disque crashe, la tolérance au panne est donc censée être meilleure qu’avec un seul disque.

Il se trouve cependant que j’ai eu au printemps dernier une panne de mon RAID bas bruit, le RAID est passé en mode dégradé avec la perte d’un disque. Puis un second disque du RAID a commandé à défaillir, c’est là que j’ai commencé à m’en rendre compte car j’ai eu un certain nombre d’erreurs système qui remontaient. Dans ce post je relate cet incident. Il était temps de changer 2 disques de mon RAID qui avaient 5 ans, après avoir fonctionné quasiment 24h/24 7j/7 dans la période. Cette durée de vie me paraît correcte pour des disques bas de gamme. Je les ai remplacés par des Seagate IronWolf de 3To. Mon RAID 5 est donc maintenant constitué de 2 disques Seagate ST2000DM01 de 2015 et de 2 disques Seagate IronWolf de 3To ce qui donne une capacité utile de 5,5To. D’ailleurs il faut sans doute que je songe à changer les deux disques les plus anciens.

Après avoir réinstallé mon RAID avec les nouveaux disques j’ai redescendu la sauvegarde , c’est là que je me suis rendu compte qu’il manquait un paquet de fichiers. Sur le coup je n’ai pas compris car les sauvegardes avaient été régulières, j’ai reconstitué alors le fil du drame. Il y a eu un crash bas bruit sur le RAID qui a dégradé des données, la sauvegarde s’est faite normalement mais a supprimé les fichiers qui avaient disparu du RAID car corrompus. Mais quel crétin ! Je n’avais pas mis en place un test d’état de santé des disques et du RAID avant de lancer la sauvegarde. Du coup j’ai essayé de récupérer les fichiers supprimés de la sauvegarde avec Photorec, ça m’a pris beaucoup de temps (des mois !) car il y en avait pour des To, mais comme il y a eu plusieurs sauvegardes dans l’intervalle je n’ai récupéré au final que peu de choses. Dans l’histoire, j’ai perdu dans les 400 films et une centaine de vidéos perso 🙁

J’ai dû revoir de fond en comble ma pratique de la sauvegarde, mes données principales sont toujours stockées sur le RAID 5 et il existe toujours une sauvegarde journalière sur disque de USB externe. Mais j’ai rajouté des sauvegardes croisées avec d’autres PC que je lance manuellement avec unison au moins une fois par semaine et j’ai rajouté également des tests d’état de santé des disques, dès dégradation des disques les sauvegardes ne sont pas lancées, j’ai mis en place un système de mail automatique journalier qui m’informe de l’état des disques.

L’architecture est maintenant celle-ci :

Architecture de sauvegarde
Continuer la lecture de Sauvegarde de données

Installer un agenda kolab sur le webmail roundcubemail

Ma tendre et chère souhaitait pouvoir disposer d’un agenda qu’elle retrouverait sur le PC et sur son mobile pour se débarrasser de son agenda papier de moins en moins pratique. Comme je ne choisis pas la facilité et dans l’esprit que mes données ne se retrouvent pas quelque part aux US ou en Chine à la merci de hackeurs ou de revendeurs de données, j’ai choisi d’intégrer un plugin d’agenda au webmail Rouncube.

Pour mémoire je me repose sur mon serveur personnel Dell PowerEdge T310 qui tourne dans mon garage et qui fait office de cloud perso et sur lequel tourne Roundcube qui me permet d’accéder à mes mails de mon mobile comme expliqué par ici. J’ai choisi d’installer le plugin kolab, le détail de l’installation est donné par . Voilà ce que ça donne sur l’ordinateur

et sur le mobile

le tout est évidemment complètement synchronisé.

Continuer la lecture de Installer un agenda kolab sur le webmail roundcubemail

Piloter un caméscope MiniDV avec Mageia 7.1

J’ai récemment subi un crash disque où j’ai perdu malencontreusement des fichiers vidéo personels, dont certains issus d’enregistrement avec un caméscope MiniDV. Fort heureusement je n’avais pas bazardé mes bandes et mon vieux caméscope Canon MV530i miniDV que j’ai ressorti de la poussière.

Il dispose d’une connectique Firewire (norme IEEE1394) pour pouvoir faire la capture des K7 sur ordinateur. Je m’étais également débarrassé de mon PC qui disposait d’un port Firewire. Comme cette connectique est plutôt passée de mode, j’ai dû me rééquiper en achetant une carte Firewire pour une douzaine d’euros.


Voilà quelques étapes pour faire marcher tout ça sur une mageia 7.1, tout d’abord vérifier que la carte est bien installée avec lspci | grep 1394 on doit obtenir quelque chose comme cela :

04:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)

Ensuite j’ai branché mon caméscope et les modules Firewire se sont chargés automatiquement, un lsmod | grep firewire me donnera

firewire_ohci 49152 0
firewire_core 81920 1 firewire_ohci
crc_itu_t 16384 1 firewire_core


Dans le même temps les fichiers spéciaux sont bien créés sous /dev, en tapant ll /dev/fw* j’obtiens

crw——- 1 root root 243, 0 oct. 23 17:52 /dev/fw0
crw-rw—-+ 1 root video 243, 1 oct. 25 16:45 /dev/fw1


Mon caméscope utilise le fichier spécial /dev/fw1 et je n’ai changé aucun droit (mon utilisateur est quand même dans le groupe video), il faudra installer ensuite le package dvgrab. Puis en tant que simple utilisateur on tape dvgrab -i ça donne quelque chose comme cela

rom1394_0 warning: read failed: 0x0000fffff0000414
error reading config rom directory for node 0
Found AV/C device with GUID 0x0000850000543d2e
Going interactive. Press ‘?’ for help.
Winding Stoppedd” 01:01:31:16 “” sec


En tapant ? on obtient la liste des commandes :

q=quit, p=play, c=capture, Esc=stop, h=reverse, j=backward scan, k=pause
l=forward scan, a=rewind, z=fast forward, 0-9=trickplay, <space>=play/pause


on peut donc lancer des commandes vers le caméscope, ça marche plus ou moins bien suivant les modèles. Pour chaque cassette je rembobine, je lance la lecture, puis je clique sur c (pour capture) et c’est parti, il va sauvegarder en coupant avec des fichiers de 1Go à l’endroit où la commande dvgrab a été lancée. Autre méthode, en tapant la commande :

dvgrab -rewind -timestamp -format dv2

Cela va rembobiner, lancer la lecture et la capture en inscrivant un repère temporel à chaque fichier et enregistrer au format DV2. Les fichiers vont ressembler à ça dvgrab-2002.07.18_21-46-48.avi, par défaut ils commencent par dvgrab puis on retrouve la date et l’heure de début d’enregistrement. Pour le format des fichiers, vous trouverez une page très complète sur le sujet ici.

Maintenant il arrive que la commande dvgrab mouline et reste bloquée sur Waiting for DV… Dans ce cas il faudra décharger les modules Firewire avec rmmod et les recharger avec modprobe, je n’ai pas trouvé de solution plus simple (mis à part le reboot).

Il ne reste plus qu’à importer vos vidéos dans votre logiciel de montage préféré, à noter que Kdenlive, comme OpenShot Video Editor ou Pitivi ne disposent pas de fonctionnalités de capture avec Firewire alors qu’elle a pu exister par le passé, preuve s’il en est que cette connectique est en désuétude.