Как выполнить миграцию физического компьютера в виртуальную машину Proxmox, чтобы клонировать Ubuntu с загрузчиком UEFI?

Здравствуйте! <br/> <br/> Я занимаюсь миграцией физического сервера с Ubuntu 18.04, который использует UEFI-загрузчик, в виртуальную машину на платформе Proxmox VE. <br/> Вот последовательность действий, которые я выполнил: <br/> <br/> 1. <b>Создание резервной копии:</b> Я использовал команду `tar` для создания архива всей системы, исключая определённые системные директории, такие как `/proc`, `/tmp`, `/mnt`, `/sys`, `/run`, и `/dev`: <br/> <br/> <pre><code class="bash">sudo tar --exclude=/proc --exclude=/tmp --exclude=/mnt --exclude=/sys --exclude=/run --exclude=/dev -cvpzf /home/user/backups/my_backup.tar.gz /</code></pre> <br/> <br/> 2. <b>Перенос на Proxmox:</b> Я перенёс созданный архив на сервер Proxmox и создал новую виртуальную машину, используя UEFI (OVMF). <br/> <br/> 3. <b>Подготовка разделов:</b> Виртуальная машина была загружена с Live CD/USB Ubuntu, где я создал следующие разделы: <br/> <b>EFI-раздел:</b> Я отформатировал его в FAT32 и установил флаг загрузки. <br/> <b>Корневой раздел:</b> Я отформатировал его в ext4. <br/> <br/> 4. <b>Восстановление данных:</b> Я смонтировал эти разделы и распаковал архив в корневой каталог виртуальной машины. <br/> <br/> <pre><code class="bash">sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo tar -xvpzf /mnt/my_backup.tar.gz -C /mnt/</code></pre> <br/> <br/> 5. <b>Установка GRUB для UEFI:</b> Я вошёл в <i>chroot</i> и попытался установить и настроить загрузчик GRUB: <br/> <br/> <pre><code class="bash">for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done
   sudo chroot /mnt
   sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
   sudo update-grub</code></pre> <br/> <br/> 6. <b>Установка GRUB для UEFI:</b> Существуют некоторые сложности, которые я хочу обсудить.
  • 31 августа 2024 г. 18:44
Ответы на вопрос 2
Здравствуйте!

Вы на правильном пути к миграции вашего физического сервера в виртуальную машину на Proxmox с использованием UEFI. Давайте разберем шаги, которые вы выполнили, а также возможные проблемы, с которыми вы можете столкнуться на этапе установки GRUB, и как их решить.

### Возможные проблемы и решения

1. **Проблемы с установкой GRUB**:
   - Убедитесь, что EFI-раздел (например, `/dev/sda1`) правильно смонтирован в `/mnt/boot/efi`. Это необходимо для успешной установки GRUB.
   - Убедитесь, что директория `/boot/efi` была создана до установки GRUB. Если ее нет, создайте ее: 
     ```bash
     mkdir -p /mnt/boot/efi
     ```

2. **Проверка файловой системы EFI**:
   - Убедитесь, что на EFI-разделе действительно присутствует файловая система FAT32. Вы можете использовать команду `sudo fdisk -l` или `lsblk` для проверки.
   - Если файловая система EFI неправильно отформатирована, переотформатируйте ее.

3. **Доступность необходимых пакетов**:
   - Убедитесь, что на вашем Live CD/USB версии Ubuntu имеются все необходимые пакеты, такие как `grub-efi`, `efibootmgr` и др. Если этих пакетов нет, установите их:
     ```bash
     sudo apt update
     sudo apt install grub-efi-amd64 efibootmgr
     ```

4. **Настройки UEFI в Proxmox**:
   - Убедитесь, что виртуальная машина действительно настроена для использования UEFI (OVMF). Перегрузите виртуальную машину, если вы вносили изменения в конфигурацию.

5. **Проверка конфигурации GRUB**:
   - После установки GRUB проверьте файл `/boot/grub/grub.cfg` на наличие корректно сформированных записей. Возможно, вам потребуется выполнить `update-grub`, чтобы убедиться, что записи актуальны.

6. **Перезагрузка и диагностика**:
   - После завершения установки GRUB, перезагрузите виртуальную машину и проверьте, загружается ли система. Если нет, используйте Live CD/USB для диагностики, смонтируйте корневой раздел и проверьте логи загрузки в `/var/log`.

### Пример дополнительных шагов

Если все шаги выполнены корректно, но система не загружается, попробуйте:

1. **Использовать `efibootmgr` для создания записи загрузки**:
   ```bash
   efibootmgr -c -d /dev/sda -p 1 -L "Ubuntu" -l "\EFI\ubuntu\grubx64.efi"
   ```
   Замените `/dev/sda` и `1` на соответствующий диск и номер партиции вашего EFI-раздела.

2. **Проверить параметры BIOS/UEFI**:
   Иногда UEFI может иметь настройки безопасности, такие как Secure Boot. Выключите Secure Boot, если это включено.

3. **Логи загрузки**:
   В случае неудачи, посмотрите файлы лога, такие как `/var/log/syslog` или `/var/log/boot.log`, для выявления проблем.

Если у вас возникнут дополнительные вопросы или трудности, дайте знать, я постараюсь помочь!
Делать полную копию в данном случае контрпродуктивно - надо переносить отдельные сервисы и данные. У вас EOL-версия, на неё не выходят обновления и тащить её в новое место незачем.
Похожие вопросы