This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

[TUTO] Préparation des disques avec Badblocks


Messages recommandés

Bonjour,

Un petit tuto pour préparer ces disques durs avec la fonction badblocks, en vue de les monter dans le nas.

Pour ma part il existe deux façon de faire : soit en ligne de commande ou au travers une tache.

      Pré requis :

Un nas (minimum 2 baies) avec un DSM installé dessus (sur un seul disque). Et crée un volume avec ce disque.

En effet si vous faite Install du nas avec deux disques ou plus, configuration de base  ou autre(SHR, raid1  etc.. ) Le DSM s’installe sur tous les disques dans ce cas il n’est pas possible de faire le test sur les disques monté dans le nas.

Par contre si vous êtes à l’aise avec les lignes de commandes sous putty, vous pouvez installer le DSM sans vous préoccuper de son installation sur tous les disques. Car il est possible de déclarer le disque on l’on va faire le test comme « Fail » et de le réintégrer à la fin du test. Sujet traité dans la 2eme méthode comme variante. (vue que c’est bien décrit cela doit être à la porter de tous ) Pas la peine de faire le volume dans ce cas

Wincp et ou Putty.

Télécharger Wincp à l adresse suivante https://winscp.net/eng/download.php

Télécharger putty à l adresse suivante http://www.putty.org/

Ps: toto est un nom générique de répertoire

 Début

Monter le disque à tester dans le nas.

Activer le service SSH, pour cela aller dans le Panneau de configuration, onglet Terminal & SNMP pour activé le service SHH.
Faire Appliquer

Désactiver le service SSH une fois le badblocks fini (Si vous souhaitez le laisser ouvert, je vous conseille de lire le tuto Sécuriser les acces à son nas) .

image.png.52e6342a3bc4b17059383b4599bfa1b6.png

1er méthode par une Taches :

