У меня есть четыре диска по 500 ГБ, которые были настроены как том Linux Software-RAID 5 во время установки Debian (рядом с системным диском, который является SSD). Один из дисков (sda) вышел из строя, и теперь я пытаюсь его заменить, но у меня возникают проблемы.
После удаления неисправного диска из массива в mdadm я заменил его другим запасным диском на 500 ГБ, который поставлялся с новым купленным компьютером. На диске был раздел NTFS с Windows (сразу был заменен на SSD).
Первая попытка пошла (более или менее) неправильно - NTFS3G увидела раздел, и я смог добавить том NTFS в массив, и он начал восстанавливать. Использование NTFS под моим RAID определенно не входило в мои намерения, поэтому я остановил перестройку и начал заново разбивать диск.
Сначала я пробовал разметить вручную с помощью fdisk (макс. Размер, значения по умолчанию, тип раздела «fd») - не сработало, mdadm отклонил sda1. Быстрая проверка с помощью fdisk - начало, номер блока и конец не совпадают - хорошо, я вижу проблему.
Второй попыткой было скопировать данные о разделах с одного из других дисков с помощью "sfdisk -d / dev / sdd | sfdisk / dev / sda". Я даже обнуил первые 512 байт, как рекомендовал sfdisk в конце его комментариев. По сравнению данные разбиения - начало, конец и количество совпавших блоков - выглядят хорошо.
Но теперь mdadm сообщает мне, что / dev / sda1 не является блочным устройством, и не позволяет мне его добавить. Но можно уничтожить данные о разделах на / dev / sda и передать mdadm весь диск, и он будет восстановлен, но сейчас это выглядит как-то неправильно:
Number Major Minor RaidDevice State
4 8 0 0 active sync /dev/sda
1 8 17 1 active sync /dev/sdb1
2 8 33 2 active sync /dev/sdc1
3 8 49 3 active sync /dev/sdd1
И я определенно не очень хорошо себя чувствую, когда fdisk теперь не находит разделов на / dev / sda - в случае сбоя системы кажется немного сложнее собрать массив в другой системе, когда весь диски используются вместо разделов (см. также: Вот).
Что я пропустил? Как я могу сказать mdadm использовать раздел для своего RAID? Или кто-нибудь все же порекомендует использовать целые диски (и даже преобразовать другие)? Или действительно имеет смысл то, что там делал установщик debian (настраивал разделы на всех дисках, чтобы создать RAID из разделов)?
Надеюсь, я не дал слишком много текста и слишком много деталей, но теперь я немного сбит с толку, потому что сделал все, как рекомендовано в нескольких уроках, и теперь я натыкаюсь на эти основные вопросы ...
Спасибо за помощь!
Мне нравится заполнять старые диски нулями перед их перепрофилированием для использования в mdadm. Это делает привод свежим и позволяет избежать подобных проблем. Это заполнит / dev / sda нулями ...
dd if=/dev/zero of=/dev/sda bs=1M
Прежде всего, я не думаю, что есть что-то плохое в использовании полного диска для mdadm. Другими словами, ваша установка теперь работает, у вас не будет никакой пользы от того, чтобы возиться с ней дальше. Из ответа, о котором вы говорите:
RAID-on-partition имеет свое применение, но когда вы используете диски в настройке псевдо-пула хранения, вам иногда лучше использовать «весь диск» вместо «разбиения» элементов RAID.
Теперь, если вы все равно хотите использовать разделы: то, что вы сделали в первый раз, было правильным, но похоже, что ядро не зарегистрировалось /dev/sda1
. Либо ядро не зарегистрировалось (просто перезагрузитесь, и оно решит само), либо вы использовали GPT-разделение для других дисков (какой sfdisk не поддерживает AFAIK - вы просто скопировали защитную MBR). Попробуйте еще раз с помощью такого инструмента, как gdisk или gparted.
Вы можете удалить /dev/sda
из рейда (пометив как сбойный, удалив его из массива), сделайте разумный макет раздела (если вы используете GPT, убедитесь, что вы используете gdisk или подобное), перезагрузитесь, если необходимо, и добавьте /dev/sda1
к вашему массиву RAID.