GRUB2 chainloader: Почему это не работает?

Я пытаюсь создать мультизагрузочный USB-накопитель, используя GRUB2 для загрузки различных разделов на диск. Это не работает. Мне не нужны советы о том, как создать мультизагрузочную флешку; Я знаю, что есть много способов сделать это. Меня интересует только то , почему этот метод не работает.

Некоторые предпосылки: у меня два USB-накопителя, давайте назовем их USB1 и USB2. В настоящее время я пытаюсь установить Debian Wheezy на любом из них в многозадачном режиме. Теперь, если я просто dd iso на USB1 (/ dev / sdb):

dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdb 

Это создает хороший загрузочный диск, из которого я могу установить Debian. Кроме того, если я устанавливаю GRUB2 на USB2, я могу успешно загрузить USB1 с него:

 search --label --set=root "Debian 7.0.0 i386 1" chainloader +1 boot 

Теперь для моей проблемы: если я вместо этого создаю второй раздел на USB2 и dd iso на это:

 dd conv=notrunc bs=4M if=/path/to/iso of=/dev/sdc2 

Неправильная загрузка. Он не выдает никакого сообщения об ошибке, но просто дает мне черный экран с мигающей черточкой (не отвечает). (Я пробовал это с обоими дисками, поэтому я не думаю, что виноваты аппаратные средства).

Почему это не работает? В чем разница между загрузкой другого диска и перегрузкой другого раздела на том же диске, когда они содержат одни и те же данные?

Прежде всего, образ диска – это нечто иное, чем образ раздела. Вы пытаетесь использовать свое (похоже, образ диска) как и то, и другое, что неправильно. Не думайте, что все нормально, если dd не даст никаких ошибок: он с радостью сделает все, что вы ему скажете, если нет какой-либо реальной ошибки ввода-вывода.

Когда вы загружаете диск в привод, GRUB будет искать главную загрузочную запись – это то, что запускает содержимое диска и содержит загрузочный код. Однако структура разделов различна – она ​​даже не начинается с кода; он имеет загрузочную запись, но в другом месте. GRUB также может загружать эту нагрузку; Однако процедура отличается. Когда вы помещаете образ диска в раздел, вы не создали ничего легко доступного и наверняка GRUB не ожидает там MBR. Вместо этого он запускает некоторый случайный машинный код, который никогда не бывает здоровым для вашего ПК.

Чтобы выполнить эту работу, вам нужно будет скопировать содержимое раздела Debian и установить на нем GRUB. Если на пути не будет какой-то ошибки, она должна работать безупречно. Не забудьте заново /dev/sdc2 свой /dev/sdc2 !