Немного предыстории:
- Исходя из в значительной степени Windows (хотя я знаком с Ubuntu и т. Д.) И использую компьютер с Windows 7 для выполнения этой задачи
- Вы успешно установили GRUB на MBR USB-накопителя (8 ГБ FAT32):
- Создали базовую структуру на диске: / boot / grub, / boot / img, / boot / kernel
Вопрос:
У меня есть некоторые базовые вопросы для начинающих, но у меня возникли проблемы с поиском ответов через Google / StackExchange и т. Д.
- Я понимаю, что в папке / boot / img / [SystemName] будет храниться образ для конкретной системы, которая может использовать различные (или одни и те же) версии ядер Linux, хранящиеся в каталоге / boot / kernel (по крайней мере, так я хотел бы его настроить)
- Однако большинство этих систем просто имеют ядро в своих каталогах, называемое «linux» (без указания версии). Я могу выяснить, какое ядро они все используют, но какое самое лучшее место, чтобы заставить сами ядра копировать в / boot / kernel?
- После того, как я получу ядра, я думаю, что остальное в основном копирует устройство в / boot / img / и создает соответствующую запись в menu.lst, правильно? Я могу сделать это на основе системы, как только я смогу получить ссылки на ядра.
Общая цель:
Я пытаюсь создать 8 ГБ флэш-накопитель USB, который позволит мне загружать несколько ОС из меню загрузки GRUB. Чтобы добавить или вычесть операционные системы, я хотел бы только скопировать соответствующие файлы в папку / boot / img / [SystemName] и / boot / kernel в зависимости от ситуации, а затем отредактировать файл menu.lst. Итак, этот первый шаг - поиск ядер, которые разделяют многие из этих ОС, так как я надеюсь уменьшить дублирование.
kernel
usb
dual-boot
boot-loader
grub-legacy
SeanKilleen
источник
источник
Ответы:
То, что вы пытаетесь достичь, это растягивать загрузочную технологию :) Однако я думаю, что это возможно, хотя я недостаточно осведомлен, чтобы дать полное представление.
Во-первых, как уже было сказано, требования к дистрибутивам очень разные. Во-вторых, хорошая вещь, с другой стороны, вы также можете найти дистрибутивы, которые требуют минимальных требований.
Я бы порекомендовал использовать GRUB4DOS в качестве загрузчика. Посмотрите эту ссылку, как использовать его с USB (потому что он имеет команду find --set root -, которая важна, если у вас есть мобильное устройство, такое как USB).
Затем вы должны решить, сколько разделов вы будете использовать. Стандартная «Полная установка» всегда в одном разделе. Так что если у вас есть 8 ГБ USB-накопитель и занимает 4 ГБ раздела (что позволяет минимальную установку), вы будете ограничены 2 различными «Полными установками» основных дистрибутивов, таких как Debian или Fedora.
Тем не менее, есть несколько небольших и специализированных дистрибутивов Linux. Например, «Puppy Linux» очень маленький и имеет специальный режим «Frugal Installation». Он поставляется во многих вариантах (например, есть MacPup с попытками реализовать Apple, такой как Desktop, или Fatdog64, который является 64-битным Linux).
В этом режиме «Frugal Installation» он просто использует ровно 1 каталог и может быть установлен параллельно с существующим Linux или Windows на жестком диске (или USB). Я уверен, что есть другие дистрибутивы, которые поддерживают подобные режимы.
Поскольку Puppy Linux имеет небольшой размер (<150 МБ) и при условии, что вы резервируете небольшой файл сохранения для каждой установки (512 МБ), вы можете легко установить на USB-накопитель 10 различных операционных систем. Есть даже более мелкие Linux (Slitaz, Tinycore), которые вы можете использовать.
Например, я прикрепляю файл menu.lst (GRUB4DOS) из моей текущей установки на ПК. Первые 8 записей - это разные установки Puppy Linux на hd0,2 (т.е. 3-й раздел на 1-м жестком диске), затем минимальный Установка Debian в небольшом дополнительном разделе, а также оригинальная Windows-XP.
Menu.lst на вашем USB может выглядеть примерно так же, команда GRUB4DOS
find --set-root --ignore-floppies /lupq511/initrd.gz
(ищет этот файл на всех дисках) может быть очень полезна, если вы используете USB, поэтому вам не нужно использовать фиксированные записи для вашего диска.С вышеупомянутой информацией некоторые комментарии на ваши оригинальные вопросы:
Q: * Я понимаю, что в папке / boot / img / [SystemName] будет храниться образ для конкретной системы, которая может использовать различные (или одинаковые) версии ядер Linux, хранящиеся в каталоге / boot / kernel (по крайней мере, вот как бы я хотел это настроить)
A: Я не уверен, что это сработает, так как большинство крупных дистрибутивов ожидают получить исключительное право на свой раздел и установить определенную структуру каталогов для своих файлов. На мой взгляд, лучше соблюдать настройки по умолчанию и предоставлять то, что ожидает дистрибутив, то есть некоторым нужен эксклюзивный раздел, а другим будет просто каталог в общем разделе. Я не говорю, что невозможно установить несколько операционных систем на один раздел не по умолчанию, но это напрашивается на неприятности и, на мой взгляд, не практично для новичка в Linux. Возможный обходной путь, который я упоминаю в нижней части моего поста («Wubi-like» установки).
Q: * Тем не менее, большинство этих систем просто имеют ядро в своих каталогах под названием "linux" (без указания версии). Я могу выяснить, какое ядро они все используют, но как лучше всего заставить сами ядра копировать в / boot / kernel?
A: Я думаю, что ядра должны идти именно там, где обычно есть дистрибутивы. Нет необходимости хранить их в отдельной папке / boot / kernel, и я также не рекомендовал бы пытаться разделить их между дистрибутивами. Память для ядра минимальна (примерно 2-3 МБ). Версий и подверсий действительно много, а иногда даже и специальные патчи, применяемые к ядрам дистрибутивов. Подключить другое / непроверенное ядро - ненужный эксперимент.
Q: * После того, как я получу ядра, я думаю, что остальное в основном копирует устройство в / boot / img / и создает соответствующую запись в menu.lst, правильно? Я могу сделать это на основе системы, как только я смогу получить ссылки на ядра.
A: Как упоминалось ранее, лучше создавать отдельные разделы для тех дистрибутивов, которые в них нуждаются, и смешивать их в не очень жадных дистрибутивах в своих собственных папках. Рассматривайте ядро, initrd и остальную часть дистрибутива как единое целое.
Одна последняя идея. Если вы не хотите использовать разные разделы, вы можете попробовать что-то вроде установки «WUBI» для дистрибутивов, требующих полной установки в свой собственный раздел. Это означает, что вы создаете большие файлы со своими файловыми системами ext2 / ext3 на USB, затем монтируете их как «диски» и устанавливаете в них ОС. (Я называю это WUBI, потому что это самое известное приложение).
Для загрузки «установки Wubi» должна быть следующая запись в Grub4dos menu.lst.
От сюда .
Видите ли, есть две команды «set root», вторая после «root.disk», которая содержит Linux, смонтирована как loop0.
Я надеюсь, что мог бы дать некоторые идеи, хотя это не полный проход.
источник
Вот два руководства:
Я думаю, что оба используют отдельные разделы для каждого ядра.
Записи в " /boot/grub/menu.lst " выглядят так:
источник
Это действительно зависит от того, какие дистрибутивы вы там ставите. Некоторые из них делают некоторые неприятные вещи в initramfs, поэтому это становится трудным. Некоторые живые дистрибутивы ищут ярлык, некоторые ищут uuid. Вы не можете предоставить это.
Решение не простое, вы должны создать новые настроенные ram-диски для ваших живых дистрибутивов.
Надеюсь, я не ошибся: D
источник
Вам наверняка понадобится какое-то пользовательское пространство для каждого из этих ядер. (Программы, конфигурация, работает.) Традиционно, вы бы использовали по крайней мере один раздел для каждой отдельной ОС, а раздел GRUB сам был бы смонтирован как / boot (так что вы фактически не имели бы загрузку как подкаталог этого раздел; это будет корневой каталог с grub / в качестве подкаталога.)
источник