Назад | Перейти на главную страницу

Можете ли вы изменить версию метаданных в существующем массиве?

Итак, grub требует версии метаданных 0.90. Мне интересно, могу ли я изменить свои существующие массивы, чтобы использовать это вместо значения по умолчанию 1.2. Таким образом, мне не нужно делать переустановку. Если да, то как я могу это сделать?

Эта информация, вероятно, слишком поздно, чтобы помочь OP, но, возможно, она поможет кому-то другому.

Первая команда стирает суперблоки, а вторая команда создает новый массив, но предполагает, что устройства чистые. Я только что выполнил это, и все в порядке. Я определенно рекомендую сделать резервную копию, прежде чем делать это. У меня не было данных, которые нужно было терять, и, следовательно, не было возможности проверить целостность. Я просто хотел избежать еще 4-часовой повторной синхронизации.

$ 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

Создание массива с предположительно чистыми и несовместимыми метаданными, как было предложено выше, безусловно, может повредить существующие данные, поскольку блоки метаданных 0.90 и 1.2 различаются не только по размеру, но и по местоположению.

он может работать для 0.90 <-> 1.0, что является исключением.

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

В GRUB вики подтверждает:

Кроме того, (начиная с 1.96 + 20080724) GRUB может загружаться только с RAID, который использует суперблок метаданных версии 0.90 (то есть тот, который создан с параметром --metadata = 0.90 для mdadm).

Любопытно, что страница руководства для mdadm говорит

-e, --metadata =

Объявите стиль суперблока (метаданные рейда), который будет использоваться. По умолчанию для --create и для других операций установлено значение 0,90.

Я бы перепроверил с mdadm -Q -D <device> быть уверенным.

После этого, какой уровень RAID вы используете? Лучший сценарий, который я могу придумать для зеркала (RAID 1), был бы

  1. Делать резервные копии
  2. Размонтировать массив 0
  3. Удалить устройство A из массива 0 из n устройства
  4. Нулевой суперблок на устройстве A
  5. Создайте массив 1 с помощью устройства A и n-1 запчасти, явно использующие старый формат суперблока
  6. Повторите для оставшихся от B до n-1 устройства
  7. (Необязательно) перенумеровать массив

... но обязательно убедитесь, что вам абсолютно необходимо пройти через это!