GNU/Linux >> Belajar Linux >  >> Linux

Linux BTRFS - konversikan ke single dengan drive yang gagal

Baiklah, saya mengetahuinya dengan bantuan tautan Trello ini. Jika ada orang lain yang ingin melakukan ini, inilah prosedurnya.

Prosedur

Dari larik RAID1 yang terdiri dari dua disk, satu /dev/sda yang salah dan /dev/sdc lainnya terkenal-baik:

  1. Nonaktifkan pemasangan otomatis larik ini di /etc/fstab , mulai ulang . Pada dasarnya, kami ingin btrfs melupakan keberadaan larik ini, karena ada bug di mana ia masih akan mencoba menggunakan salah satu drive jika dicabut.
  2. Sekarang setelah array Anda dilepas, jalankan:

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

    mengganti sda dengan nama perangkat yang salah. Ini menyebabkan disk berputar ke bawah (Anda harus memverifikasi ini di dmesg) dan menjadi tidak dapat diakses oleh kernel.

    Atau :cukup keluarkan drive dari komputer sebelum booting! Saya memilih untuk tidak memilih metode ini, karena cara di atas berfungsi dengan baik untuk saya.

  3. Pasang larik Anda, dengan -o degraded modus.
  4. Mulai operasi penyeimbangan ulang dengan sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint . Ini akan mengatur ulang luasan pada drive yang dikenal baik, mengonversinya menjadi single (non-RAID). Ini akan memakan waktu hampir satu hari untuk diselesaikan, bergantung pada kecepatan drive dan ukuran susunan Anda. (milik saya memiliki ~700 GiB, dan diseimbangkan kembali dengan kecepatan 1 potongan 1GiB per menit) Untungnya, operasi ini dapat dijeda, dan akan membuat larik tetap online saat sedang berlangsung.
  5. Setelah selesai, Anda dapat menerbitkan sudo btrfs device remove missing /mountpoint untuk menghapus perangkat rusak yang 'hilang'.
  6. Mulai penyeimbangan ulang kedua dengan sudo btrfs balance start -mconvert=dup /mountpoint untuk memulihkan redundansi metadata. Ini memakan waktu beberapa menit di sistem saya.
  7. Anda selesai! Larik Anda sekarang adalah single mode, dengan semua redundansi dihapus.
  8. Bawa drive Anda yang rusak ke luar, dan pukul dengan palu.

Pemecahan masalah

  • Tolong, btrfs mencoba menulis ke disk saya yang rusak, mengalami kesalahan, dan memaksanya hanya untuk dibaca!
    • Apakah Anda mengikuti langkah 1, dan memulai ulang sebelum melanjutkan? Kemungkinan btrfs masih menganggap drive yang Anda putar ada. Mem-boot ulang akan menyebabkan btrfs melupakan kesalahan apa pun, dan membiarkan Anda melanjutkan.

Terima kasih atas kiriman Anda. Saya memiliki ide bahwa saya dapat menguji serangan, mengeluarkan drive dari ruang hotswap saya, menggunakan drive lain dan kemudian memasukkan kembali drive serangan. Dalam retrospeksi, ini adalah ide yang buruk dan sekarang saya membutuhkan ruang hotswap saya.

Inilah yang saya temukan. Sebagai 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

Perhatikan devi yang terdaftar untuk setiap drive. Man for brtrfs balance mengarahkan saya ke opsi devid, mengambil beberapa percobaan untuk mencari tahu cara kerja filter (awalnya mencoba devid=/dev/sdb1). Jadi upaya pertama Anda akan terlihat seperti ini.

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

Yang memberi saya kesalahan.

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

Inilah kesalahan dari dmesg:

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

Jadi ini final yang berhasil:

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

Semoga ini membantu orang lain.


Linux
  1. Partisi drive di Linux dengan GNU Parted

  2. Swapon gagal:Argumen tidak valid pada sistem Linux dengan sistem file Btrfs

  3. Dual boot Windows + Linux dengan enkripsi

  1. Konversi file audio dengan perintah Linux serbaguna ini

  2. Pulihkan sistem Anda dengan mode pengguna tunggal di Linux Mint / Linux Mint 12

  3. Cara Memperbarui Kali Linux Dengan Satu Perintah

  1. Konversi audio dalam batch di Linux dengan SoundConverter

  2. Lindungi penyimpanan eksternal dengan sistem enkripsi Linux ini

  3. Timpa Hard Drive dengan Nol di Linux:Cepat &Mudah!