Как мне предотвратить, чтобы две ОС забивали файлы grub?

418
Chris Quenelle

Я хочу установить Linux и OpenSolaris на одном жестком диске в разных разделах. Я волнуюсь, потому что OpenSolaris, кажется, активно управляет данными grub при обновлении ОС (часть функции «загрузочной среды»). Есть ли что-то, к чему я должен подготовиться, чтобы не допустить засорения моих данных. Если я позже захочу добавить другую версию linux в ту же систему, каковы соображения? Стоит ли выбирать одну ОС и всегда делать grub обновления с этой ОС? Если так, то как мне использовать установочный iso для новой версии Linux? Не пойдут ли они дальше и самостоятельно изменят данные grub? После того, как я уже загрузился в Linux и хочу обновить свои файлы grub, должен ли я запустить команду grub, которая считывает данные из загрузочного раздела диска и помещает их в локальную файловую систему, в которую я сейчас загружаюсь?

6
Это больше вопрос ИТ, и он не подходит для SO. Это хороший вопрос, но он относится к другому месту. swilliams 15 лет назад 0
Возобновлено. В среде разработки программист может запускать обе эти операционные системы (или две аналогичные ОС) и сталкиваться с этой проблемой, что предотвратит загрузку и, следовательно, остановит разработку. Thomas Owens 15 лет назад 0
Программисты должны есть и спать, но это не делает эти приемлемые темы на SO. То, что это влияет на программистов, не делает его связанным с программированием. ephemient 15 лет назад 0
Еда и сон не являются техническими. Это правильный технический вопрос, который помогает программисту выполнить свою работу. Я думаю, что это так же приемлемо, как найти правильный стул, инструменты для отслеживания времени и тому подобное. Thomas Owens 15 лет назад 0
Я хотел защитить рассуждения свилим. Я не уверен, подходит ли этот вопрос для SO или нет, он находится в том, что я считаю серой областью (до тех пор, пока часто задаваемые вопросы не проясняются дальше или голосование сообщества). ephemient 15 лет назад 0
В данном случае это довольно тонкая черта, поэтому я согласен с решением Томаса Оуэнса, хотя я согласен с тобой, эпимант. swilliams 15 лет назад 0
http://stackoverflow.com/questions/42962/system-administration-questions-yes-or-no Paul Tomblin 15 лет назад 0
Я думаю, что этот вопрос гораздо более уместен, чем некоторые из самых популярных и популярных вопросов (например, «Какой твой любимый мультфильм программиста?»). Поскольку этот спрашивающий на самом деле ищет помощи, кажется неправильным наказывать их. 15 лет назад 0
Не вопрос программирования. Andrew Medico 13 лет назад 0

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

3
Dan

Вы должны будете сказать одной ОС или другой, чтобы они не загромождали загрузочный сектор GRUB.

Во всех дистрибутивах Linux, которые я видел, есть какой-то способ предотвратить засорение загрузочного сектора на их установочном компакт-диске, но это часто в какой-то неясной расширенной опции.

Большинство данных конфигурации GRUB не хранятся в очень маленьком загрузочном секторе, который просто содержит небольшую загрузочную программу и указатель, где найти остальные. Данные конфигурации обычно хранятся в обычном каталоге в обычном разделе на диске ( /bootво многих дистрибутивах Linux). Так что, если Solaris фактически не заходит и не копается с данными в разделе Linux, это, вероятно, не так уж и сложно ... если одна ОС захламляет загрузочный сектор, созданный другой, вы можете легко восстановить его.

3

Grub - это программа, как и любая другая. В начале вашего жесткого диска есть небольшой раздел (основная загрузочная запись), в котором указано, какую программу следует использовать для загрузки операционных систем. Это вещь, которая затирается, когда вы устанавливаете новый grub. Однако можно не устанавливать grub с новой ОС (кроме Windows, которая всегда должна устанавливаться первой в мультизагрузочной системе). Если вы решите не устанавливать grub, вы должны сконфигурировать grub исходной системы для распознавания новой. Другими словами, вы управляете кучей всех операционных систем из одной (в этом случае, похоже, что Solaris будет лучшим выбором, если он будет таким агрессивным). Из этой ОС очень легко добавить другие параметры в ваш grub. В /boot/grub/menu.lst вы можете добавить новые опции и выбрать их порядок. Например, я запускаю Ubuntu, Windows, и Gentoo, чтобы поиграть с. Мой menu.lst содержит записи:

