Как можно устранить ошибку "wimboot: Bad CPIO magic", возникающую при попытке PXE загрузить образ WIM?

Здравствуйте! Я работаю над проектом, связанным с загрузкой образов Windows Server через сеть на Linux (Ubuntu Server 20). Я наткнулся на интересную <a href="https://habr.com/ru/articles/268827/" rel="nofollow">статью</a> на Хабре, где нашел подробную инструкцию. Однако, в отличие от автора, я столкнулся с ошибкой на финальном этапе: <br/> <br/> <i>Bad CPIO magic<br/>
FATAL: could not extract initrd files</i> <br/> <br/> Мой скрипт для файла winpe.ipxe аналогичен приведенному в статье. Позволю себе продублировать его: <br/> <br/> <pre><code class="bash">#!ipxe
kernel http://192.168.1.1/windows/wimboot
initrd http://192.168.1.1/windows/boot/bcd BCD
initrd http://192.168.1.1/windows/boot/boot.sdi boot.sdi
initrd http://192.168.1.1/windows/boot/boot.wim boot.wim
boot</code></pre> <br/> <br/> Я использую загрузку по HTTP, и клиент видит указанные файлы и загружает их, но, похоже, что-то идет не так.
  • 23 марта 2025 г. 11:44
Ответы на вопрос 1
Ошибка "wimboot: Bad CPIO magic" указывает на то, что wimboot не может правильно распознать содержимое, которое оно пытается извлечь. Это может происходить по нескольким причинам. Вот несколько шагов, которые могут помочь устранить эту ошибку:

1. **Проверьте правильность файлов**:
   Убедитесь, что все загружаемые файлы (wimboot, BCD, boot.sdi и boot.wim) совместимы и не повреждены. Вы можете попробовать загрузить и проверить их на локальной машине, чтобы убедиться, что они рабочие.

2. **Загрузите wimboot с правильной версии**:
   Убедитесь, что версия wimboot, которую вы используете, соответствует версии Windows, с которой вы работаете. Правильно выберите последнюю стабильную версию с репозитория [wimlib](https://wimlib.net/).

3. **Проверьте путь к файлам**:
   Убедитесь, что указанные пути к файлам верны, и что файлы доступны по указанным HTTP-URL. Попробуйте получить доступ к этим файлам через браузер или wget/curl, чтобы убедиться в их доступности.

4. **Правильное форматирование boot.wim**:
   Убедитесь, что ваш образ boot.wim правильно создан и содержит необходимые загрузочные файлы. Вы можете использовать `wimlib-imagex` для проверки содержимого образа:

   ```bash
   wimlib-imagex info path/to/boot.wim
   ```

5. **Корректные параметры загрузки**:
   Возможно, у вас есть ошибки в конфигурации загрузки. Убедитесь, что остальные файлы (BCD и boot.sdi) корректны. Пример загруженного BCD для Windows PE можно найти в документации по Windows PE.

6. **Настройте сервер**:
   Убедитесь, что ваш HTTP-сервер (например, `nginx` или `apache`) правильно настроен для предоставления файлов с нужными MIME-типами. Например, может потребоваться добавить соответствующие настройки для `.wim`, `.sdi` и др. Если сервер не передает файлы с корректными заголовками, это может вызвать ошибки при загрузке.

7. **Логи и диагностика**:
   Проверьте логи вашего HTTP-сервера на наличие ошибок, связанных с предоставлением файлов. Также просмотрите логи клиента PXE, если это возможно.

8. **Обновите iPXE**:
   Если вы используете собственный сбор iPXE, рассмотрите возможность обновления до более новой версии, так как могут быть исправления и улучшения, которые касаются поддержки wimboot.

Если после выполнения всех этих шагов ошибка все еще сохраняется, попробуйте также поэкспериментировать с другими образами Windows, чтобы проверить, является ли проблема специфичной для конкретного образа или конфигурации.
Похожие вопросы