Итак, я попробовал кое-что. Сначала я остановил рейд после перезагрузки машины сегодня утром:
jake@ubuntu-box:~$ sudo mdadm -S /dev/md1
mdadm: stopped /dev/md1
Затем я пытаюсь выполнить сборку, используя uuid для массива:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: /dev/md1 assembled from 1 drive - not enough to start the array.
Хорошо, этого я и ожидал. Итак, давайте попробуем заставить его:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 --force --
uuid=e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
mdadm: forcing event count in /dev/sdb2(1) from 238868 upto 239374
mdadm: forcing event count in /dev/sda2(0) from 20364 upto 239374
mdadm: /dev/md1 assembled from 3 drives - not enough to start the array.
Хм... это должно было сработать. Попробуем пересобрать вручную, вызвав отдельные разделы для рейда:
jake@ubuntu-box:~$ sudo mdadm --assemble /dev/md1 /dev/sda2 /dev/sdb2
/dev/sdc2 /dev/sdd2 --force
mdadm: /dev/md1 has been started with 3 drives (out of 4).
БИНГО! Похоже, это началось с 3 из 4 дисков. Достаточно хорошо, это означает, что я могу получить доступ к своим данным!Давайте проверим детали просто для смеха:
jake@ubuntu-box:~$ sudo mdadm --detail /dev/md1/dev/md1:
Version : 0.90
Creation Time : Thu Aug 18 14:30:36 2011
Raid Level : raid5
Array Size : 2924400000 (2788.93 GiB 2994.59 GB)
Used Dev Size : 974800000 (929.64 GiB 998.20 GB)
Raid Devices : 4
Total Devices : 3
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Tue Mar 13 14:00:33 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : e7ab07c3:b9ffa9ae:377e3cd3:a8ece374
Events : 0.239374
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
2 8 34 2 active sync /dev/sdc2
6 0 0 6 removed
Пока мы разговариваем, я копирую данные. Таким образом, нет, данные не были безвозвратными -, просто нужно было знать правильные команды, чтобы принудительно собрать рейд.
Для этого можно использовать " символы привязки ".
grep "[[:print:]]*_P$" file.txt
или, проще говоря, (согласно комментарию @JeffSchaller)
grep "_P$" file.txt
должен достичь того, чего вы хотите.