Попытка перейти с MBR на GPT raid1 и grub не запустится

У меня есть mdadm raid1 для моего загрузочного / корневого диска. Диски были разделены как MBR, и я могу загрузить Ubuntu 18.04

Один из дисков вышел из строя, и я заменил его на диск 4 ТБ и хотел бы перейти на GPT, чтобы позже я мог увеличить массив.

Новый диск разделен GPT:

Number  Start   End     Size    File system  Name                 Flags
 1      1049kB  2097kB  1049kB               BIOS boot partition  bios_grub
 2      2097kB  4001GB  4001GB               Linux RAID           raid

Старый диск по-прежнему MBR:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1000GB  1000GB  primary               boot, raid

Я запустил grub-install на новом диске GPT, и он завершился без ошибок но я не смог загрузиться с диска.

Затем я запустил восстановление загрузки и смог загрузить BIOS с нового GPT-диска, но только при наличии зеркала.

Когда я удаляю MBR-диск и загружаюсь с GPT-диска, я получаю тот же запрос режима grub rescue, и он не может найти мои загрузочные / root lvms. Но запуск ls из списков восстановления других lvms-рейдов на разных дисках mbr.

Мой grub.cfg имеет: set root = 'lvmid / xxxx'

lvmid / xxx - это то, что grub не может найти. Lvmid подходит для / dev / mapper / boot

blkid вывод:

/dev/mapper/bootdisk-boot: UUID="f13dfe22-a31e-413e-a587-af3f68b82913" TYPE="ext4"
/dev/mapper/bootdisk-data: UUID="702554d1-1113-4aba-bdc0-5db182287343" TYPE="ext4"
/dev/mapper/bootdisk-root: UUID="5b4bc8f5-dc1c-4850-9404-22be00669e23" TYPE="ext4"
/dev/mapper/datavg-datalv: UUID="b6c2eeb5-e868-4b93-89f8-d056f4a43202" TYPE="ext4"
/dev/sda1: PARTLABEL="BIOS boot partition" PARTUUID="a513db1e-893a-4e58-b31f-b848b7adec09"
/dev/sda2: UUID="96535c2c-f839-8d5d-f055-7396b19a6914" UUID_SUB="9a164f93-31ab-e8fc-091b-f95e91e2dfa1" LABEL="bootdisknew:0" TYPE="linux_raid_member" PARTLABEL="Linux RAID" PARTUUID="387427c6-8e47-4c39-8d98-fc1a096164f1"
/dev/sdc1: UUID="96535c2c-f839-8d5d-f055-7396b19a6914" UUID_SUB="2fddbf50-6d71-8724-c8e7-afa45ff686ea" LABEL="bootdisknew:0" TYPE="linux_raid_member" PARTUUID="a5d01761-01"
0
задан 27 May 2019 в 23:44

1 ответ

ФИКСИРОВАННЫЙ. Хорошее горе, что боль.

Короткий ответ: зафиксированный с восстановлением начальной загрузки и выбором дисковая поддержка ATA

Длинный ответ: замена/обновление программного обеспечения RAID1 к более крупным дискам с GPT является выполнимой, но хитрой.

Первый шаг: сделайте загрузочный USB для своей системы. Не rescue/livecd - можно хотеть иметь тот так или иначе, но удостовериться, что собственная система является загрузочной от USB. SystemrescueCD загрузил мою систему и так или иначе ухудшил другое зеркало так быть осторожным.

Дополнительный: Я создал virtualbox, копируют моих 18.0.4 систем с тем же MBR RAID1/LVM для тестирования всего. Я подтвердил некоторые проблемы/проблемы с установкой личинки, таким образом, это стоило того.

Загрузочный USB: Я использовал YUMI/Multiboot и скопировал мое ядро и initrd к USB / начальная загрузка и отредактировал/multiboot/syslinux.cfg для добавления:

label Mysystem
menu label Mysystem
MENU INDENT 1
KERNEL /boot/vmlinuz-4.15.0-47-generic
APPEND ro noapic root=/dev/mapper/system-root
INITRD /boot/initrd.img-4.15.0-47-generic

Восстановление начальной загрузки

  • Можно попробовать восстановление по умолчанию.
  • Обратите внимание, что чистка личинки удалит/etc/default/grub. Со значениями по умолчанию Ubuntu моя система имела бы панику ядра. Также Ubuntu по умолчанию grub.cfg скрывает важные сообщения загрузки. После попытки восстановления начальной загрузки несколько раз я разочаровался в чистке GRUB и использовал Расширенные настройки
  • Моя система закончила тем, что нуждалась в дисковой поддержке ATA

Преобразование MBR к GPT

Это предполагает, что у Вас есть резервные копии, или Вы уверены, что у Вас не будет сбоя диска при преобразовании. Повреждение зеркала и повторного разделения является разрушительным, таким образом, Вы будете полагаться на один диск некоторое время. Восстановление зеркал может подчеркнуть старый диск, таким образом, Вас предупредили.

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

Приводят к сбою диск, который Вы хотите преобразовать:

mdadm /dev/md0 --fail /dev/sdb1
mdadm /dev/md0 -r /dev/sdb1

