[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:misc:software_raid_troubleshoot_howto [2016/11/26 17:01 (UTC)] – wisedraco | howtos:misc:software_raid_troubleshoot_howto [2017/06/26 15:08 (UTC)] (current) – [Workarounds for incorrect raid devices naming] wisedraco | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | ||
+ | |||
+ | ====== Software RAID troubleshoot ====== | ||
+ | |||
+ | Once, after upgrading my desktop slackware64 from 14.1 to 14.2 (with kernel upgrade too), | ||
+ | i be done with system, who,after lilo menu,\\ | ||
+ | write " | ||
+ | \\ | ||
+ | and then stops completely - nothing more.\\ | ||
+ | \\ | ||
+ | Initial configuration was:\\ | ||
+ | Intel DG965SS motherboard, | ||
+ | 2 x 1000 Gb Seagate SATA HDD ( as sda and sdb)\\ | ||
+ | ST1000DM003-1CH1\\ | ||
+ | dvd-writer on sata4 port | ||
+ | |||
+ | both seagate discs is partitioned as FD type ( linux autodetect raid) and 4 partitions ( mbr type) - | ||
+ | * 100 Gb root (md1) | ||
+ | * 2 Gb swap (md2) | ||
+ | * 350 Gb /home (md3) | ||
+ | * 550 Gb /Second (md4) | ||
+ | \\ | ||
+ | \\ | ||
+ | cat / | ||
+ | |||
+ | <code bash> | ||
+ | Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] | ||
+ | md1 : active raid1 sda1[0] sdb1[1] | ||
+ | 104857536 blocks [2/2] [UU] | ||
+ | | ||
+ | md2 : active raid1 sda2[0] sdb2[1] | ||
+ | 2097088 blocks [2/2] [UU] | ||
+ | | ||
+ | md3 : active raid1 sda3[0] sdb3[1] | ||
+ | 367001536 blocks [2/2] [UU] | ||
+ | | ||
+ | md4 : active raid1 sda4[0] sdb4[1] | ||
+ | 502805120 blocks [2/2] [UU] | ||
+ | | ||
+ | unused devices: < | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | mdadm -Es : | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | ARRAY /dev/md1 UUID=7cc47bea: | ||
+ | ARRAY /dev/md2 UUID=cce81d3a: | ||
+ | ARRAY /dev/md3 UUID=f0bc71fc: | ||
+ | ARRAY /dev/md4 UUID=3f4daae2: | ||
+ | |||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | < | ||
+ | # for p in 1 2 3 4; do mdadm --create /dev/md$p --name=$p --level=1 --raid-devices 2 /dev/sda$p /dev/sdb$p --metadata=0.90; | ||
+ | </ | ||
+ | \\ | ||
+ | |||
===== My " | ===== My " | ||
Line 5: | Line 65: | ||
Then i do massive system update via slackpkg update-all, including kernel update too.\\ | Then i do massive system update via slackpkg update-all, including kernel update too.\\ | ||
check lilo.conf, restart - all looks ok. then i decide to upgrade system to 14.2 via the same slackpkg \\ | check lilo.conf, restart - all looks ok. then i decide to upgrade system to 14.2 via the same slackpkg \\ | ||
- | ( looks like live on macos is too boring, too predictable - all work, and so on...:D ) | + | ( looks like live on macos is too boring, too predictable - all work, and so on...:D )\\ |
always, i check lilo.conf, check the new kernel is named right, have no old kernel for backup - \\ | always, i check lilo.conf, check the new kernel is named right, have no old kernel for backup - \\ | ||
only one entry in lilo ( who was not good thing at all! ), and do reboot. | only one entry in lilo ( who was not good thing at all! ), and do reboot. | ||
Line 96: | Line 156: | ||
# Linux bootable partition config ends | # Linux bootable partition config ends | ||
</ | </ | ||
- | \\ | + | \\ |
so i do some research, do | so i do some research, do | ||
< | < | ||
dmesg |grep md | dmesg |grep md | ||
</ | </ | ||
- | \\ | + | \\ |
and from array size found out, what number was my root partition ( it was 100 gb size). it was md126. | and from array size found out, what number was my root partition ( it was 100 gb size). it was md126. | ||
- | \\ | + | \\ |
i mount it: | i mount it: | ||
< | < | ||
mount /dev/md126 /mnt/hd | mount /dev/md126 /mnt/hd | ||
</ | </ | ||
- | \\ | + | \\ |
Then i run mc, and check, i was really mount there my root partition. | Then i run mc, and check, i was really mount there my root partition. | ||
- | \\ | + | \\ |
Then i do in console : | Then i do in console : | ||
- | \\ | + | \\ |
< | < | ||
chroot /mnt/hd /sbin/lilo -v 3 | chroot /mnt/hd /sbin/lilo -v 3 | ||
</ | </ | ||
- | \\ | + | \\ |
but - lilo command end with error - it was cannot find root partition - /dev/md1. | but - lilo command end with error - it was cannot find root partition - /dev/md1. | ||
- | That was problem, because now /dev/md1 was become as /dev/md126 for whatever reason.// | + | That was problem, because now /dev/md1 was become as /dev/md126 for whatever reason.\\ |
Then, i do some reading about RAID subsystems, forums and so on, made some mistakes and experiments, | Then, i do some reading about RAID subsystems, forums and so on, made some mistakes and experiments, | ||
\\ | \\ | ||
Line 262: | Line 322: | ||
that was, in a most, all of story. | that was, in a most, all of story. | ||
yet, there is some another workarounds of that situation. | yet, there is some another workarounds of that situation. | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | ===== Workarounds for incorrect raid devices naming ===== | ||
+ | |||
+ | |||
+ | - 1. Using UUID in lilo ( i do not check this), and in fstab for mounting partitions. | ||
+ | |||
+ | do a | ||
+ | |||
+ | < | ||
+ | ls / | ||
+ | </ | ||
+ | |||
+ | or better, go in that location with midnight commander, and youl see, there is a " | ||
+ | that was the raid array disk uuid - and symlink to /dev/mdx. | ||
+ | |||
+ | for automate info feed into fstab you can use this way: | ||
+ | |||
+ | < | ||
+ | |||
+ | cd / | ||
+ | |||
+ | ls -d -l $PWD/* >> /etc/fstab | ||
+ | </ | ||
+ | |||
+ | after that you must immediately edit /etc/fstab and make in a right way, otherwise you may have problems with mounting in next boot... | ||
+ | |||
+ | |||
+ | < | ||
+ | / | ||
+ | / | ||
+ | ##/ | ||
+ | / | ||
+ | / | ||
+ | #/ | ||
+ | / | ||
+ | devpts | ||
+ | proc / | ||
+ | tmpfs / | ||
+ | |||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | disk UUID by | ||
+ | |||
+ | / | ||
+ | |||
+ | and that one, who you get via | ||
+ | |||
+ | < | ||
+ | mdadm -D | ||
+ | mdadm -Db | ||
+ | mdadm -Es | ||
+ | </ | ||
+ | |||
+ | differ, not the same!!! | ||
+ | in fstab ( lilo too?) you must use UID from / | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | - 2. Using initramd. | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # mkinitrd_command_generator.sh revision 1.45 | ||
+ | # | ||
+ | # This script will now make a recommendation about the command to use | ||
+ | # in case you require an initrd image to boot a kernel that does not | ||
+ | # have support for your storage or root filesystem built in | ||
+ | # (such as the Slackware ' | ||
+ | # A suitable ' | ||
+ | |||
+ | #/ | ||
+ | |||
+ | mkinitrd -c -k 3.2.29 -f ext4 -r /dev/md1 -m mbcache: | ||
+ | |||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | rightly edited mdadm.conf then must be copied in/ | ||
+ | |||
+ | after you run that mkinitrd, you must update lilo. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Useful commands in this case ====== | ||
+ | |||
+ | show raid array info: | ||
+ | |||
+ | < | ||
+ | mdadm -Es | ||
+ | </ | ||
+ | |||
+ | Assemble RAID array based on mdadm.conf | ||
+ | < | ||
+ | mdadm -As | ||
+ | </ | ||
+ | |||
+ | show array info: | ||
+ | < | ||
+ | mdadm -D /dev/md127 | ||
+ | </ | ||
+ | |||
+ | show defined array another info: | ||
+ | < | ||
+ | mdadm -Db /dev/md127 | ||
+ | </ | ||
+ | |||
+ | show scsi devices info: | ||
+ | < | ||
+ | lsscsi | ||
+ | </ | ||
+ | |||
+ | show assembled raid arrays status: | ||
+ | < | ||
+ | cat / | ||
+ | </ | ||
+ | |||
+ | show UUID info about discs ( or RAID arrays) in system: | ||
+ | < | ||
+ | ls / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | dmesg |grep md | ||
+ | </ | ||
+ | |||
+ | re-run lilo, when booted from another source. | ||
+ | < | ||
+ | chroot /mnt/hd /sbin/lilo -v 3 | ||
+ | </ | ||
+ | |||
+ | |||
+ | stop named RAID array: | ||
+ | < | ||
+ | mdadm --stop /dev/md127 | ||
+ | </ | ||
+ | |||
+ | kernel options: | ||
+ | |||
+ | < | ||
+ | $kernelname raid=noautodetect md=1, / | ||
+ | </ | ||
+ | |||
+ | turn on not to autodetect RAID arrays, and define raid array /dev/md1, from two partitions ( members? ) | ||
+ | |||
+ | |||
+ | |||
+ | ====== Useful Links: ====== | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | ====== Sources ====== | ||
+ | Originally written by --- // | ||
+ | |||
+ | Rewrited with used materials from " | ||
+ | |||
+ | <!-- Please do not modify anything below, except adding new tags.--> | ||
+ | {{tag> | ||
+ | |||
+ | |||
+ | |||
+ | |||