Как мне установить 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 имеет флаги boot и raid , а / dev / sda не имеют ни одного. Я также вижу там, что первый сектор / dev / sda начинается с 0, а / dev / sdd1 начинается с 2048 года.

Кто-нибудь может предложить способ, которым я могу это сделать. решить эту проблему?

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

2
задан 28 May 2020 в 20:29
1 ответ

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

Эта вики-статья на 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

2
ответ дан 5 June 2020 в 11:51

Теги

Похожие вопросы