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

Как мне установить grub на диск с программным рейдом?

Я запускаю Debian 9 с mdadm RAID 1 на нем. Раньше оба жестких диска могли загружаться в ОС, теперь только один из них.

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

Сначала я побежал

mdadm --add /dev/md0 /dev/sda

Что хорошо сработало. Сразу после этого я сбежал

grub-install /dev/sda

Это дало мне следующий результат:

Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: error: unable to identify a filesystem in hd0; safety check can't be performed.

Вот мой вывод из lsblk:

sda           8:0    0 447.1G  0 disk
└─md0         9:0    0 232.8G  0 raid1
  ├─md0p1   259:0    0  14.9G  0 md    [SWAP]
  ├─md0p2   259:1    0     1K  0 md
  ├─md0p3   259:2    0   216G  0 md    /
  └─md0p5   259:3    0   1.9G  0 md    /boot
sdb           8:16   0   5.5T  0 disk
├─sdb1        8:17   0   5.5T  0 part
└─sdb9        8:25   0     8M  0 part
sdc           8:32   0   5.5T  0 disk
├─sdc1        8:33   0   5.5T  0 part
└─sdc9        8:41   0     8M  0 part
sdd           8:48   0 232.9G  0 disk
└─sdd1        8:49   0 232.9G  0 part
  └─md0       9:0    0 232.8G  0 raid1
    ├─md0p1 259:0    0  14.9G  0 md    [SWAP]
    ├─md0p2 259:1    0     1K  0 md
    ├─md0p3 259:2    0   216G  0 md    /
    └─md0p5 259:3    0   1.9G  0 md    /boot

А вот результат mdadm --detail /dev/md0:

/dev/md0:
        Version : 1.2
  Creation Time : Wed Dec 12 15:26:35 2018
     Raid Level : raid1
     Array Size : 244066304 (232.76 GiB 249.92 GB)
  Used Dev Size : 244066304 (232.76 GiB 249.92 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Thu May 28 18:59:51 2020
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : localserver:0  (local to host localserver)
           UUID : 83d5a386:66110e10:e5f3c600:734423a8
         Events : 5339803

    Number   Major   Minor   RaidDevice State
       2       8        0        0      active sync   /dev/sda
       1       8       49        1      active sync   /dev/sdd1

Я пробовал загрузиться только с /dev/sda, но безрезультатно. Я также пробовал бегать blockdev --flushbufs /dev/sda, как рекомендуют некоторые, но безрезультатно.

При беге GParted Я это вижу /dev/sdd1 имеет флаги ботинок и рейд, пока /dev/sda нет ни одного. Я также вижу там, что /dev/sdaпервый сектор начинается с 0, а /dev/sdd1начинается в 2048 году.

Может ли кто-нибудь предложить способ решения этой проблемы?

Я не против отсоединить «странный» жесткий диск, отформатировать его и снова подключить.

Хорошо - вот как я это решил. Дело в том, что /dev/sdd имеет раздел под названием /dev/sdd1 и то, что начало сектора в 2048 году, очень помогло.

это wikiarticle на Arch Wiki тоже очень помогла. Главное, чтобы обе заклепки были разделены одинаковым образом.

  1. удалим диск, который не позволял установить на него GRUB из программного рейда:
mdadm --fail /dev/md0 /dev/sda
mdadm --remove /dev/md0 /dev/sda
  1. А вот и волшебство. С помощью sfdisk, давайте сохраним информацию о разделах нашего рабочего диска, а затем заново разбиваем проблемный диск:
sfdisk -d /dev/sdd > raidinfo-partitions.sdd
sfdisk /dev/sda < raidinfo-partitions.sdd

Вуаля!

  1. давайте повторно добавим диск в наш программный RAID-массив:

mdadm --add /dev/md0 /dev/sda1

  1. Наконец, когда оба диска синхронизированы, давайте установим grub:

grub-install /dev/sda