Вопрос или проблема
У меня возникли проблемы с системой Ubuntu, которая работала в режиме Raid 5 с 4 дисками по 4 ТБ: /dev/sda[1234]. Операционная система была установлена на /dev/sde.
Поэтому я решил, что пришло время сделать чистую установку ОС… И вот здесь моя глупость проявилась… Я случайно установил Ubuntu на /dev/sda. Теперь я переустановил на /dev/sde, но у меня возникли проблемы с повторной сборкой рейда.
Я сделал резервную копию своей папки /etc, но опять же, от глупости, я сделал ее на своем рейде, думая, что у меня не возникнет проблем с его повторной сборкой.
Я знаю, что данные на /dev/sda потеряны… Я просто хочу понять, сколько я смогу восстановить с остальных 3 дисков.
В общем, я получаю следующую ошибку при большинстве попыток. Если я меняю порядок дисков, то получаю эту ошибку для первого диска в списке.
mdadm: no recogniseable superblock on /dev/sdb1
mdadm: /dev/sdb1 has no superblock - assembly aborted
Я пробовал собрать несколькими разными способами, но всегда натыкался на проблемы.
sudo mdadm --assemble --scan
sudo mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Я думал, что, возможно, я просто соберу с 3 исправными дисками, а затем смогу добавить /dev/sda, но получаю ту же ошибку.
sudo mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1
Я даже подумал, что мог бы создать новый рейд 5 с /dev/sda, а затем добавить остальные, но это тоже не сработало.
sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sda1 missing missing missing
sudo mdadm --manage /dev/md0 --re-add /dev/sdb1
sudo mdadm --manage /dev/md0 --add /dev/sdb1
Вывод команды fdisk -l
Disk /dev/sda: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: ST4000DM000-1F21
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: EEFB7529-8BC9-2C46-B529-DFEC565586AE
Device Start End Sectors Size Type
/dev/sda1 2048 7814037134 7814035087 3.6T Linux filesystem
Disk /dev/sdb: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: ST4000DM000-1F21
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 6559C610-734A-4978-B52D-FB8561D8CB6E
Device Start End Sectors Size Type
/dev/sdb1 2048 7814035455 7814033408 3.6T Linux RAID
Disk /dev/sdc: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: ST4000DM000-1F21
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0F3B652A-6AB8-4A98-B91B-F50C1373347A
Device Start End Sectors Size Type
/dev/sdc1 2048 7814035455 7814033408 3.6T Linux RAID
Disk /dev/sdd: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: ST4000DM000-1F21
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: E50D44A3-67C3-43AD-AD96-D11A66A0DCC8
Device Start End Sectors Size Type
/dev/sdd1 2048 7814035455 7814033408 3.6T Linux RAID
Disk /dev/sde: 111.79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: OCZ-SOLID3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6D5DF417-2864-48FC-83DC-A1E42EF3DE9C
Device Start End Sectors Size Type
/dev/sde1 2048 2203647 2201600 1G EFI System
/dev/sde2 2203648 234438655 232235008 110.7G Linux filesystem
Вывод команды mdadm --examine /dev/sd*
/dev/sda:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sda1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 1d5b33b8:7c4c31ce:c694e0b0:d0335928
Name : mediaserver:0 (local to host mediaserver)
Creation Time : Wed Sep 25 21:14:48 2024
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 7813770895 sectors (3.64 TiB 4.00 TB)
Array Size : 11720655360 KiB (10.92 TiB 12.00 TB)
Used Dev Size : 7813770240 sectors (3.64 TiB 4.00 TB)
Data Offset : 264192 sectors
Super Offset : 8 sectors
Unused Space : before=264112 sectors, after=655 sectors
State : clean
Device UUID : 15aba39b:06fdb0ba:3b3fe20f:d646646e
Internal Bitmap : 8 sectors from superblock
Update Time : Wed Sep 25 21:14:48 2024
Bad Block Log : 512 entries available at offset 24 sectors
Checksum : 650e8daa - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : A... ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
mdadm: No md superblock detected on /dev/sdb1.
/dev/sdc:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
mdadm: No md superblock detected on /dev/sdc1.
/dev/sdd:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
mdadm: No md superblock detected on /dev/sdd1.
/dev/sde:
MBR Magic : aa55
Partition[0] : 234441647 sectors at 1 (type ee)
/dev/sde1:
MBR Magic : aa55
mdadm: No md superblock detected on /dev/sde2.
Я бы сделал следующее:
-
Сначала определите удаленный диск. Используйте
fdisk
или какой-либо другой инструмент, чтобы убедиться. (mdadm --examine
– лучший вариант, так как вы можете увидеть устройство). Если вы установили чистую ОС на него, как вы сказали, извлеките диск и попробуйте загрузиться на другом компьютере. Вы должны быть УВЕРЕНЫ, что этот диск идентифицирован. Я бы на данный момент просто отключил этот диск. -
Используйте mdadm, чтобы проверить диски, у которых есть распознаваемые суперблоки. Я бы записал имена устройств, чтобы убедиться. Если на трех оставшихся дисках нет распознаваемых суперблоков, у вас проблемы. Вам нужны все три, чтобы повторно собрать RAID. Убедитесь, что вы удалили неработающий (удаленный) диск из массива:
mdadm /dev/md0 --remove /dev/sd??
(убедитесь, что вы удаляете правильный диск). -
Если у вас три диска, просто выполните команду сборки (
mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
). Если у вас только два, вам не повезло. Нечего восстанавливать. -
Сотрите содержимое удаленного диска. Попробуйте удалить разделы с помощью fdisk. Если это не сработает, используйте dd и удалите первые ГБ диска. Таким образом вы сможете снова добавить диск в массив. (вероятно, это работает и без удаления, я не пробовал).
-
Добавьте новый диск в массив.
mdadm /dev/md0 --add /dev/sd??
-
Последний вариант. Суперблоки не обнаружены: попробуйте собрать с creat:
mdadm --create /dev/md0 --level=5 --raid-devices=4
и замените отсутствующее устройство словом missing. -
Если вы дошли до этого момента, вам нужно будет воссоздать файл mdadm.conf и обновить начальную RAM FS.
Ответ или решение
Ваша ситуация с RAID 5, где один из дисков был перезаписан, действительно сложная, но не безнадежная. Попробуем рассмотреть шаги, которые могут помочь восстановить массив и получить доступ к данным на оставшихся трех дисках.
Шаги по восстановлению RAID 5:
-
Отключите перезаписанный диск: Убедитесь, что физически отключили диск
/dev/sda
, на который вы установили новую ОС, чтобы исключить возможность случайного взаимодействия с ним. -
Проверка дисков на наличие суперблоков: Запустите команду
mdadm --examine /dev/sd*
, чтобы увидеть, какие из оставшихся дисков имеют распознаваемые суперблоки. В вашем случае, ожидается, что/dev/sdb1
,/dev/sdc1
и/dev/sdd1
должны отображать информацию о RAID. Запишите названия устройств, которые имеют суперблоки. -
Соберите массив с известными дисками: Если хотя бы три диска имеют действующие суперблоки, вы можете попытаться собрать массив. Используйте следующую команду:
sudo mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1
Если система сообщает о том, что не удается собрать массив, попробуйте установить порядок дисков. Если доступно только два диска с суперблоками, восстановить массив не получится.
-
Удаление перезаписанного диска из массива: Если массив не собирается должным образом, убедитесь, что диск, на который была установлена OS, был удалён (при необходимости используйте
--remove
). -
Перезапись метаданных на удаленном диске (если необходимо): Если вы планируете добавить диск обратно в массив, вам может понадобиться удалить его разделы. Используйте
fdisk
для удаления всех разделов. Альтернативно, можно использоватьdd
, чтобы обнулить первые 1 ГБ диска:sudo dd if=/dev/zero of=/dev/sda bs=1M count=1024
-
Добавьте диск заново в массив: После очистки вы можете добавить диск обратно в массив командой:
sudo mdadm --manage /dev/md0 --add /dev/sda1
-
Создание нового массива (если суперблоки отсутствуют): Если ни один из дисков не обнаруживает суперблоки, вы можете создать новый RAID через
mdadm
, указав недостающие устройства как "missing":sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 missing
-
Обновление конфигурации: После успешной сборки массива вам необходимо обновить файл конфигурации
mdadm.conf
и перегенерировать образ начальной ramdisk (initramfs), чтобы система могла правильно распознавать массив при следующем запуске.sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf sudo update-initramfs -u
Важно:
- Перед выполнением любых операций с дисками создайте резервную копию важной информации (если это возможно).
- Восстановление данных может занять время, и в зависимости от состояния диска и самого массива могут потребоваться специализированные инструменты и знания для полного восстановления данных.
- Если вы не уверены в своих действиях или важности данных на дисках, рассмотрите возможность обращения к профессионалам по восстановлению данных.
Заключение
Следуя приведенным шагам, вы сможете попытаться восстановить ваш RAID 5 массив. Помните, не стоит паниковать — все еще есть возможность восстановления данных на оставшихся дисках. Удачи!