Загрузочный носитель Acronis, похоже, не имеет файловой системы, но успешно загружается в ВМ, но не на голом железе

Фон

Одна из моих обязанностей требует наличия множества компьютеров с серией предварительно сконфигурированных программных пакетов, доступных для использования в достаточно короткие сроки. Эти компьютеры имеют различное оборудование, и никаких автоматических обновлений любого рода (не говоря уже о централизованной системе) не существует. Чтобы решить как проблему развертывания этих пакетов, так и их обновления, я пытался использовать Acronis True Image. Следуя различным инструкциям на виртуальной машине Windows 10, размещенной на macOS через VirtualBox, я:

  1. Использовал Acronis Snap Deploy 5 для создания загрузочного носителя Acronis.iso.
  2. Загрузился с этого изображения.
  3. Создано главное изображение в автономном режиме.
  4. На новой виртуальной машине загрузился с загрузочного носителя и успешно развернул главный образ.

вопрос

Хотя.iso отлично работает для загрузки виртуальной машины:

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

Что подтверждается монтированием образа в macOS и Windows:

Тем не менее, на изображении определенно есть реальные данные:

Вопрос

Как это возможно, что.iso прекрасно загружается с VirtualBox, но не имеет видимой файловой системы и не может быть записан на любой USB-диск? Как я могу создать загрузочную версию этого образа для использования с "настоящим" компьютером?

1 ответ

Попробуйте написать изображение без использования инструментов конвертации (например, unetbootin). Вы можете использовать обычный dd или инструменты прямого формирования изображений, такие как Win32DiskImager. В macOS этот пост предлагает:

  1. diskutil list найти устройство "/dev/diskX";
  2. diskutil unmountDisk /dev/diskX;
  3. dd if=/path/to/iso of=/dev/rdiskX bs=1M (комментарии предлагают "rdisk" для производительности)
  4. diskutil eject /dev/diskX,

ISO-образы - это образы компакт-дисков (название происходит от "ISO 9660"), и они структурированы не так, как "обычные" диски. Самое главное, информация о загрузке находится в другом месте - на компакт-диске используется загрузочная запись "El Torito" в секторе 17; BIOS-совместимые диски используют MBR в секторе 0; UEFI-совместимые диски используют GPT в секторе 1 и целый отдельный раздел, содержащий загрузчик.

Таким образом, для загрузки образа CD с USB есть два варианта:

  • Такие программы, как Rufus и Unetbootin, не просто "записывают" изображение; они конвертируют чистый образ CD в USB.

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

    Это требует, чтобы программа преобразования действительно понимала, как работает образ компакт-диска. (Например, если на компакт-диске использовался isolinux, конвертер должен установить syslinux на USB-накопитель.)

  • Такие программы, как isohybrid, подготавливают сам образ таким образом, чтобы он одновременно содержал CD (ISO 9660), BIOS (MBR) и загрузочный код UEFI, чтобы его можно было записать на любой тип диска без дальнейшего преобразования.

    В результате получается изображение, содержание которого зависит от того, как вы на него смотрите. При записи на компакт-диск ОС найдет обычную файловую систему ISO 9660. Когда точно такие же данные записываются на USB-диск, ОС найдет большой "пустой" раздел и очень маленький "загрузочный"EFI-раздел. Пример. Пример.

Оба метода сложны, но в худшем случае пытаются объединить оба. Например, в прошлом Unetbootin был хорошим инструментом преобразования CD→USB, но теперь, когда дистрибутивы Linux часто поставляются в виде уже совместимых с USB гибридных ISO-образов, Unetbootin имеет тенденцию неправильно понимать их содержимое и фактически выводит изображение, которое больше не является ботинки.

Наконец, диски не должны иметь видимых файлов для загрузки. Для загрузки диска или диска необходим минимум, но кроме этого, все контролируется самим загрузчиком disc/k. Поэтому не имеет значения, что вы видите полностью пустой диск; загрузчик может просто искать свои собственные данные в другом месте.


В вашем случае, вполне вероятно, что изображение уже в каком-то гибридном формате; файловой системы ISO 9660 достаточно, чтобы микропрограмма могла найти загрузчик, но остальная часть ОС скрыта где-то еще.

Вы можете попытаться определить, действительно ли он совместим с форматом загрузки BIOS MBR, используя:

head -c 512 file.iso | hexdump -Cv

Если самая последняя строка (000001f0) заканчивается 55 aa, это означает, что таблица разделов BIOS MBR присутствует.

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