Назад | Перейти на главную страницу

Не удается установить grub, ошибка сегментации, невозможно определить файловую систему, избыточный член RAID, обнаружены два диска с одинаковым индексом - Debian 7

Сервер недавно был перевезен из точки А в точку Б - долгий путь, который занял шесть месяцев. Что-то пошло не так из-за того, что перед отправкой ничего не было маркировано. Да, я знаю - это сделали другие, но я расплачиваюсь за это.

Я должен спасти данные и мне нужна помощь!

Раньше система загружалась нормально, но теперь она не загружается (даже не спасение grub - BIOS просто ничего не делает, и я попытался выбрать каждый отдельный член массива).

Итак, я загрузился с Debian 7 ISO на USB-накопитель и начал работать в режиме восстановления. Пока без особого успеха.

Первое, что я заметил, это то, что массив был поврежден и перестроен на запасной. Похоже, это связано с отсутствием одного из исходных элементов массива.

Во-первых, подробности о массиве в его текущем состоянии после того, как я загрузился в режиме восстановления:

# mdadm --detail /dev/md127
/dev/md127:
        Version : 1.2
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
     Array Size : 26370335232 (25148.71 GiB 27003.22 GB)
  Used Dev Size : 2930037248 (2794.30 GiB 3000.36 GB)
   Raid Devices : 11
  Total Devices : 11
    Persistence : Superblock is persistent

    Update Time : Sat Sep 13 01:55:51 2014
          State : clean, degraded, recovering
 Active Devices : 10
Working Devices : 11
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 45% complete

           Name : media:0
           UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
         Events : 2216394

    Number   Major   Minor   RaidDevice State
       0       8       82        0      active sync   /dev/sdf2
       1       8       97        1      active sync   /dev/sdg1
       2       8      129        2      active sync   /dev/sdi1
       3       8       33        3      active sync   /dev/sdc1
       4       8      161        4      active sync   /dev/sdk1
      12       8      192        5      spare rebuilding   /dev/sdm
       6       8      145        6      active sync   /dev/sdj1
       7       8       49        7      active sync   /dev/sdd1
       8       8       65        8      active sync   /dev/sde1
      10       8      224        9      active sync   /dev/sdo
      11       8      208       10      active sync   /dev/sdn

Теперь попробуем установить grub в / dev / md127.

# grub-install /dev/md127
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
Segmentation fault

Ой, это нехорошо. Что тут с этими «найдены два диска с индексом» и «лишний RAID-член»? Оказалось, что диски были перепутаны, и в систему было установлено несколько дополнительных дисков, потому что было неясно, принадлежали они к RAID или нет.

Что произойдет, если мы попытаемся установить на отдельный диск? Кажется, / dev / sdc - первый член (самый низкий):

# grub-install /dev/sdc
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
/usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is required for cross-disk install.

Хорошо, теперь я начинаю нервничать. Я также пробовал другие диски, такие как SDM последнего диска:

# grub-install /dev/sdm
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
error: found two disks with the index 9 for RAID md/0.
error: found two disks with the index 9 for RAID md/0.
error: superfluous RAID member (10 found).
error: superfluous RAID member (10 found).
/usr/sbin/grub-setup: error: unable to identify a filesystem in hd12; safety check can't be performed.

Теперь мы получаем еще одну ошибку: невозможно идентифицировать файловую систему. Файловая система BTW - это XFS для этого массива mdadm, и она работает нормально (к счастью).

# mdadm --examine /dev/sd?
/dev/sda:
   MBR Magic : aa55
