Dans les versions précédentes d'ubuntu, l'ajout de BOOT_DEGRADED=true
à /etc/initramfs-tools/conf.d/mdadm
permettait au système de démarrer automatiquement lorsque le système de fichiers racine se trouvait sur un tableau dégradé. Cela ne semble plus fonctionner dans 16.04 LTS.
La documentation ( https://help.ubuntu.com/lts/serverguide/advanced-installation.html ) semble être obsolète; Sudo dpkg-reconfigure mdadm
ne demande plus d'autoriser les bottes dégradées et l'argument du noyau bootdegraded=true
semble également ne plus fonctionner. Le système démarre toujours dans initramfs lorsque le tableau du système de fichiers racine est dégradé. À partir de là, mdadm -IRs
permet au système de démarrer.
Comment activer le démarrage automatique lorsque le système de fichiers racine se trouve sur une matrice RAID1 dégradée dans 16.04LTS?
Le bogue mentionné apparaît dans mdadm 3.3-2ubuntu7 et a été corrigé dans 3.4-2.
La dernière version de mdadm pour yakkety (16.10) 3.4-4 contient déjà le correctif et est disponible pour 16.10 mais pas (encore?) Pour 16.04LTS.
Ainsi, j'ai mis à jour mdadm de mes 16.04LTS à la main:
wget http://launchpadlibrarian.net/275652884/mdadm_3.4-4_AMD64.deb
Sudo dpkg -i mdadm_3.4-4_AMD64.deb
Pour vérifier je
Observer la console: Le démarrage à partir d'un tableau RAID dégradé fonctionne !
Bug: https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049https://bugs.debian.org/cgi-bin/bugreport. cgi? bug = 78407
Il semble que la cause première soit l'absence de script /usr/share/initramfs-tools/scripts/local-top/mdadm
- sous Debian-8, elle est incluse dans le paquet mdadm
, mais a été perdue dans le même paquet que Ubuntu-16.04 ;-(
Ainsi, après avoir créé sa version "dirty-hack" et recréé initramfs
- mon serveur de test Ubuntu-16.04 LTS a été en mesure de démarrer complètement à l’aide du seul deuxième disque dur de la matrice RAID1.
#!/bin/sh
# 2016-07-13 [email protected] - 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
J'ai eu le même problème avec 16.04, le raid array simple a refusé de devenir actif dans son mode dégradé.
voici une solution de contournement facile:
ajouter
sommeil 2 (ou quelle que soit votre préférence)
ajoutez ce qui suit (forcez le tableau de démarrage, si vous avez/dev/md0,/dev/md1 et/dev/md2)
mdadm --run/dev/md0
mdadm --run/dev/md1
mdadm --run/dev/md2
puis
pdate-initramfs -k all -, alors vous êtes tous ensemble.
Veuillez noter que seulement 1) est requis pour 14.04, mais cela ne fait pas de mal de faire les deux. autre que vous pouvez voir un message d'avertissement tel que:
mdadm: échec de l'exécution du tableau/dev/md0: périphérique ou ressource occupé
ce qui est inoffensif, car il dit seulement que parce que/dev/md0 est actif, vous pouvez vraiment écrire un script plus intelligent, exécutez seulement --run en cas de besoin.
Les autres réponses ici ont des solutions de contournement pour résoudre le problème, mais c'est un bogue avec Ubuntu et devrait être corrigé. Voici le bogue: https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049
Il avait été corrigé précédemment: https://wiki.ubuntu.com/ReliableRaid