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

Rétrospective des sorties windsurf 2020

Malgré une année marquée par la pandémie et deux confinements particulièrement frustrants d’une durée totale de 3mois cumulée, l’année a été assez positive car je compte à ce jour 54 sorties. J’en ferai probablement encore deux d’ici la fin de l’année, soit 56 sorties au total. Cela fait de 2020 une de mes meilleurs années, je n’étais pas sorti autant depuis 2003 ! Cela cache également une triste année de navigation en voilier avec quasiment aucune sortie du fait des conditions sanitaires, quoi de mieux qu’un sport individualiste comme la planche à voile pour respecter les distances.

Dans la pratique sur les 54 sorties, dont on retrouvera le détail par ici, je compte 34 en mode slalom eau plate et vent de 4bft à 5bft avec flotteur Exocet RS2 91l et voiles de 5.7 et 6.6 et 20 en mode vague et des vents de 5bft à 8bft avec flotteur JP Young Gun 70l et voiles de 3.4, 4.2 et 4.7. Voilà une vidéo résumant ces sorties :

C’est filmé avec une caméra GoPro HD4 Black et une GoPro Hero 8 qui l’a remplacée en sortie du premier confinement. La différence entre les deux modèles est phénoménale, notamment pour ce qui concerne l’algorithme de stabilisation de l’image hypersmooth, comme évoqué dans ce post. Comme d’habitude c’est monté sous linux avec le logiciel de montage vidéo Kdenlive.

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é.

Snorkeling en Corse

Alors que l’hiver s’installe on peut toujours se remémorer l’été passé histoire de se réchauffer. Contre vent et marée avec la crise du covid nous avons maintenu nos vacances en Corse, pour corser l’aventure, si je puis dire, en passant en plus par l’Italie et nous avons bien fait. Sur place je n’irai pas jusqu’à dire que c’était désert mais il y avait exceptionnellement beaucoup moins de monde que d’habitude et c’était d’autant plus appréciable. Aucun problème pour se garer, quelle que soit l’heure de la journée, pas de longue file d’attente, des plages loin d’être surchargées, calanques désertes, certainement pas génial pour les professionnels du tourisme mais top pour le touriste !

Farniente au pied du phare de la Pietra

Voilà donc une première vidéo issue de ce séjour, c’est un mix de toutes les sessions de snorkeling (palmes, masque et tuba en bon français), sur deux spots principaux, sur l’île Lavezzo qui fait partie du petit archipel des îles Lavezzi au large de Bonifacio et au pied du phare de la Pietra sur la commune de l’île Rousse.

C’est filmé avec une GoPro Hero 8 et monté sous linux avec kdenlive.

Pauvreté à l’île de la réunion

Je découvre dans le rapport 2020-2021 sur la pauvreté en France édité par l’observatoire des inégalités qu’il n’y a pas moins de 9 villes réunionnaises qui sont parmi les 20 villes de plus de 20000 habitants qui ont le taux de pauvreté le plus fort, dont cinq sont en tête ! On pourra retrouver ce triste classement par ici. Les trois premières villes sur le podium sont le Port, Saint-Benoît et Saint-Louis, elles comptent pas moins de 47%, quasiment la moitié, de leur population qui vit en dessous du seuil de pauvreté, c’est à dire avec un niveau de vie inférieur à 60% du niveau de vie médian (1063€ pour une personne seule en 2018). Un classement similaire a été établi sur la base du nombre de personnes pauvres, on retrouve les grandes villes de métropole qui forcément comptent beaucoup d’habitants, on retrouve néanmoins les deux plus grandes villes de la Réunion, à savoir Saint Denis et Saint Pierre, à la place respective de 9ème et 20ème place et Saint Paul à la 18ème place.

Cela illustre le fait que quasiment 4 réunionnais sur 10 vivent sous le seuil de pauvreté. A titre de comparaison cette étude de l’INSEE nous dit que la Seine Saint Denis qui est le département métropolitain le plus pauvre, avait un taux de 27,9% de pauvreté en 2017 à comparer au 38,3% réunionnais, la moyenne nationale étant de 14,5%. Le seuil des 20 % des plus pauvres est même à 242€ à la Réunion alors qu’il est à 585€ en Seine Saint Denis (chiffres 2011) !

Habitat insalubre dans le cirque de Mafate

D’après une autre étude de l’observatoire des inégalités qui date de 2013, à la Réunion l’indice de Gini est à 0,53 (plus il est proche de 1, plus les inégalités sont fortes) à comparer au 0,31 de la métropole. En résumé la Réunion est à un niveau d’inégalités équivalent à celui de la France à la fin du XIXème siècle. Paris qui est le département le plus inégalitaire de métropole avec un indice à 0,5 reste moins inégalitaire que la Réunion. Car ce qui caractérise la Réunion est qu’elle est le département français le plus inégalitaire, elle détient le record national du plus grand nombre de redevables de l’impôt sur la solidarité et la fortune (ISF) et dans le même temps celui des bénéficiaires du revenu de solidarité active (RSA) ! Autres chiffres, 30 % des plus riches ont un revenu cinq fois supérieur aux 70 % les plus pauvres.

Continuer la lecture de Pauvreté à l’île de la réunion

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

Garmin Forerunner 735XT suite et fin

Dans un précédent post je dressais un retour d’expérience d’utilisation de la montre GPS Garmin Forerunner 735XT. Ma pire crainte s’est concrétisée, j’avais quelque doute sur la solidité de la montre et en retour d’une sortie en planche à voile, j’ai constaté que l’écran était complètement fêlé. Elle a dû recevoir un choc en navigation, je m’en suis pas rendu compte sur le moment, vu qu’elle est “protégée” par ma combinaison. L’écran de protection supplémentaire sur l’écran n’a pas servi à grand chose ou peut être à empêcher une casse plus importante et une entrée d’eau.

C’est une grosse déception, cette montre est faite pour parader dans les salons, mais n’est absolument pas faite pour les activités sportives. Passez votre chemin si vous pratiquez le VTT, le trail, la randonnée, le kite, la voile ou comme moi le surf et la planche à voile, enfin tout sport où il y a un risque de chute ou de se prendre un coup. Je ne comprends pas que ce critère de solidité ait été totalement négligé par les ingénieurs de Garmin alors qu’il était bel et bien présent sur la génération précédente de Forerunner qui respirait la solidité.

Ma montre est maintenant totalement HS pour la planche à voile, je m’en sers plus que pour le footing, ça fait cher la montre du coup pour ce qu’en j’en fais. Je suis désespéré de constater qu’il n’existe pas sur le marché de montre connecté conçue pour être robuste, une sorte de montre G-Shock connectée.

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
%d blogueurs aiment cette page :