title Ubuntu 8.04.1, kernel 2.6.24-18-generic root (hd1,0) kernel /boot/vmlinuz-2.6.24-18-generic root=UUID=887466bc-8a0d-4408- 17a-91ec1cfd9f2a ro quiet splash vga=795 initrd /boot/initrd.img-2.6.24-18-generic quiet  title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1  title Gentoo Linux 2.6.25-gentoo-r7 root (hd0,1) kernel /boot/kernel-2.6.25-gentoo-r7 root=/dev/hdb2 

Каждый из них содержит основную информацию о системе, которую я хочу загрузить, включая имя, место на жестком диске (диск и раздел) и место на этом диске для загрузки. Обратите внимание, поскольку Windows хочет загрузить себя, мы даем grub знать, что она собирается загружаться цепочкой, найдя загрузчик Windows на диске 0, раздел 0 (в самом начале) и запустив его вместо этого. Для системы Linux вам действительно нужно только имя, корневой диск и местоположение ядра, чтобы добавить новое в ваше меню grub.

Если вы позже установите linux и забудете пропустить установку grub, вы также можете скопировать menu.lst из одного в другой.

2

Я думаю, что вам лучше использовать одну из ОС в качестве виртуальной машины.

Благодаря современному процессору, который поддерживает расширения виртуальной машины и пару ГБ оперативной памяти, вы можете легко запустить 3-4 машины. Используйте следующий фрагмент, чтобы проверить, поддерживает ли ваш процессор их.

egrep '^flags.*(vmx|svm)' /proc/cpuinfo 

Для этого есть множество вариантов: Xen, kvm, VirtualBox, VMware.

1
Paul Tomblin

В прошлый раз, когда я настраивал систему с двойной загрузкой (до дней виртуальных машин, как в ответе предыдущего человека), она давала вам возможность создать загрузочную дискету. Это было полезно, потому что после того, как вы установили другую ОС и записали ее в основную загрузочную запись, вы можете загрузиться с дискеты, настроить Grub для последовательной загрузки других ОС и переустановить ее на MBR. Я не знаю, каков современный эквивалент, потому что я использую VMware.

0
ephemient

Не делите /bootмежду ОС, это просто больше работы. По умолчанию для большинства современных дистрибутивов используется одна /файловая система, которая /bootявляется просто подкаталогом, но даже если /bootэто отдельный раздел, с каждой отдельной ОС все будет в порядке.

Каждая ОС будет управлять своей собственной /boot, и одна из них будет загрузочным разделом по умолчанию - вы сможете легко настроить ее для загрузки другой. Grub может устанавливать свои заголовки только в свой собственный раздел, не затрагивая весь диск.

Проблема не в разделе / ​​boot, а в том, что многие инсталляционные программы помещают свои собственные вещи в основную загрузочную запись, не обращая внимания на то, что там уже есть. Paul Tomblin 15 лет назад 0
Ничто после установки не должно касаться MBR без вашего разрешения, и вы можете легко исправить несколько установок grub после установки. При этом я знаю, что Debian спрашивает, хотите ли вы установить grub на диск или раздел, и я ожидаю, что аналогичные параметры будут и в других установщиках. ephemient 15 лет назад 0
0

Вы можете попробовать установить оба БЕЗ grub и просто сохранить компакт-диск, содержащий super grub, который позволит вам загружать любую ОС.

Super Grub Disk - это тот набор, который после запуска запускает grub, и вы можете выбрать свою ОС, исправить grub на MBR и другие.

я думаю, что вы также можете создать загрузочный диск помимо grub или lilo. Я не уверен, как это сделано, однако.