Создайте новый раздел GPT с gdisk. Вам нужна начальная загрузка BIOS на 1 МБ для личинки. Я добавил раздел EFI в случае, если я перемещаю диски в новую систему. Отдых диска выделяется RAID и добавленной спине к/dev/md0. Нормально делать больший раздел RAID на новом диске. Оригинал/dev/md0 останется таким же, пока Вы не вырастите его.

after gdisk:
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02  BIOS boot partition
   2            4096          208895   100.0 MiB   EF00  EFI System
   3          208896      7814037134   3.6 TiB     FD00  Linux RAID

У меня была проблема со сбоем установки личинки и восстановлением начальной загрузки, не фиксирующим или жалующимся любой (даже после чистки личинки).

Стирание раздела начальной загрузки BIOS, казалось, зафиксировало установку личинки. Удостоверьтесь, что это - корректный диск/раздел!

dd if=/dev/zero of=/dev/sdb1   

Затем: (обратите внимание на изменения в разделе набега!)

mdadm /dev/md0 -a /dev/sdb3

Лучше всего ожидать набега, чтобы закончить восстанавливать. Установка личинки должна работать над новым диском.

В этой точке у Вас должен быть raid1 с Вашим старым диском MBR и новым диском GPT. Если Вы не заменяете диск MBR, Вы могли бы повторить процесс сбоя, разделения GPT и передобавления к/dev/md0.

Но я хотел заменить диск MBR большим, таким образом, я должен был закрыться. Этот старый диск был моим резервным копированием, и я не хотел приводить его к сбою в mdadm, на всякий случай были проблемы. Таким образом, я вытянул диск, дающий мне офлайновое резервное копирование.

Если Вы приводите старый диск к сбою, заменяете его и перезагрузка, надо надеяться, начальные загрузки Ubuntu с ухудшенным массивом, и можно повторно разделить с GPT и повторно добавить к массиву.

Моя система mdadm radi1, кажется, загружается с ухудшенным зеркалом, таким образом приведение к сбою диска, затем закрывающегося, возможно, работало на меня.

Однако, если Ваш диск на самом деле перестал работать, или Вы заменяете его, не приводя его к сбою, Linux не может загрузиться правильно и бросить Вас в initramfs.

Проблема находится в/scripts/local-block/mdadm:

mdadm -q --assemble --scan --no-degraded || true

Это предотвращает запуск/dev/md0 правильно, таким образом, он не может смонтировать корневую файловую систему.

Можно разбудить систему от оболочки initramfs:

# /dev/md0 is "up" but not mountable so stop it
mdadm --stop /dev/md0

# start it degraded
mdadm -q --assemble --scan

# if /dev/md0 is extfs it should be mountable now
# I use lvm and had to start manually:
lvm vgchange -ay

Можно хотеть исправить iniramfs сценарии. Документы Ubuntu могут быть неправильными об опции BOOT_DEGRADED. Сценарий/usr/share/initramfs-tools/scripts/local-block/mdadm, и необходимо было бы восстановить initrd и т.д.

После начальной загрузки можно закончить делить заменяющий диск с GPT и переустанавливать личинку

Изменение размеров

Смысл всего этого должен был использовать GPT и использовать более крупный диск. После того, как/dev/md0 полностью синхронизировался, и система была рабочей/загрузочной, я расширил RAID, физический том, логический том и ext4 файловые системы.

На новых более крупных дисках необходимо было сделать новые, большие разделы RAID. (Если бы Вы не сделали, то необходимо смочь, увеличивают раздел без потери данных с помощью gparted).

Удостоверьтесь, что массив возрос и синхронизировавший [UU] и чистое состояние

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

              md0 : active raid1 sdb3[3] sda3[2]
              3906783047 blocks super 1.2 [2/2] [UU]
              bitmap: 2/8 pages [8KB], 262144KB chunk

# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Thu May  3 22:06:08 2018
        Raid Level : raid1
        Array Size : 3906783047 (3725.80 GiB 4000.55 GB)
     Used Dev Size : 3906783047 (3725.80 GiB 4000.55 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun Jun  2 13:45:17 2019
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : mysystem:0  (local to host mysystem)
              UUID : xxxxx
            Events : 1995897

    Number   Major   Minor   RaidDevice State
       3       8       35        0      active sync   /dev/sdb3
       2       8        3        1      active sync   /dev/sda3

Теперь можно расширить систему для большего дискового пространства

# Grow the RAID. Docs suggest using a backup file on another drive
# mdadm didn't seem to use the backup file but doesn't hurt to include

mdadm --grow --backup-file=/mnt/otherdisk/grow_md0.bak /dev/md0 --size=max

# Have to grow the physical volume. By default uses all available space
pvresize /dev/md0

# You can extend logical volumes or create new ones
# I extended an existing one to use it all  
lvextend -l +100%FREE  /dev/mysystem/data

# 
resize2fs /dev/mapper/mysystem-data   # should be same as /dev/mysystem/data

На данном этапе у меня есть загрузочный mdadm raid1 и LVM, а также резервный USB на всякий случай

0
ответ дан 27 May 2019 в 23:44

Другие вопросы по тегам:

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