zxen Доброго времени!
Здорово придумал
find --set-root эту команду часто используют ,не известно за чем.Разберем например выше написанный пример:
title Alkid LiveCD Full (03.2012)
find --set-root /miniNT/SETUPLDR.BIN
chainloader /miniNT/SETUPLDR.BIN
В данном случае чаще всего загрузка происходит с флешки которая определяется как hd0,0 (первый жесткий диск) ,то есть ГРУБ в первую очередь будет искать файл и папку указанную в меню именно на hd0,0 .Так как при поиске файла ГРУБ сначала шерстит жесткие диски на наличие папки или файла, потом CD и флопик.Из этого следует : что будет работать и так:
title Alkid LiveCD Full (03.2012)
chainloader /miniNT/SETUPLDR.BIN
title Alkid LiveCD Full (03.2012)
root (hd0,0) Команда root делает указанное устройство корневым.
chainloader /miniNT/SETUPLDR.BIN
Если папка с файлом лежит на другом диске (не на hd0,0),в таком случае команда find --set-root необходима.Хотя если вы знаете как ГРУБ определяет ваш диск где лежит папка с файлом ,можно прописать так:
title Alkid LiveCD Full (03.2012)
root (hd1,0) второй жесткий диск .
chainloader /miniNT/SETUPLDR.BIN
Удобно использовать find --set-root для поиска маркерного файла.Например: при создании CD или DVD на загрузчике ГРУБ используем для установки ВИН 7 стандартную команду
title Setup Win 7
root (cd) - сделать СД корневым устройством
chainloader /bootmgr
Все вроде правильно и с диска работает,но если все из образа извлечь на флешку.Придется менять команды меню ,что крайне не удобно.(особенно если вы хотите универсальности) .Что бы созданный вами диск можно было распаковать на флешку не чего не меняя можно использовать команду find --set-root и файл маркер.
При создании диска ложим в корень текстовый файл ,допустим puh.txt и пишем в меню:
title Setup Win 7
find --set-root /puh.txt - найти и сделать puh.txt корневым
chainloader /bootmgr
При такой команде ГРУБ будет искать файл puh.txt ,и запустит выполнение файла bootmgr с устройства в корне которого лежит файл puh.txt.Понятно что если вы извлечете все из образа на флешку ,на флешке окажется и puh.txt .Соответственно и bootmgr запустится с флешки .То есть не надо вносить не каких изменений в меню.
Таким же образом можно грузить файлы находящиеся на другом диске.Что бы не выяснять как ГРУБ определяет диски.
Допустим есть USB HDD разбитый на два раздела.Ложим на один раздел ВИН 7 Х32, на второй раздел ВИН 7 Х64
Для того что бы правильно прописать загрузку ,надо знать как ГРУБ определяет жесткие диски и как разбит ваш диск (какой у вас второй раздел ,основной или логический) для обычного пользователя это достаточно сложно.Здесь и поможет файл маркер.
Создаем в корне диска с ВИН 7 Х32 текстовый файл puh.txt ,в корне второго раздела где ВИН 7 Х64 создаем текстовый файл dddd.txt. В меню пишем:
title Setup Win 7 Х32
find --set-root /puh.txt
chainloader /bootmgr
title Setup Win 7 Х64
find --set-root /dddd.txt
chainloader /bootmgr
И наплевать как там ГРУБ диски определяет.