У меня есть файловый сервер RHEL 6. Он содержит два идентичных диска SATA емкостью 2 ТБ. Оба должны содержать один раздел, который занимает все пространство на диске (и раньше). Когда я настроил систему, это означало, что у меня были /dev /sda1 и /dev /sdb1, которые составляли два активных члена моего raid-массива. В то время оба раздела охватывали все цилиндры привода. /dev /md0 отображается на /. (Для /boot или чего-то еще нет отдельных разделов.)

Недавно sda удалили из рейда из-за ошибки адресации lba, и - после проверки диска - я бездумно добавил /dev /sda в рейд вместо /dev /sda1. Когда я осознал свою ошибку, я установил /dev /sda как неисправный, удалил его из рейда и решил воссоздать /dev /sda1 как один раздел, который охватывает весь диск, и повторно добавить его в рейд.

Мне не удалось выполнить эту миссию, потому что я не могу получить раздел /dev /sda1, соответствующий размеру раздела /dev /sdb1.

Оба привода идентичны, как указано ранее, и поэтому имеют одинаковое количество цилиндров. Допустим, это число X. fdisk позволит мне создать раздел /dev /sda1, который идет от цилиндра 1 к цилиндру X. Отлично. Но MD не позволит мне добавить это в массив, потому что он говорит, что размеры не одинаковы. Итак, я посмотрел на /dev /sdb1 через fdisk, и вот в чем дело: он идет от цилиндра 1 к цилиндру X+1! А?

Может кто-нибудь объяснить, что происходит со мной и сказать, как это исправить?

3 ответа3

0

Вы можете столкнуться с ошибкой округления при выборе последнего цилиндра. Попробуйте указать немного меньший размер раздела и позвольте программному обеспечению разделов найти его для вас.

0

Обновление: я сделал наоборот. Я удалил /dev /sdb1 из md0, попытался переразметить его, а затем заново добавить /dev /sdb1. Это также не сработало, поскольку /dev /sda теперь на один цилиндр больше, чем /dev /sdb1, а /dev /sda является частью md0. Поэтому я добавил /dev /sdb (а не его раздел) в md0. Это сработало. Так что теперь я добавил /dev /sda и /dev /sdb в /dev /md0. По крайней мере, есть симметрия. Теперь у меня есть новая проблема, касающаяся grub, и я отправил дополнительный вопрос по ней.

0

Во-первых, я понятия не имею, что происходит. Но я думаю, что вы все равно можете получить RAID, состоящий из разделов. Во-первых, вытрите начало /dev /sda, чтобы очистить любую таблицу разделов, подпись RAID или что-нибудь еще (будьте осторожны, это уничтожит данные на sda)

dd if=/dev/zero of=/dev/sda bs=1M count=10

Затем попробуйте один из следующих

Интерактивный fdisk:

  1. Выполните команду 'fdisk -lu /dev /sdb', чтобы определить точные сектора /dev /sdb1, начинающиеся и заканчивающиеся.
  2. Сделайте интерактивный fdisk на /dev /sdaa с помощью 'fdisk /dev /sda'. Наберите 'u', чтобы вы могли работать в секторах. Создайте новый основной раздел, используя начальный / конечный секторы, показанные на шаге 1.
  3. Сохраните в fdisk, затем либо проверьте с помощью 'fdisk -l', либо попробуйте mdadm еще раз с /dev /sda1.

Грубая сила:

  1. Скопируйте таблицу разделов из /dev /sda в /dev /sdb с помощью 'dd if = /dev /sdb of = /dev /sda bs = 512 count = 1'.
  2. Либо перезагрузите компьютер, либо запустите partprobe, чтобы система распознала новый /dev /sda1. Попробуйте добавить /dev /sda1 с mdadm

баллонный:

  1. Создайте sda1 того размера, который вы хотите (немного меньше, это хорошо).
  2. Создайте новый массив RAID (md1) с помощью /dev /sda1 и отсутствующего устройства. 'mdadm --create /dev /md1 --level 1 --raid-devices = 2 отсутствует /dev /sda1'
  3. Создайте файловую систему в /dev /md1 и смонтируйте оба /dev /md0 и /dev /md1.
  4. Скопируйте содержимое /dev /md0 в /dev /md1.
  5. Повторно раздел /dev /sdb1 будет размером, который вы использовали в шаге 1.
  6. Добавьте /dev /sdb1 в /dev /md1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .