Как я могу запустить процесс загрузки загрузочного компакт-диска после обычной загрузки?

Я дурачился с разными версиями программного обеспечения для множественной загрузки, пытаясь создать USB-контакт с моими любимыми инструментами для ПК и папку с ISO, для которой загружаться после обычной загрузки в DOS (или что-то в этом роде).

Но многие ISO-образы работают неправильно или вообще не работают (например, загрузочные компакт-диски Windows и т. д.), поэтому у меня появилась новая идея:

Можно ли создать загрузочный USB-разъем MS-DOS, а затем после загрузки запустить обычную загрузочную последовательность компакт-диска из командной строки DOS?

Нравится:

  • Включите ПК.
  • Нажмите клавишу, чтобы открыть меню последовательности загрузки (в моем случае F12).
  • Выберите «Загрузка с USB».
  • Пусть USB загрузится в DOS (... или что-то еще можно использовать для этой цели?).
  • Из подсказки DOS запустите «какую-то программу/скрипт», чтобы запустить загрузочный компакт-диск в обычном оптическом приводе, как если бы он был запущен непосредственно из меню последовательности загрузки BIOS.

(если бы это было возможно, я бы затем добавил меню с возможностью запуска программного обеспечения виртуального CD-привода и монтирования файлов ISO на мой USB-контакт)

Спасибо за любые советы и/или идеи и мысли!


person Christian Hollbaum    schedule 10.07.2012    source источник
comment
Вы можете посмотреть, как это делает Grub (загрузчик). Я полагаю, что он в основном загружает и выполняет загрузочный сектор.   -  person fork0    schedule 10.07.2012
comment
Я нашел это на родственном сайте: superuser.com/questions/154133/grub-boot-from-iso Может приблизить вас к тому, чем вы занимаетесь...   -  person sacredfaith    schedule 10.07.2012
comment
Я пробовал Grub разными способами, но не повезло. Может быть, это мои ISO-образы (например, один из них — загрузочный компакт-диск McAfee SafeBoot для работы с шифрованием конечной точки — я пытался добавить его на свой USB-накопитель с помощью Xboot и YUMI, используя эмуляцию образа ISO Grub4dos, MemDisk и т. д. — пока безуспешно)   -  person Christian Hollbaum    schedule 10.07.2012


Ответы (1)


Теоретически вы можете использовать Int13h/AH=4Ch для запуска загрузки с компакт-диска. из кода, работающего под BIOS. Однако, кажется, я читал, что большинство реализаций BIOS на самом деле не реализуют эту часть Эль Торито. (Это было давно, так что, возможно, у вас не будет этой проблемы на современном BIOS, хотя я бы на это не рассчитывал.)

Важно отметить, что (по моему опыту) это вряд ли сработает после загрузки операционной системы. DOS не изменяет режим ЦП (при условии, что вы не устанавливаете какие-либо драйверы расширенной памяти), но изменяет системный контекст другими способами — например, IIRC, он перехватывает несколько прерываний BIOS. В результате, когда DOS запущен, вы не можете перезаписать его (чтобы загрузить другую ОС с компакт-диска) без того, чтобы все не перевернулось.

Итак, чтобы это работало (а) вы должны запустить свой код в чистом BIOS без операционной системы; и (б) вам нужен BIOS, который правильно реализует функцию загрузки. Первая часть — это просто вопрос освоения голой сборки и функций BIOS, но вторая часть в значительной степени вне вашего контроля.

person Harry Johnston    schedule 10.07.2012
comment
Спасибо за это прекрасное объяснение! Это дает гораздо больше понимания. В настоящее время я пытаюсь использовать EasyBCD и получаю ту же ошибку, что и с Grub: ISO-образ смонтирован и успешно загружается, но затем при логотипе WinXP я внезапно получаю синий экран с ошибкой 0x0000007B — я полагаю, это вызвано неправильной обработкой Int13h , так что печеньки для меня нет ;-( - person Christian Hollbaum; 11.07.2012
comment
Как только вы откажетесь от загрузки с настоящего CD-привода и попытаетесь загрузить файл ISO, вы получите совершенно другую рыбу. Как только Windows (или другая ОС) перестает использовать функции ввода-вывода BIOS и пытается использовать свои собственные драйверы устройств, виртуализированный CD-привод исчезает, и все рушится. Однако он может работать с Windows PE версии 3, потому что первое, что он делает, — это считывает образ ОС на RAM-диск, и я думаю, что в этот момент он все еще использует ввод-вывод BIOS. - person Harry Johnston; 11.07.2012