En premier lieu il faut  Crée un dossier partager dans le quel le fichier log sera crée (il sert a voir l avancement du badblock. Pour cela : Panneau de configuration\ Dossier partagé

J’ai mis comme nom toto car c’est à lui que je fais référence plus loin (vous pouvez changer mais faudra penser à le changer partout)

image.png.ae8c023251012b79506c83a784462e9e.png

Pour cela il faut aller Panneau de configuration\ planificateur de tache (sans date de lancement pour lancer le badblocks, on la lance manuellement) .

Cliquer sur Créer pour la créer et sélectionner Script défini par l'utilisateur

image.png.07a9306a44d1a3383c5c30e5cbd46313.png

 Dans la 1er fenêtre enlever la sélection sur Activé, ensuite aller sur Paramètre de tache

image.png.428895b3632399620260f8eae95f88bb.png

  • Dans celle-ci à la partie Script défini par l'utilisateur mettre cette ligne de commande : (commande non destructive argument -n). Le tutos est expliqué avec celle-ci

Par contre on peut faire un test plus poussé avec une commande dite destructive (écriture sur le disque ) argument –w ; pour cela cas on remplace l’argument –n par –w. Dans ce cas le test met 3 fois plus de temps ce qui peut être problématique dans certains cas  (disque de gosse capacité ex >10to, voir cas un grosse quantité de disque à tester).

 badblocks -nvs -c 98304 /dev/sdX > /volume1/toto/sdX.log 2>&1 &

Option  –c 98304 sert à définir le nombre de bloc testé par passe, la valeur de 98304 correspond à 1Go de Ram. Sans valeur c’est 64 par défaut (dans tous les cas il faut un multiple de 64).

Si vous avez un nas avec peu de RAM le  -c 98304 peu être problématique réduisait la valeur. Pour savoir comment calculer la valeur de l'argument -c voir en fin de tutos.

  • On peut rajouter option –f aussi pour les périphérique déjà monter. Dans notre cas un disque initialisé. Cela donne

  badblocks -nvsf -c 98304 /dev/sdX > /volume1/toto/sdX.log 2>&1 &

  • Idem pour l’option –b qui permet de spécifier la taille des blocs testé par passé, par défaut elle est de 1024 si l’on ne spécifie pas cet argument. En règle générale on met comme valeur 4096, cela donne.

  badblocks -nvs -c 98304 –b 4096 /dev/sdX > /volume1/toto/sdX.log 2>&1 &

Le X correspond à la lettre du disque que l on veut tester.

Dans le NAS les disques sont nomme comme suivant sd + une lettre de l’alphabet :
                Disque 1 : sda
                Disque 2 : sdb
                Disque 3 : sdc
                Disque 4 : sdd

200229051233424717.jpg

Ici je fait le test sur le disques N°2

Faire Ok ensuite

Puis sélectionner le script et cliquer sur Exécuter.

image.png.ba06094b92b784658104a89c833740b7.png

Pour savoir, ou en est le badblock:

Il faut lancer wincp et renseigner les cases : Non d'hôte, Nom d'utilisateur et Mot de passe.

image.png.d9a8da092bf89ec9da52eba40ae6e0eb.png

Puis cliquer sur connexion

Si tout ce passe bien on doit avoir cette fenêtre

image.png.649f749ed7751de50feeac2c990bd4a7.png

Ensuite double cliquer sur le répertoire Volume1

image.png.374e8c2d73aa2c745ae611b9802a3425.png

Idem pour le répertoire toto

image.png.6a64fe016633ffe5c1510a2ec7fd0dd2.png

Faire un double clique sur le fichier sdX.log pour voir l’avancement.

Quand c’est fini la dernière ligne doit indiquer 100% et bad blocks found. (0/0/0 errors )

     Remarque :

Dans certain cas cela ne fonctionne pas, dans ce cas il faut crée le répertoire toto avec wincp et lui conférer les bons droits

Pour cela création de répertoire, pensez à être sur le volume1 

Puis remplir la boite de dialogue comme suit.

180221061208919427.jpg

 

2eme méthode en ligne de commande

Se connecter sur le nas avec Putty, définir l’adresse Ip du nas

image.png.dc015238a026fc453b9fd83c806f0880.png

On arrive à une fenêtre de ce type :
A login as.
Au password

image.png.051ca148da06d7b47c0b60bf004277d8.png

Ensuite il faut passer en mode Root pour cela il faut taper dans celle-ci :  sudo –i

Et mettre la password du compte admin

image.png.a23ac89f1f36acbb81e6a6c1149eb282.png

Dans cette nouvelle fenêtre taper la commande suivante pour lancer le badblocks

badblocks -nvs  -c 98304 /dev/sdX > /volume1/toto/sdX.log 2>&1 &

Pour les explications (argument, etc.. ) voir plus haut.

Si vous avez le message d'erreur suivent suite à la commande badblock "/dev/sdb is apparently in use by the system; it's not safe to run badblocks!"

Essayer cette commande

badblocks -nvsf /dev/sdX > /volume1/toto/sdX.log 2>&1 &

Voir la progression du test

il faut lancer la commande suivante dans le terminal

tail -f /volume1/toto/sdX.log

  Variante pour déclare le disque « fail »

Affaire avant de lancer le test pour déclare le disque « Fail » taper cette commande dans la fenêtre de putty :

mdadm /dev/md0 --fail /dev/sdX1

Puis

mdadm /dev/md0 --remove /dev/sdX1

ensuite

mdadm --zero-superblock /dev/sdX

Le 0 correspondent à la partition sur les disques, pour le X voir plus haut.

Faire de même pour la partition 1 et 2 (en effet il existe 3 partition sur un disque monter dans le nas : 0 pour le DSM, la 1 pour le swap et la 2 pour les volumes c’est celle-là qui est monté en raid).

Ensuite on peut passer au lancement de la commande badblocks.

A la fin du test il faut répare le DSM, pour cela gestionnaire de stockage \volumes \ réparer.

   Fin de la variante.

Badblocks et les disques USB

Pour faire simple ce n’est pas plus compliquer que la description ci-dessus

Dans un premier temps il faut brancher le boitier du disque USB au nas (en USB3 si possible)

Par défaut le disque est déclaré en sdq .

Pour ceux qui ne sont pas sûr, vous pouvez vérifier cette info en ligne de commande avec Putty (voir explication plus haut)

Ensuite il vous faut taper cette ligne de commande dans la fenêtre : fdisk –l

badblock usb1.JPG

badblock usb2.JPG

Ensuite a vous de voir si vous voulez lancer le badblock au moyen d’une tache ou en ligne de commande.

  • Dans tous les cas celle-ci sera du type :

badblocks -nvs  -c 98304 /dev/sdq > /volume1/toto/sdq.log 2>&1 &

  • On peut mettre l’argument f pour forcer le démontage de la/les partitions ce qui donne :

badblocks -nvsf  -c 98304 /dev/sdq > /volume1/toto/sdq.log 2>&1 &

  • Voir l'argument -b (explication en 1er partie de tutos)

Ensuite le badblocks se comporte comme décrit plus haut.

 

Remarque pour les versions Série + et Série XS+/XS

Cette remarque n’est valable que pour les personnes qui on des nas avec pas mal de RAM (2Go et plus)

On peut accélère le badblocks en modifiant la mémoire allouer a celui-ci  (l’argument –c 98304)

Pour cela il faut calculer cette valeur Max elle dépend de la RAM installer sur le nas. (on n’est pas obligé de prendre le max de mémoire au final  a vous de voir)

Exemple d’un nas avec 8Go :

8*1024=8192Mo

(8192 x 3)/32 =768Mo I

Il faut encore la convertir en Ko ce qui donne  768 x 1024 = 786432Ko

Le 786432Ko c’est la valeur max pour un disque, si on lance le badblocks sur 3 disques il faut la diviser par 3.

Donc cela donne pour un disque l’argument suivant :

-c 786432 è ( badblocks -nvs  -c 786432  /dev/sdq > /volume1/toto/sdq.log 2>&1 & )

Pour plus d’explication voir ici

https://www.pantz.org/software/badblocks/badblocksusage.html

 

Tous sur la commande Badblocks

http://manpages.ubuntu.com/manpages/xenial/fr/man8/badblocks.8.html

 

Modifié par firlin
Maj du Tutos ajout argument -w et -b
Lien à poster
Partager sur d’autres sites
  • Réponses 416
  • Created
  • Dernière réponse

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Bonjour, Un petit tuto pour préparer ces disques durs avec la fonction badblocks, en vue de les monter dans le nas. Pour ma part il existe deux façon de faire : soit en ligne de commande ou

@BakaNeko57 Ton disque dans la baies N°2 est bien initialisé ? (création d'un volume sur celui-ci) .Tu as noté quoi en haut a droit de ton volumes 1 ( SHR sans protection de données ? ) . @e

Bonjour DaG33K, Oui tu es bon pour formater tes disques sur PC ou mac. Le dossier toto faut le crée et lui donné les bon droit.    

Posted Images

Merci pour ces informations. Je fais les essais directement depuis une machine dédiée … Si quelques secteurs défectueux (erreur ID), c'est retour fournisseur.

Une idée de comment fonctionne les logiciels constructeurs ? Type Seatools / Datalife Guard & all ? J'utilise généralement UBCD.

Pas eu de pb en prod jusque la … i.e les disques ayant un pb ont été détectés immédiatement !

Le pb de cette procédure est que ça mobilise le NAS … je cherche quelque chose qui permette de faire ça en parallèle. UBCD permet de le faire mais faut plusieurs machine :D

Lien à poster
Partager sur d’autres sites

Quand tu as un multi baie non cela ne le monopolise pas vraiment, surtout à partir du moment où tu as déjà le système qui tourne dessus.

Les logiciels constructeurs ont une tolérance très laxiste... la ou badblock ne fera pas de pitier... pour faire simple.

Concernant la durée, cela dépend du modèle... pour un 4To sur un modèle J c’est environ 40h, contre une journée pour un modèle + (je l’ai fait avec plusieurs modèle de J et +)

Lien à poster
Partager sur d’autres sites
Il y a 10 heures, apossium a dit :

Le pb de cette procédure est que ça mobilise le NAS

Tu peux très bien recycler un vieux nas en DSM5.x pour faire ça typiquement un DS410J fait très bien l’affaire.

Il y a 10 heures, Einsteinium a dit :

pour un 4To sur un modèle J c’est environ 40h, contre une journée pour un modèle + (je l’ai fait avec plusieurs modèle de J et +)

Justement j’en ai fait un récemment sur un 4To dans un DS212 cela a pris pas loin de 7 jours. Donc en 40H je ne vois pas comment tu fais. J’en ai un autre sur un DS210J

Je sais qu’il y a une commande pour le faire avancer plus vite.

Lien à poster
Partager sur d’autres sites

Merci @firlin et @Einsteinium.

Le problème est que si ca mobilise 7 jours pour 4 To … je n'imagine même pas pour 8 To x 3 voire 5 disques …

Pour 8 To faut à peu près 24H avec le logiciel constructeur (me souviens plus).

Je l'intégrerai dans mon offre dans une autre forme dans ce cas (une option selon intérêt client).

Cela me paraît difficile d'immobiliser des machines et des disques autant de temps sans facturer qqchose de cohérent …

- cela implique une préparation préalable, et donc un cout par disque plus important.

- sans parler des ventes qui ne sont pas garanties à l'avance donc je peux pas faire de prévisionnel … et vérifier les disques à l'avance.

Merci encore pour ces précisions !

J'attends le retour de @InfoYANN pour savoir ce que l'on peut accélérer c'est intéressant !

Si on a un NAS avec une voire deux baies disponibles, et bcp de RAM on peut aller encore plus vite !

C'est possible de faire les essais en parallèle sur la même machine ?

 

Lien à poster
Partager sur d’autres sites

Perso, je passe par le paquet communautaire "Disk Utils" et ensuite avec une connexion SSH , je tape cette commande :

screen /bin/sh -c '/usr/local/diskutils/sbin/badblocks -wv -b 4096 -c 250000 /dev/sdb > /tmp/badblocks_sdb.log 2>&1'

La valeur 300 000 étant en gros l'attribution de la RAM ce qui correspond à 3 Go de RAM (environ).

 

Pour 1 Go, la valeur est d'environ 98304 . Ce tuto a été trouvé sur HFR+ à l'époque et j'ai modifié la valeur car j'avais 8 Go de RAM au total dans mon NAS.

 

Lien à poster
Partager sur d’autres sites

Bon bah voila @InfoYANN pourquoi tu as eu autant de temps... tu as fait un test destructif... tu modifies même la taille de block... bref à ne pas faire sauf si l’on veut y mettre une semaine...

Et avant qu’on me le demande, la 40ene d’heures c’était sur des modèles 115J et 215J.

Lien à poster
Partager sur d’autres sites

Test destructif ? Pourquoi ça ? Ça a plutôt été rapide dans mon cas pour 4 passes complètes par disque. Je n'ai plus les stars exactes mais si mes souvenirs sont bons c'était plié en trois ou quatre jours.


Envoyé de mon iPhone en utilisant Tapatalk

Lien à poster
Partager sur d’autres sites

Le & est pour lancer la commande en arrière plan. Cela permet également de faire autre chose avec le shell … attention le programme est fermé après fermeture du shell (selon moyen connexion) !

Je ne vois pas de différence avec ou sans sinon.

nota : préférer un script avec nohup : nohup sh script_perso.sh & (afin que le processus fonctionne même après fermeture shell).

--

Par ailleurs je ne vois pas non plus (mise à part côté capacité RAM) de différence entre les séries DS J / + / Play pour ce genre de vérification.

Pour ce type de programme c'est pas le proc qui limite c'est les I/O et la RAM … donc je ne comprends pas d'ou viendrait les différences à capacité mémoire identique !

Avec un peu de recul, l'opération est quasi celle d'une copie de fichier … donc les temps devraient être du meme ordre de grandeur qu'une copie …

Donc cela dépend de l'opération bien évidemment, mais aussi du reste de la chaine (bande passante, disque etc …).

7 jours me paraissent très longs (je ne les discute pas) pour une "copie" de 8 To.

nota : j'essaye de trouver une cohérence ;)

 

Modifié par apossium
Lien à poster
Partager sur d’autres sites
  • 1 month later...

Salut à tous,

J'ai reçu les disques dur ce matin :)

J'ai donc installé les 3 disques dans la bête (ds918+), utilisé l'assistant démarrage jusqu'à arriver sur le bureau DSM. J'ai pour bien commencer voulu suivre ce tuto. Je n'ai donc créer aucun volume.

J'ai décidé de suivre la méthode avec tous les disques installé dans le NAS donc DSM sur les 3 disques si j'ai bien suivi et donc obligé de déclarer le disque que je veux tester comme fail.

Jusque là tout va bien je me suis bien connecté via putty sur le NAS en root.

Une fois après avoir lancé la commande " mdadm /dev/md0 --fail /dev/sdb1 " pour déclarer mon disque 2 comme fail j'ai bien dans le gestionnaire de stockage le DSM qui m'indique échec de partition système, normal.

C'est ensuite que j'ai un message qui me dit "mdadm:option --zero-superblock not valid in manage mode" quand j'essaye la commande " mdadm /dev/md0 --remove /dev/sdb1 mdadm --zero-superblock /dev/sdb1"

J'ai donc essayé de créer un volume sur chaque disque pour pouvoir les tester indépendamment mais idem. j'ai donc supprimé les volumes et retenter de reprendre de zéro mais pas mieux

J'ai du loupé un truc ? :rolleyes:

 

pour info je suis en DSM 6.1.3-15152 Update 8  

Lien à poster
Partager sur d’autres sites

Salut @firlin,

J'ai donc repris de zéro, suppression de tout volume existant sur les 3 disques. Je déclare le disque 2 "fail" la led du disque 2 devient bien orange sur le boitier et dans le gestionnaire de stockage disque 2 en rouge.

j'ai fait comme tu m'as dit lancer les commande l'une après l'autre, les commandes ont l'air de bien passer. (je l'avais essayé hier)

Je me confronte à un autre soucis lorsque je tape la commande "badblocks -nvs /dev/sdb > /volume1/toto/sdb.log 2>&1 &"      j'ai l'erreur /volume1/toto/sdb.log: No such file or directory surement car je n'ai pas créer manuellement le dossier toto via winscp ?

j'ai donc relancé la commande avec "badblocks -nvs /dev/sdb > /volume1/sdb.log 2>&1 &" j'ai bien le fichier sdb.log qui se créer à la racine du dossier /volume1

Quand j'ouvre le fichier log voici le message inscrit "/dev/sdb is apparently in use by the system; it's not safe to run badblocks!"

merci à toi :)

