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

621
JMY1000

Фон

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

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

вопрос

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

enter image description here

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

enter image description here

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

enter image description here enter image description here

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

enter image description here

Вопрос

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

0
Обратите внимание, что загрузочные компакт-диски (например, isohybrid) могут быть довольно сложными и иметь несколько видов загрузочных записей, несколько таблиц разделов и даже перекрывающиеся файловые системы. ([Например] (https://mjg59.dreamwidth.org/11285.html). [Также] (https://mjg59.dreamwidth.org/4957.html).) Другими словами, только потому, что он выглядит пустым в файловом менеджере не означает, что он пуст. grawity 6 лет назад 1
@ Grawity Спасибо за дополнительную информацию. Основываясь на том факте, что для изображения существует три основных функции, кажется логичным, что что-то в этом роде происходит. Тем не менее, возникает вопрос, как я могу создать загрузочный носитель, используя изображение. JMY1000 6 лет назад 0
Вы пытались записать образ на USB _directly_, без каких-либо инструментов преобразования? (Например, `dd` или Win32DiskImager. Не загружается.) grawity 6 лет назад 0
@ Grawity у меня нет: было бы [это] (https://askubuntu.com/questions/372607/how-to-create-a-bootable-ubuntu-usb-flash-drive-from-terminal) быть правильным местом смотреть? У меня нет опыта работы с `dd`. `sudo dd if = inputfile.img of = / dev / disk bs = 4m && sync`, похоже, то, что они рекомендуют. JMY1000 6 лет назад 0
Это должно сработать, если вы _ver_ осторожны с параметром `of =` (не случайно обнулите ваш настоящий жесткий диск!). Я думаю, что у macOS есть возможность в Disk Utility сделать то же самое. grawity 6 лет назад 0

1 ответ на вопрос

0
grawity

Попробуйте написать изображение без использования инструментов преобразования (например, 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 присутствует.

Ни `dd`, ни Win32DiskImager не работали; hexdump также не дал ожидаемых результатов (все в этом диапазоне - 00 с.) Однако запуск полного hexdump показал, что данные явно отличны от нуля. Первые из этих данных не отображаются до 0x00008000, но имеют текст «CD001 ACRONIS_MEDIA». Есть также текст по адресу 0x00008800, который гласит «CD001 EL TORITO SPECIFICATION», прежде чем действительно перейти к данным около 0x00013800. JMY1000 6 лет назад 0
Я вижу, что он загружается как CD (есть сектор El Torito), но _не_ как обычный диск (сектор MBR пуст), так что вам _не понадобится какой-то инструмент преобразования. Для BIOS разработчик Rufus [говорит, что это будет очень сложно] (https://github.com/pbatard/rufus/wiki/FAQ#List_of_images_Rufus_isnt_compatible_with). Ранее вы продемонстрировали, что компакт-диск загружается в режиме UEFI, поэтому теоретически было бы легко извлечь _that_ на USB, предполагая, что ваша настоящая прошивка совместима с UEFI - но у меня нет никаких инструкций для этого. Посмотрим, сможет ли Руфус сделать это для UEFI. grawity 6 лет назад 0
Rufus отказывается открывать образ с ошибкой «Этот образ либо не загружается, либо использует метод загрузки или сжатия, который не поддерживается Rufus ...». При открытии ISO с 7-Zip отображается одна папка с именем [BOOT] с двумя файлами: https://i.stack.imgur.com/BDhb5.png JMY1000 6 лет назад 0
Также верно ли, что [MBR не требуется для загрузочных CD / DVD?] (Https://superuser.com/questions/1063220/windows-10-iso-on-usb-refuses-to-boot) JMY1000 6 лет назад 0
Похоже, что VM нормально загружается с .iso даже с отключенным EFI. Также попытка различных конфигураций для создания ISO в True Image не создала раздел MBR. JMY1000 6 лет назад 0