Загрузка Linux с деградированного RAID1 с /boot, установленного на md0

прежде всего, я хотел бы сказать, что я очень новичок в управлении RAID массивами в Linux, поэтому мои вопросы, вероятно, очень просты, но я не могу найти свой точный сценарий в интернете.

у меня система RAID1 с 2-мя жесткими дисками, и все разделы установлены поверх массива RAID, включая раздел / boot.
Сегодня mdadm предупредил меня, что массив был деградирован (вероятно, один из жестких дисков отказал), и массив автоматически превратился в деградированное состояние, когда я проверил следующим образом:

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[0]
      204736 blocks super 1.0 [2/1] [U_]

md2 : active raid1 sdb2[0]
      151858048 blocks super 1.1 [2/1] [U_]
      bitmap: 2/2 pages [8KB], 65536KB chunk

md1 : active raid1 sdb3[0]
      4092864 blocks super 1.1 [2/1] [U_]

затем я приступил к завершению работы сервера, заменил неисправный диск и попытался загрузиться с оставшегося диска, но теперь меня приветствует следующее сообщение после того, как GRUB попытается загрузить ядро:

Error 17: Cannot mount selected partition.

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

29
задан Railander
12.03.2023 11:26 Количество просмотров материала 2711
Распечатать страницу

2 ответа

Если я правильно понял, ваш первый диск (/dev/sda) является тот, который вы заменили. Кроме того, возможно, при установке grub вы пропустили его установку на оба диска, как это необходимо при установке RAID1.

проблема в том, что grub ищет первый жесткий диск, на котором не установлен grub. Быстрый поиск в интернете для вопроса воспитывает:https://www.novell.com/support/kb/doc.php?id=7010670. См. шаги там и на связанных страницах и исправьте это по мере необходимости. Для /dev/sdb вам нужно использовать hd1 в grub.

0
отвечен SACHIN GARG 2023-03-13 19:14

отвечая на мой собственный вопрос через 2 года...

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

все, что я упоминаю здесь делается:

  • CentOS 7 с ml ядро ELRepo.
  • оба устройства были добавлены к raid1 во время установки ОС (вот так) и все разделы были установлены поверх raid1 (/boot,/ и swap). LVM или нет, похоже, не имеет значения в этой теме.
  • как и установки CentOS 7 по умолчанию, он поставляется с GRUB2 вместо устаревшего GRUB большой различия как большую часть документации можно найти в интернете, относится к v1.
  • Мои настройки НЕ содержат EFI раздел. Из того, что я нашел, EFI не работает поверх RAID, поэтому большое внимание здесь, как процедура ниже не будет работать правильно, если у вас есть EFI.

мне стало ясно, что проблема заключалась в том, что CentOS устанавливал только загрузчик (GRUB2) на первое физическое устройство. Видимо, он использует крошечный MSDOS раздел (является ли раздел правильной терминологией? Может быть, "флаг"?), который не может работать поверх RAID. Из-за этого даже простая замена дисков приводит к невозможности загрузки системы, как если бы дополнительный диск у него есть полная копия системы, у нее нет загрузчика.

теперь рассмотрим решение, которое, надеюсь, достаточно простое: скопируйте загрузчик с главного диска на вторичный диск.

я не был уверен, как действовать, поскольку я не знал точно, как загрузчик вызывает устройства. Может быть, просто зеркальное отображение загрузчика с первого вызовет конфликты, поэтому возможно, мне пришлось инвертировать записи, чтобы он знал, какое устройство на самом деле который.

исследуя это, я нашел решение для использования dd для копирования загрузчика на второй диск. Я нашел сообщение от пользователя о том, что они всегда это делали и всегда работали, но для меня по какой-то причине этого не было.

пытаясь лучше понять, как работает GRUB2, я обнаружил, что он включает в себя инструмент "установить", который легко добавляет загрузчик на нужное устройство, и вуаля это было именно то, что мне нужно! Все, что я должен был сделать было:

grub2-install /dev/sdb

затем после замены дисков, система все еще загружается, как ожидалось! Половина миссии выполнена.

затем после подтверждения обоих устройств может загрузиться, я просто должен был удалить неисправный диск (теперь 'СДБ') из массива (документации это можно найти в интернете, она включает в себя маркировочные устройства, как не удалось и затем удаляя его из массива) и замены его на новый диск, а затем, наконец, добавив, что обратно до адреса проживания и, надеюсь, следует начните синхронизацию автоматически (вы можете следить за прогрессом с помощью watch cat /proc/mdstat).

кроме того, не забудьте запустить grub2-install снова на новом устройстве после завершения.

надеюсь, это может помочь кому-то еще сталкивается с той же проблемой.

если у вас есть раздел EFI, вам, вероятно, придется найти способ скопировать его в начало вторичного устройства (dd должны сделать работу, хотя я понятия не имею, какие параметры вы должны дать его).

0
отвечен Railander 2023-03-13 21:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

boot
grub
linux
mdadm
raid
Вверх