Здравствуйте, у меня очень странная проблема с созданием swraid в Debian Squeeze Linux. Я начал создавать RAID1 из существующей стандартной установки Debian на одном диске. Итак, я купил новый диск и начал следовать этому руководству:
http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-incl-grub2-configuration-debian-squeeze
Все прошло нормально, я создал начальный рейд с нового диска. Затем я успешно загрузил этот новый диск и добавил свой старый в этот массив. Старый диск успешно синхронизирован с рейдом. И после всех настроек я был готов к последней перезагрузке в мой новый массив Raid1.
Но внезапно дисковый массив требует загрузки. Grub запускается очень долго (выводит сообщения об ошибке чтения fd0). Когда я выбираю из меню, debian начинает загружаться очень медленно и останавливается с сообщением, что md0 не найден. В оболочке grub я обнаружил, что есть только / dev / md, но нет / dev / md0 или / dev / md1.
После многих часов испытаний мне наконец удалось заставить Raid работать. Используя ugky hack.
Пришлось добавить:
mdadm -A --auto=md /dev/md0
В нужном месте в:
/usr/share/initramfs-tools/init
и пересобрать initrd.img моего ядра
Эта команда запускает мой Raid и создает / dev / md0 и / dev / md1.
Но это тихий уродливый хак, и я не думаю, что он очень стабильный. Также он может сломаться в будущем с некоторым обновлением. Итак, мой вопрос: зачем мне это изменение в сценарии инициализации? Что-то не так с моим массивом? Как это исправить?
Спасибо за все подсказки. Я в полном отчаянии, теперь это заняло у меня всю ночь (12 часов). к
Итак, я нашел решение моей проблемы с загрузкой с mdadm Raid1. Мне очень стыдно, что мне потребовалось столько времени, чтобы понять это, потому что это довольно простая ошибка.
В /etc/default/mdadm
был раздел:
# INITRDSTART:
# list of arrays (or 'all') to start automatically when the initial ramdisk
# loads. This list *must* include the array holding your root filesystem. Use
# 'none' to prevent any array from being started from the initial ramdisk.
INITRDSTART='none'
Мне пришлось изменить его на:
INITRDSTART='all'
А затем я мог удалить свою настраиваемую команду из / usr / share / initramfs-tools / init и Linux без проблем загрузился из моего рейда 1.
С вашим массивом все в порядке, и обычно образ initrd изменяют, чтобы иметь дополнительные драйверы или другие приспособления для обеспечения процесса загрузки.
Другой трюк, который вы можете использовать, заключается в том, что при запуске большинство процессов инициализации монтируют корневой раздел только для чтения, поэтому вы можете указать его на / dev / sda1 или любой другой указатель, связанный с одним из подходящих разделов для загрузки, но когда вы поворачиваете ваш корень, укажите его на устройство mdadm. Вот как я поступил, когда у меня был набор дисков с программным рейдом.