Повторно инициализируйте GRUB для незагрузочной установки UEFI zfs 16.04

У меня есть реальная машина под управлением Ubuntu 16.04 с корневой файловой системой zfs, установленное следование инструкциям в https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS

Я установил загрузчик согласно инструкциям:

5.5b Для начальной загрузки UEFI, установите GRUB:

grub-install --target=x86_64-efi --efi-directory=/boot/efi \
      --bootloader-id=ubuntu --recheck --no-floppy

Система хорошо работала в течение трех месяцев с несколькими перезагрузками (главным образом вызванный отключениями питания).

Корневой пул является тремя путями зеркало:

NAME                                                                STATE     READ WRITE CKSUM
rpool                                                               ONLINE       0     0     0
  mirror-0                                                          ONLINE       0     0     0
    ata-SAMSUNG_HM500JI_S1WFJ90S818624-part1                        ONLINE       0     0     0
    ata-ST3250820AS_5QE5BVW5-part1                                  ONLINE       0     0     0
    ata-GB0250C8045_9SF0R2RD-part1                                  ONLINE       0     0     0

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

Теперь сервер не загрузится.

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

В настоящее время я перезагрузил использование живого CD. Выполняя ранние шаги в инструкциях по установке выше, я вижу все пулы zfs, таким образом, данные - все там. Я думаю, что следующий шаг мог бы быть к chroot в эту шпульку, но не уверен, как сделать так, учитывая различные КОРНЕВЫЕ файловые системы и т.д.

Я предполагаю, что информация о загрузке GRUB, по некоторым причинам, была только установлена на диск, который определялся как "запчасть" и который я теперь удалил. Рассматриваемый диск является теперь частью зеркала zfs на другом сервере, таким образом, не возможно отложить его.

Мой вопрос: каков самый легкий способ повторно инициализировать GRUB так, чтобы сервер загрузился? Мне нужно к chroot в находящуюся на диске систему, или это может быть сделано от среды живого CD? Если первый, как я правильно монтирую корневой пул?

2
задан 17 September 2016 в 21:14

2 ответа

В основном запертый из инструкций по установке ZFS в https://github.com/zfsonlinux/zfs/wiki/Ubuntu-16.04-Root-on-ZFS, вот шаги, я раньше получал мою систему, работающую снова.

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

Шаг 1: подготовьте среду установки

1.1 Загрузите Ubuntu Живой CD, выберите Попытку Ubuntu Без Установки и откройтесь, терминал (нажмите Ctrl-Alt-T).

1.2 Дополнительный: Установите сервер OpenSSH в Живой среде CD: Если у Вас есть вторая система, использование SSH для доступа к целевой системе может быть удобным.

$ sudo apt-get --yes install openssh-server

Установите пароль на “человечности” (Живой пользователь CD) учетная запись:

$ passwd

Подсказка: можно найти IP-адрес с IP addr выставочным объемом глобальный. Затем от Вашей основной машины соединитесь с ssh ubuntu@IP.

1.3 Станьте корнем:

# sudo -i

1.4 Установите ZFS в Живой среде CD:

# apt-add-repository universe
# apt update

(проигнорируйте ошибки о перемещении старой базы данных из пути),

# apt install --yes debootstrap gdisk zfs-initramfs

Шаг 2: Узнайте доступные пулы ZFS

2,1 проверки, если пулы ZFS уже импортируются

# zpool list
# zfs list 

2.2 если так, мы должны экспортировать пул zfs, таким образом, мы можем смонтировать его в другом каталоге, таким образом, мы можем chroot к нему

# zpool export rpool

Шаг 3: Chroot в пул ZFS

3,1 пула импорта к местоположению не по умолчанию. Флаг-N (автоматически не монтируются) необходим, потому что иначе корень rpool и пул rpool/root/UBUNTU, оба попытаются смонтироваться на/mnt

# zpool import -a -N -R /mnt

3.2 монтируют корневую систему

# zfs mount rpool/ROOT/ubuntu

3.3 монтируют остающиеся файловые системы

# zfs mount -a

3.4 Свяжите виртуальные файловые системы от среды LiveCD до новой системы и chroot в нее:

# mount --rbind /dev  /mnt/dev
# mount --rbind /proc /mnt/proc
# mount --rbind /sys  /mnt/sys
# chroot /mnt /bin/bash --login

Примечание: Это использует - rbind, не — связывают.

Шаг 4: повторно инициализируйте разделы EFI на всех корневых компонентах пула

4.1 Проверьте, что подстановочный знак получает корректные корневые разделы пула:

# for i in /dev/disk/by-id/*ata*part3; do echo $i; done

4.2 Добавьте запись для/boot/efi для каждого диска к/etc/fstab в целях обработки отказа в будущем:

# for i in /dev/disk/by-id/*ata*part3; \
      do mkdosfs -F 32 -n EFI ${i}; \
      echo PARTUUID=$(blkid -s PARTUUID -o value \
      ${i}) /boot/efi vfat defaults 0 1 >> /etc/fstab; done

4.3 монтируют первый диск

# mount /dev/disk/by-id/scsi-SATA_disk1-part3 /boot/efi

4,4 личинки установки

# grub-install --target=x86_64-efi --efi-directory=/boot/efi \
      --bootloader-id=ubuntu --recheck —no-floppy

4.5 размонтировали первый раздел

# umount /boot/efi

4.6 монтируют второй диск

# mount /dev/disk/by-id/scsi-SATA_disk2-part3 /boot/efi

4,7 личинки установки

# grub-install --target=x86_64-efi --efi-directory=/boot/efi \
      --bootloader-id=ubuntu-2 --recheck —no-floppy

4,8 повторных шага 4.5 к 4,7 для каждого дополнительного диска 4.9 Для добавленной страховки, сделайте установку MBR на каждом диске также

# grub-install /dev/disk/by-id/scsi-SATA_disk1
# grub-install /dev/disk/by-id/scsi-SATA_disk2

Шаг 5: перезагрузка

5.1 Выход от chroot

# exit

5.2 Перезагрузка

# reboot
3
ответ дан 2 December 2019 в 02:50

Самым легким и лучшим способом повторно инициализировать личинку является утилита, названная восстановлением начальной загрузки. Выполните эти шаги:

  1. Начальная загрузка от живого диска Ubuntu и избранная "попытка, не устанавливая"
  2. Открывают терминал и выполняют эти команды:

    sudo -i
    add-apt-repository ppa:yannubuntu/boot-repair
    apt update
    apt install boot-repair
    boot-repair
  3. Выбрал рекомендуемое восстановление

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

Восстановление начальной загрузки полностью повторно инициализирует Вашу личинку и работает хорошо с UEFI.

0
ответ дан 2 December 2019 в 02:50

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

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