В предыдущих версиях Ubuntu добавление BOOT_DEGRADED=true
к /etc/initramfs-tools/conf.d/mdadm
позволяло системе автоматически загружаться, когда корневая файловая система находится в поврежденном массиве. Это больше не работает в 16.04 LTS.
Документация ( https://help.ubuntu.com/lts/serverguide/advanced-installation.html ) выглядит устаревшей; sudo dpkg-reconfigure mdadm
больше не просит разрешить деградированные ботинки, и аргумент ядра bootdegraded=true
также больше не работает. Система всегда загружается в initramfs при ухудшении массива корневой файловой системы. Оттуда mdadm -IRs
позволяет системе загружаться.
Как включить автоматическую загрузку, когда корневая файловая система находится в поврежденном массиве RAID1 в 16.04LTS?
У меня была та же проблема с 16.04, простой массив raid отказывался активироваться в его деградированном режиме.
вот простой обходной путь:
добавить
спать 20 (или любые другие секунды, которые вы предпочитаете)
добавьте следующее (принудительный стартовый массив, если у вас есть / dev / md0, / dev / md1 и / dev / md2)
mdadm --run / dev / md0
mdadm --run / dev / md1
mdadm --run / dev / md2
затем
update-initramfs -k all -u , тогда все готово.
Обратите внимание, что только 14) требуется для 14.04, но это не помешает сделать оба. кроме вас может появиться какое-то предупреждающее сообщение, например:
mdadm: не удалось запустить массив / dev / md0: устройство или ресурс занят
, что безвредно, поскольку в нем говорится только потому, что / dev / md0 активен, вы можете написать более умный скрипт, только если хотите выполнить --run.
Другие ответы здесь имеют обходные пути для решения проблемы, но это ошибка в Ubuntu и должна быть исправлена. Вот ошибка: https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049
Она была исправлена ранее: https: // wiki.ubuntu.com/ReliableRaid
Кажется, что первопричина /usr/share/initramfs-tools/scripts/local-top/mdadm
отсутствие сценария - на Debian-8, это включено в mdadm
пакет, но было потеряно в том же пакете для Ubuntu 16.04; - (
Так, после того, как я создал его версию грязного взлома и воссоздал initramfs
- мой тест Ubuntu 16.04, сервер LTS смог полностью загрузить использование единственного второго жесткого диска от массива RAID1.
#!/bin/sh
# 2016-07-13 andrey@kopeyko.ru - missed mdadm script for Ubuntu-16.04
# see debian8_host:/usr/share/initramfs-tools/scripts/local-top/mdadm for full version
MDADM=/sbin/mdadm
. /scripts/functions
echo "===>"
cat /proc/mdstat
echo "===>"
log_begin_msg "Assembling all MD arrays"
if $MDADM --assemble --scan --run --auto=yes
then
log_success_msg "assembled all arrays."
else
log_warning_msg "failed to assemble all arrays, attempting individual starts"
for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1)
do
log_begin_msg "attempting mdadm --run $dev"
if $MDADM --run $dev; then
log_success_msg "started $dev"
else
log_failure_msg "failed to start $dev"
fi
done
fi
log_end_msg
echo "===>"
cat /proc/mdstat
echo "===>"
sleep 5
# TODO: run mdadm --readwrite /dev/mdN
# if array is in 'auto-read-only' mode
Упомянутая ошибка появляется в 3.3-2ubuntu7 mdadm и была исправлена в 3.4-2.
последний выпуск mdadm для yakkety (16.10) 3.4-4 уже содержит фиксацию и доступен для 16,10, но не (уже?) для 16.04LTS.
Таким образом я обновил mdadm моего 16.04LTS вручную:
wget http://launchpadlibrarian.net/275652884/mdadm_3.4-4_amd64.deb
sudo dpkg -i mdadm_3.4-4_amd64.deb
Для проверки я
Наблюдение консоли: Начальная загрузка от ухудшенных работ массива RAID !
Ошибка: https://bugs.launchpad.net/ubuntu / + source/mdadm / + ошибка/1635049 https://bugs.debian.org/cgi-bin/bugreport.cgi? bug=784070