GNU/Linux >> Tutoriels Linux >  >> Linux

Linux BTRFS - convertir en single avec un lecteur défectueux

Très bien, je l'ai compris avec l'aide de ce lien Trello. Au cas où quelqu'un d'autre voudrait le faire, voici la procédure.

Procédure

À partir d'une matrice RAID1 de deux disques, un /dev/sda qui est défectueux et un autre /dev/sdc bien connu :

  1. Désactiver le montage automatique de ce tableau dans /etc/fstab , redémarrer . Fondamentalement, nous voulons que btrfs oublie que ce tableau existe, car il y a un bogue où il essaiera toujours d'utiliser l'un des lecteurs s'il est débranché.
  2. Maintenant que votre tableau est démonté, exécutez :

    echo 1 | sudo tee /sys/block/sda/device/delete

    remplaçant sda avec le nom d'appareil défectueux. Cela provoque l'arrêt du disque (vous devriez le vérifier dans dmesg) et devient inaccessible au noyau.

    Alternativement :retirez simplement le lecteur de l'ordinateur avant de démarrer ! J'ai choisi de ne pas opter pour cette méthode, car ce qui précède fonctionne bien pour moi.

  3. Montez votre tableau, avec -o degraded mode.
  4. Commencer une opération de rééquilibrage avec sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint . Cela réorganisera les étendues sur le lecteur connu en bon état, en les convertissant en single (non RAID). Cela prendra presque une journée, selon la vitesse de votre disque et la taille de votre baie. (le mien avait environ 700 Gio et était rééquilibré à un rythme de 1 morceau de 1 Gio par minute) Heureusement, cette opération peut être interrompue et maintiendra la baie en ligne pendant qu'elle se produit.
  5. Une fois cela fait, vous pouvez émettre sudo btrfs device remove missing /mountpoint pour supprimer le périphérique défectueux "manquant".
  6. Commencer un deuxième rééquilibrage avec sudo btrfs balance start -mconvert=dup /mountpoint pour restaurer la redondance des métadonnées. Cela prend quelques minutes sur mon système.
  7. Vous avez terminé ! Votre tableau est maintenant single mode, avec toute redondance supprimée.
  8. Amenez votre disque défectueux à l'extérieur et frappez-le avec un marteau.

Dépannage

  • Au secours, btrfs a essayé d'écrire sur mon disque défectueux, a généré une erreur et l'a forcé en lecture seule !
    • Avez-vous suivi l'étape 1 et redémarré avant de continuer ? Il est probable que btrfs pense toujours que le lecteur que vous avez arrêté est présent. Le redémarrage entraînera l'oubli de toutes les erreurs par btrfs et vous permettra de continuer.

Merci pour votre message. J'ai eu cette idée que je pouvais tester le raid, sortir le lecteur de ma baie de remplacement à chaud, utiliser un autre lecteur, puis remettre le lecteur de raid en place. Rétrospectivement, c'était une mauvaise idée et maintenant j'ai besoin de ma baie de remplacement à chaud.

Voici ce que j'ai trouvé. En tant que root :

# sudo btrfs fi show
Label: 'disk'  uuid: 12817aeb-d303-4815-8bba-a3440e36c62c
Total devices 2 FS bytes used 803.10GiB
    devid    1 size 931.51GiB used 805.03GiB path /dev/sda1
    devid    2 size 931.51GiB used 805.03GiB path /dev/sdb1

Notez le devid répertorié pour chaque lecteur. L'homme pour l'équilibre brtrfs m'a conduit à l'option devid, a pris quelques essais pour comprendre comment les filtres fonctionnaient (en essayant initialement devid=/dev/sdb1). Donc, votre première tentative ressemblera à quelque chose comme ça.

# btrfs balance start -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Ce qui m'a donné une erreur.

ERROR: error during balancing '/media/.media': Invalid argument
There may be more info in syslog - try dmesg | tail    

Voici l'erreur de dmesg :

BTRFS error (device sdb1): balance will reduce metadata integrity, use force if you want this

Voici donc la finale qui a fonctionné :

# btrfs balance start -f -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Espérons que cela aide quelqu'un d'autre.


Linux
  1. Partitionner un disque sous Linux avec GNU Parted

  2. Convertissez des fichiers audio avec cette commande Linux polyvalente

  3. Récupérez votre système avec le mode mono-utilisateur dans Linux Mint / Linux Mint 12

  4. Comment mettre à jour Kali Linux avec une seule commande

  5. Swapon a échoué :argument non valide sur un système Linux avec le système de fichiers Btrfs

Créer une clé USB amorçable avec Ventoy WebUI sous Linux

Comment convertir des packages Linux avec Alien

Réinitialiser Linux Desktop aux paramètres par défaut avec une seule commande

Comment convertir un répertoire en partition sous Linux

Passer à Linux ? Apportez votre Google Drive avec vous

Convertir les onglets en espaces dans le terminal Linux avec la commande Expand