[RAID0] Démarrage impossible (Résolu)
J'ai hésité à poster ce sujet ici ou dans la section Support matériel et kernel, mais j'ai l'impression qu'il s'agit plus d'un problème de configuration.
J'ai un ordinateur portable, de marque MSI, qui a la particularité d'avoir trois disque durs : 2 SSD en RAID0 et un hdd normal.
Depuis une mise à jour que j'ai faîte hier (l'ordinateur n'avais pas eu de mise à jour depuis 3 semaines car en SAV), j'ai l'erreur suivante lors du boot :
Code : Tout sélectionner
Waiting 10 seconds for device /dev/disk/by-label/LinuxOS
ERROR: device 'LABEL=LinuxOS' not found. skipping fsck
ERROR: Unable to find root device 'LABEL=LinuxOS'
L'erreur me semble venir du hook mdadm_udev qui ne semble pas se charger, du moins, pas au bon moment. Tout fonctionnait correctement avant de mettre à jour (avec pacman -Syu). J'ai suivi tout ce qui était décrit dans les wiki sur le RAID. À moins d'avoir sauté quelque chose, je ne comprend pas l'erreur.
Mon mkinitcpio.conf:
Code : Tout sélectionner
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES=""
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=""
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS="base udev autodetect block filesystems"
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS="base udev block filesystems"
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS="base udev block mdadm encrypt filesystems"
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev block lvm2 filesystems"
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""
Code : Tout sélectionner
mdadm --detail --scan >> /mnt/etc/mdadm.conf
Code : Tout sélectionner
# mdadm configuration file
#
# mdadm will function properly without the use of a configuration file,
# but this file is useful for keeping track of arrays and member disks.
# In general, a mdadm.conf file is created, and updated, after arrays
# are created. This is the opposite behavior of /etc/raidtab which is
# created prior to array construction.
#
#
# the config file takes two types of lines:
#
# DEVICE lines specify a list of devices of where to look for
# potential member disks
#
# ARRAY lines specify information about how to identify arrays so
# so that they can be activated
#
# You can have more than one device line and use wild cards. The first
# example includes SCSI the first partition of SCSI disks /dev/sdb,
# /dev/sdc, /dev/sdd, /dev/sdj, /dev/sdk, and /dev/sdl. The second
# line looks for array slices on IDE disks.
#
#DEVICE /dev/sd[bcdjkl]1
#DEVICE /dev/hda1 /dev/hdb1
#
# The designation "partitions" will scan all partitions found in
# /proc/partitions
DEVICE partitions
# ARRAY lines specify an array to assemble and a method of identification.
# Arrays can currently be identified by using a UUID, superblock minor number,
# or a listing of devices.
#
# super-minor is usually the minor number of the metadevice
# UUID is the Universally Unique Identifier for the array
# Each can be obtained using
#
# mdadm -D <md>
#
# To capture the UUIDs for all your RAID arrays to this file, run these:
# to get a list of running arrays:
# # mdadm -D --scan >>/etc/mdadm.conf
# to get a list from superblocks:
# # mdadm -E --scan >>/etc/mdadm.conf
#
#ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
#ARRAY /dev/md1 super-minor=1
#ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
#
# ARRAY lines can also specify a "spare-group" for each array. mdadm --monitor
# will then move a spare between arrays in a spare-group if one array has a
# failed drive but no spare
#ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1
#ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1
#
# When used in --follow (aka --monitor) mode, mdadm needs a
# mail address and/or a program. To start mdadm's monitor mode, enable
# mdadm.service in systemd.
#
# If the lines are not found, mdadm will exit quietly
#MAILADDR root@mydomain.tld
#PROGRAM /usr/sbin/handle-mdadm-events
ARRAY /dev/md/imsm0 metadata=imsm UUID=866b6f26:ef5b901b:722c677d:c917fdd8
ARRAY /dev/md/RAID0IMSVolume_0 container=/dev/md/imsm0 member=0 UUID=7775e1d1:725a8945:3c0c2ea5:6d9d5b5e
Code : Tout sélectionner
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
#options root=UUID=7c7dcb61-79e1-42ef-90e7-f08d08409188 rw video.use_native_backlight=0 resume=/dev/sdc3
options root=LABEL=LinuxOS rw video.use_native_backlight=0 resume=/dev/sdc3
Voilà, je pense avoir tout dit. Des idées ?
Merci d'avance de toute l'aide que vous puissiez m'apporter !
EDIT : je confirme, c'est un probléme lié au chargement du HOOK mdadm_udev. Une fois en recovery shell, le /dev/md n'apparait pas, mdadm ne semble pas capable de trouver le RAID...
EDIT 2 : C'est vraiment bizarre. Une fois sur le recovery shell, on dirait que le raid est complétement ignoré. Pas de /proc/mdstat, pas de /dev/md, pas de md_mod dans /sys/module. Comme si un module n'était pas chargé mais lequel...