Bisakah Anda mengubah versi metadata pada array yang ada?

21

Jadi grub membutuhkan metadata versi 0.90 Saya ingin tahu apakah saya dapat mengubah array yang ada untuk menggunakannya daripada default yaitu 1.2. Dengan begitu saya tidak perlu menginstal ulang. Jika ya, bagaimana saya bisa melakukannya?

xenoterracide
sumber

Jawaban:

5

The GRUB wiki menegaskan:

Juga, (pada 1.96 + 20080724) GRUB hanya dapat boot dari RAID yang menggunakan superblok metadata Versi 0.90 (yaitu yang dibuat dengan opsi --metadata = 0.90 untuk mdadm).

Anehnya, halaman manual untuk mdadm mengatakan

-e, --metadata =

Nyatakan gaya superblock (raid metadata) yang akan digunakan. Standarnya adalah 0,90 untuk --create, dan menebak untuk operasi lain.

Saya akan mengecek dengan mdadm -Q -D <device>memastikan.

Setelah itu, level RAID apa yang Anda jalankan? Skenario terbaik yang bisa saya pikirkan untuk mirror (RAID 1) adalah

  1. Ambil cadangan
  2. Lepaskan array 0
  3. Hapus perangkat A dari array 0 nperangkat
  4. Zero superblock pada perangkat A
  5. Buat array 1 menggunakan perangkat A dan n-1suku cadang, secara eksplisit menggunakan format superblock lama
  6. Ulangi untuk sisa B melalui n-1perangkat
  7. (Opsional) beri nomor ulang pada array

... tetapi sangat pasti periksa bahwa Anda benar-benar harus menjalani ini!

Andrew
sumber
jadi saya mengkonfirmasi itu sejak lama. Saya menjalankan raid10, f2. jelas menciptakan kembali array adalah apa yang saya coba hindari.
xenoterracide
Sudahkah Anda mencoba linux-raid at vger.kernel.orgmilis?
Andrew
aneh bahwa saya tidak mendapat pemberitahuan tentang ini. tidak, saya tidak mencoba. Saya hanya menghapusnya dan menciptakan kembali array. Saya akan menerima jawaban ini dengan solusi singkat yaitu TIDAK atau mungkin (sangat sulit)
xenoterracide
16

Informasi ini mungkin terlambat untuk membantu OP, tetapi mungkin itu akan membantu orang lain.

Perintah pertama menghapus blok super dan perintah kedua menciptakan array baru tetapi menganggap perangkat bersih. Saya baru saja melakukan ini dan semuanya tampak OK. Saya pasti akan merekomendasikan cadangan sebelum melakukan ini. Saya tidak punya data untuk hilang dan karena itu tidak memiliki integritas untuk memeriksa. Saya hanya ingin menghindari sinkronisasi ulang 4 jam lagi.

$ mdadm --zero-superblock /dev/sd[a-z]1
$ mdadm --create /dev/md0 --assume-clean \
    --level=10 --raid-devices=10 /dev/sd[a-z]1 --metadata=0.90
Vex Mage
sumber
1
mungkin terlambat untuk OP tetapi Anda menyelamatkan saya, terima kasih atas jawaban Anda
neofutur
7

Membuat array dengan asumsi-clean dan tidak konsisten metadata seperti yang disarankan di atas tentu berpotensi merusak data yang ada, karena 0,90 dan 1,2 blok metadata tidak hanya berbeda dalam ukuran tetapi juga lokasi.

mungkin bekerja untuk 0.90 <-> 1.0, yang merupakan pengecualian.

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

masc
sumber