Partition[0] :     15633380 sectors at        13340 (type 0c)
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
           Name : media:0
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
   Raid Devices : 10

 Avail Dev Size : 5860271024 (2794.40 GiB 3000.46 GB)
     Array Size : 23440297984 (22354.41 GiB 24002.87 GB)
  Used Dev Size : 5860074496 (2794.30 GiB 3000.36 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8042b1e3:d9e305aa:f53be8b4:b74cc247

    Update Time : Mon Nov 18 18:05:25 2013
       Checksum : 5762ae4a - correct
         Events : 2197822

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 9
   Array State : AAAAAAAAAA ('A' == active, '.' == missing)
/dev/sdc:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdd:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sde:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdf:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdg:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdh:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdi:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdj:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
/dev/sdk:
   MBR Magic : aa55
Partition[0] :   4294967295 sectors at            1 (type ee)
mdadm: No md superblock detected on /dev/sdl.
/dev/sdm:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x2
     Array UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
           Name : media:0
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
   Raid Devices : 11

 Avail Dev Size : 5860271024 (2794.40 GiB 3000.46 GB)
     Array Size : 26370335232 (25148.71 GiB 27003.22 GB)
  Used Dev Size : 5860074496 (2794.30 GiB 3000.36 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
Recovery Offset : 2563782648 sectors
          State : clean
    Device UUID : c436476d:6e6dbc43:de4e9c83:d697fbf7

    Update Time : Sat Sep 13 02:03:42 2014
       Checksum : db87180b - correct
         Events : 2216444

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 5
   Array State : AAAAAAAAAAA ('A' == active, '.' == missing)
/dev/sdn:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
           Name : media:0
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
   Raid Devices : 11

 Avail Dev Size : 5860271024 (2794.40 GiB 3000.46 GB)
     Array Size : 26370335232 (25148.71 GiB 27003.22 GB)
  Used Dev Size : 5860074496 (2794.30 GiB 3000.36 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 235097a3:7c8a32b8:f1c73a25:9c149239

    Update Time : Sat Sep 13 02:03:42 2014
       Checksum : d0b20c55 - correct
         Events : 2216444

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 10
   Array State : AAAAAAAAAAA ('A' == active, '.' == missing)
/dev/sdo:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
           Name : media:0
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
   Raid Devices : 11

 Avail Dev Size : 5860271024 (2794.40 GiB 3000.46 GB)
     Array Size : 26370335232 (25148.71 GiB 27003.22 GB)
  Used Dev Size : 5860074496 (2794.30 GiB 3000.36 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : f382773b:08814775:542a5a1e:d2515115

    Update Time : Sat Sep 13 02:03:42 2014
       Checksum : fa85d548 - correct
         Events : 2216444

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 9
   Array State : AAAAAAAAAAA ('A' == active, '.' == missing)

Перед созданием этого запроса stackoverflow я выполнил указанную выше команду mdadm explore и обнаружил, что disk / dev / sdl и disk / dev / sdo показывают «активное устройство 9». Но disk / dev / sdl не использовался со старым временем обновления. Я сохранил вывод:

/dev/sdl:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b1c40379:914e5d18:dddb893b:4dc5a28f
           Name : media:0
  Creation Time : Wed Nov  7 16:06:02 2012
     Raid Level : raid6
   Raid Devices : 10

 Avail Dev Size : 5860271024 (2794.40 GiB 3000.46 GB)
     Array Size : 23440297984 (22354.41 GiB 24002.87 GB)
  Used Dev Size : 5860074496 (2794.30 GiB 3000.36 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 8e3499b6:b3baae34:af56fde9:f5d7bc87

    Update Time : Fri Nov 15 15:52:20 2013
       Checksum : 29fed1f5 - correct
         Events : 2183610

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 9
   Array State : AAAAAAAAAA ('A' == active, '.' == missing)

Перед созданием этого запроса я выдал mdadm --zero-superblock / dev / sdl, который был успешным, и этот диск больше не отображается как «активное устройство 9», поэтому теперь в mdadm - только один член «disk 9» - -изучить вывод.

Однако grub-install по-прежнему жалуется на «обнаружено два диска с индексом 9».

Мне действительно нужна помощь, я провел последние 12 часов, пытаясь решить эту проблему безрезультатно. Естественно, для этих данных нет резервной копии, поэтому очень важно спасти массив.

ИЗМЕНИТЬ ДОБАВИТЬ

Я заметил третье «активное устройство 9» и обнуил этот суперблок, что устранило проблему с двумя индексами, затем я очень внимательно изучил и нашел дополнительный диск, который был старым элементом, и обнуил его, что устранило лишний диск.

Теперь grub-install не сообщает об этих ошибках.

Однако теперь он сообщает об ошибке сегментации.

# grub-install --recheck /dev/md0
Segmentation fault

Затем я установил старый диск емкостью 750 ГБ, который никогда не был частью какого-либо массива, и установил его непосредственно на SATA материнской платы, минуя контроллеры LSI 9201. Я использовал parted и удалил все, затем установил раздел bios_grub.

Model: ATA ST3750330AS (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  2097kB  1049kB               primary  bios_grub

Затем я установил grub на это устройство (sda) и перезагрузился, выбрав устройство в BIOS. И GRUB перешел в режим восстановления с сообщением «такого диска нет».

Я не уверен, что делать дальше, и мне нужна помощь! Я также хочу упомянуть, что после перезагрузки спасательная программа Debian показывает / dev / md / 0, а не / dev / md127.

РЕДАКТИРОВАТЬ 2

Все еще работая над этим, я планирую исправить ошибку сегментации, чтобы сделать все разделы для каждого физического диска идентичными.

Итак, это выглядит примерно так:

mdadm --manage /dev/md0 --fail /dev/disk
mdadm --manage /dev/md0 --remove /dev/disk

dd if=/dev/zero of=/dev/disk

sgdisk -R /dev/dest /dev/source
sgdisk -G /dev/dest

mdadm --manage /dev/md0 --add /dev/disk

Я использую следующую схему раздела:

# parted /dev/sdc print
Model: ATA WDC WD30EFRX-68A (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name       Flags
 1      1049kB  2097kB  1049kB               bios_grub  bios_grub
 2      2097kB  3001GB  3001GB               raid       raid

Это означает, что по одному диску я удаляю каждый член, выполняю описанную выше процедуру, затем повторно добавляю его и позволяю ему синхронизироваться. Это большой массив RAID 6, каждая синхронизация занимает почти день, поэтому это будет долгий процесс. Но я хочу вернуть все в нормальное и идеальное состояние, и я думаю, что это лучший вариант, чтобы попытаться устранить ошибку сегментации.

Если у кого-то есть совет, дайте мне знать.

РЕДАКТИРОВАТЬ 3

При замене каждого диска я устанавливаю grub, чтобы убедиться, что он работает успешно. Ниже приведены два сообщения об ошибках, которые я получаю на текущих дисках-членах (до замены), поэтому я считаю, что получаю ошибку ошибки сегментации:

# grub-install /dev/sdl
/usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is required for cross-disk install.

# grub-install /dev/sdn
/usr/sbin/grub-setup: error: unable to identify a filesystem in hd13; safety check can't be performed.

Конечно, это повторяется много раз на всех старых членах в массиве, но это всегда одна из этих двух ошибок. Но после того, как я выполнил перечисленные выше шаги по их удалению, настройке новых разделов и повторному добавлению их в массив, grub установился правильно.

Теперь это просто вопрос времени. Я обновляю эту статью по ходу работы, надеясь, что она поможет другим, и что через несколько дней, когда все диски будут заменены, я смогу сообщить об успехе!

РЕДАКТИРОВАТЬ 4

Эти операции предложил друг. Они не работали, мне все еще нужна помощь!

Мне действительно нужна была помощь от кого угодно / каждого, чтобы помочь мне заставить GRUB работать над этим ящиком.

У кого-нибудь есть другие предложения и исправления?

РЕДАКТИРОВАТЬ 5

Отчет об ошибке Grub:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=764798

Вы должны ответить на свой вопрос и отметить его как таковой, поскольку кажется, что вы идете к решению. Несколько предложений:

  • Не пытайтесь установить grub на устройство mdadm, это не сработает, но на самом физическом устройстве, то есть / dev / sdn, похоже, вы узнали об этом позже.
  • Сначала позвольте массиву благополучно восстановиться после загрузки с компакт-диска в режим восстановления, и только после того, как он завершит восстановление и будет сообщено, что все в порядке, попробуйте еще раз спасти систему
  • Когда вы добавляете новый диск для загрузки с него, во время установки на нем grub может быть хорошей идеей запустить grub с --recheck вариант, поэтому он просканирует другие устройства и добавит их, чтобы их можно было найти во время загрузки.

Некоторое время назад я писал кое-что о настройке mdadm raid10, который позволяет загружаться с каждого диска в рейде, он может дать некоторые полезные указатели:

Как создать загрузочную резервную систему Debian с программным raid10 с 3 или 4 (или более) дисками?