После смены сбойного HDD на сервере с программным RAID 1 был добавлен новый HDD взамен вышедшего из строя, но при очередной перезагрузке сервера выскочила ошибка:
Check root=bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ALERT! /dev/disk/by-uuid/[UUID] does not exist. Dropping to a shell!
и сервер вывалился в BusyBox.
Итак, имеем нерабочий сервер и будем исправлять ситуацию. Первое, что мы должны сделать - разобрать RAID (если он частично собран) и собрать его заново. В моем случае, на сервере существовало 3 RAID 1 массива: md0, md1, md2. Останавливаем RAID массивы:
$(initramfs) mdadm --stop /dev/md0
$(initramfs) mdadm --stop /dev/md1
$(initramfs) mdadm --stop /dev/md2
$(initramfs) mdadm --stop /dev/md1
$(initramfs) mdadm --stop /dev/md2
Собираем массивы автоматически:
$(initramfs) mdadm --assemble --scan
или вручную:
$(initramfs) mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1
$(initramfs) mdadm --assemble --force /dev/md1 /dev/sda2 /dev/sdb2
$(initramfs) mdadm --assemble --force /dev/md2 /dev/sda3 /dev/sdb3
после того, как собрали RAID массив:$(initramfs) mdadm --assemble --force /dev/md1 /dev/sda2 /dev/sdb2
$(initramfs) mdadm --assemble --force /dev/md2 /dev/sda3 /dev/sdb3
$(initramfs) exit
Система загрузится, но необходимо произвести некоторые действия, чтоб ситуация не повторилась при следующей перезагрузке сервера. Смотрим состояние RAID массива:
root@server: cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2_2 : inactive raid1 sdb3[S]
md0 : active raid1 sdb1[0] sda1[1]
979840 blocks [2/2] [UU]
md1 : active raid1 sdb2[0] sda2[1]
136721088 blocks [2/2] [UU]
если название RAID массива поменялось или состояние массива перешло в "inactive" , как в случае выше, то пересобираем этот массив:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2_2 : inactive raid1 sdb3[S]
md0 : active raid1 sdb1[0] sda1[1]
979840 blocks [2/2] [UU]
md1 : active raid1 sdb2[0] sda2[1]
136721088 blocks [2/2] [UU]
root@server: mdadm --stop /dev/md2_2
root@server: mdadm --assemble /dev/md2 /dev/sda3 /dev/sdb3
Теперь обязательно необходимо перезаписать новый конфиг mdadm и обновить initramfs:root@server: mdadm --assemble /dev/md2 /dev/sda3 /dev/sdb3
root@server: /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
root@server: update-initramfs -u
Теперь можем спокойно перезагружаться.
root@server: update-initramfs -u
Огромное спасибо! Очень помогло.
ОтветитьУдалитьДа, действительно оч помогло.
ОтветитьУдалитьСпасибо!