Modifié par devil344
grillé
Lien à poster
Partager sur d’autres sites

j'ai pu créer sans soucis le dossier toto et les droits sont bon "drwxr-xr-x 2 root root 4096 Oct 29 12:21 toto"

du coup quand je lance la commande de ton tuto je n'ai plus le message d'erreur comme quoi le dossier n'existe plus et le fichier log est bien dans le dossier toto.

Mais j'ai le même message d'erreur "/dev/sdb is apparently in use by the system; it's not safe to run badblocks!"

En cherchant sur le forum je suis tombé sur un post où quelqu'un avait le même message, on lui a préconisé de rajouter un argument f à la commande.

J'ai donc lancé la commande " badblocks -nvsf /dev/sdb > /volume1/sdb.log 2>&1 &" et la ça fonctionne le test est en cours.

l'argument f force visiblement à démonter le disque dur.

Soit j'ai oublié ou mal fait une manip mdadm avant de lancer la commande badblocks pour avoir ce message d'erreur ?

 

Merci à toi pour tes réponses, en espérant que cela pour aura aidé pour les suivant :)

Lien à poster
Partager sur d’autres sites

Je viens d'effectuer la verification des badblocks sur mes deux HGST 8To NAS (en même temps).
Le processus a pris 23 heures et 45 minutes pour le premier disque et 27 heures et 13 minutes pour le deuxième.
Il n'a trouvé aucune d'erreur.

Merci beaucoup du tutoriel @firlin !             

Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.