CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
17.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

... И всё начинается с рестарта.
Загрузка и инициализация системы

CITKIT.ru

Страницы: предыдущая :: 1 :: ... :: 5 :: 6 :: 7

Содержание

Альтернативные методы загрузки

Действующим пользователям Linux, обладающим установленными и настроенными средствами загрузки этой операционной системы, нет необходимости прибегать к помощи BSD Loader. Обеспечить совместное проживание Linux и FreeBSD на одной отдельно взятой машине не составляло никакого труда. Для чего можно воспользоваться как LILO — загрузчиком, разработанным для Linux, но быстро ставшим мультисистемным, так и GRUB — изначально мультисистемным загрузчиком, специально разработанным для того, чтобы грузить всё, что способно загружаться (и немножечко — то, что загружаться не способно в принципе) .

LILO в плане загрузки "чужых" систем настраивается очень просто. В частности, чтобы обеспечить через него загрузку FreeBSD, нужно:

  • перезагрузиться в Linux и получить права администратора;
  • открыть в текстовом редакторе файл /etc/lilo.conf;
  • внести в последний строки вида:
    # FreeBSD-7.1 bootable partition config begin
    other=/dev/sdb1
    table=/dev/sdb
    loader=/boot/chain.b
    label=FreeBSD-7.1
    
    где обозначения дисков следует заменить собственными реалиями (как и номер версии FreeBSD -- последний, впрочем, указывать совсем не обязательно);
  • перезапустить (!) lilo командой
    $ /sbin/lilo
    
  • при следующей перезагрузке выбрать в меню Lilo пункт FreeBSD-7.1.

Не смотря на простоту использования, Lilo практически лишен интерактивных способов загрузки. Так что есть мнение (и не только моё) что, лучшим загрузчиком при использовании нескольких операционок является GRUB. Тем более, что большинство современных дистрибутивов Linux именно его и устанавливают по умолчанию. И если он уже есть — менять его на что-либо другое после установки FreeBSD никаких основания я не вижу.

Хочу только развеять одно распространённое заблуждение: что GRUB является загрузчиком Linux. Так вот: GRUB к Linux'у не имеет никакого отношения — это по-настоящему мультисистемный загрузчик. То, что он может устанавливаться при установке какого-либо дистрибутива Linux — не более чем предпочтение его майнтайнеров.

Именно поэтому разработчики рекомендуют ставить GRUB на самостоятельный первичный раздел. Который никакой деинсталляцией Linux'а не затрагивается и затрагиваться не может. Единственное требование к этому разделу — одна из файловых систем, понимаемых GRUB'ом на стадии передачи ему управления от кода, записанного в MBR (чаще всего для этих целей используется ext2fs). После этого, как будет сказано ниже, GRUB может работать практически со всеми файловыми системами открытых Unix'ов.

К слову сказать, GRUB можно установить и без всякого Linux'а — непосредственно из портов FreeBSD (/usr/ports/sysutils/grub). Правда, я этого никогда не делал за ненадобностью (при совместном использовании FreeBSD и Linux логично использовать уже имеющийся загрузчик последнего, на чисто Free'шной машине её штатного загрузчика более чем достаточно). Так что этот вопрос оставляю на рассмотрение заинтересованного читателя.

Загрузка FreeBSD через GRUB осуществляется очень просто. Для этого достаточно в файл его конфигурации (/boot/grub/menu.lst) внести строки примерно такого вида:

# FreeBSD
title  FreeBSD
root   (hd0,1)
kernel (hd0,1)/boot/loader

Так было раньше, и так происходит теперь. Но был один момент времени, когда описанный способ не работал. Теперь это изжито — тем не менее, я расскажу, как поступать в таких случаях, во-первых, для истории, во-вторых, потому, что повторение такой ситуации не исключено в будущем.

GRUB в сущности представляет собой мини-ОС, способную, в том числе, и работать с файловыми системами без загрузки какого-либо ядра операционки "всамделишней". Но лишь с теми файловыми системами, которые он знает. Их список достаточно обширен — это все файловые системы, нативные для Linux, файловые системы BSD, Minix в её старом варианте. Поговаривают, что недалёк день, когда GRUB будет понимать и ZFS.

Одно небольшое осложнение возникло с выходом FreeBSD 5-й ветки, где впервые по умолчанию была принята файловая система UFS2. Которая обладает рядом несомненных достоинств по сравнению со своей предшественницей (UFS просто).

Однако вот беда — новая файловая система некоторое время не воспринималась текущими тогда версиями GRUB (ни 0.93, ни 0.94). То есть обеспечить загрузку FreeBSD старым способом оказалось невозможным. Насколько мне известно, LILO в то время также не справлялась с загрузкой FreeBSD при использовании UFS2.

Конечно, ситуацию быстро поправили — порт GRUB версии 0.94 уже включал в себя патч для понимания UFS2. Однако согласитесь, загрузчик — это такая вещь, которую лишний раз переставлять не хочется, абы чего не вышло. Особенно если он давным-давно был установлен вместе со столь же давно затертым дистрибутивом Linux...

Ныне (по крайней мере с конца 2005-го года) GRUB без проблем работает с UFS2. Однако описанный ниже способ по-прежнему может использоваться для загрузки FreeBSD (или любой другой операционки, буде у ее файловой системы обнаружатся классовые противоречия с GRUB'ом).

Из этой ситуации напрашивалось тогда два простых выхода: а) отказаться от GRUB в пользу Free'шного загрузчика, и б) отказаться от UFS2 на корневом разделе FreeBSD. Однако оба решения, помимо отмеченных выше недостатков, просто не спортивны. И потому был смысл поискать третье решение — и UFS2 сохранить, и с GRUB'а загрузить.

А для этого вспомним, что GRUB сам по себе не способен загрузить ядро еще некоторых, весьма известных, операционных систем (о которых в приличном обществе не очень любят говорить вслух). И, тем не менее, вполне успешно используется для мультисистемной загрузки комбинаций Linux — Windows 9X/ME — Windows NT/2000/XP.

Как же он это делает? А очень просто — передачей управления на загрузочный сектор Windows-раздела "по цепочке". Если такой номер проходит с системами от MS, почему бы не испробовать его на классово близкой к GRUB (разрабатываемом в рамках проекта GNU) FreeBSD?

А что, и испробуем. На примере конфигурации дисков и дисковых разделов, на которой я, в дополнение к имеющемуся Archlinux, тогда устанавливал FreeBSD 5.2.

На первом мастере имелось три раздела — hd0,0, hd0,1, hd0,2 в номенклатуре GRUB. Первый раздел (файловая система ext2fs) — был задействован под каталог /boot Linux-инсталляции, он-то и содержал GRUB и его конфигурационный файл. Второй раздел нес на себе Archlinux, третий был зарезервирован под всякого рода эксперименты (оба — с файловой системой ext3fs).

Первый слейв целиком был отдан на растерзание FreeBSD — на нем создан единственный слайс этой системы (hd1,0 с точки зрения GRUB, /dev/ad1s1 по Free'шному) в режиме эксклюзивного использования, разбитый на партиции (какие — в данном случае не существенно, важно только, что все они несли файловую систему UFS2).

Разбиение второго мастера (он сидит в паре с CD-R/RW) в текущем контексте также не существенно — он был оформлен как Extended partition с несколькими логическими дисками (все — с файловой системой ext3fs), предназначенными исключительно для хранения данных (в Linux монтировался как /home).

Итак, загружаемся в Linux, монтируем первый раздел в каталог /boot (для раздела, несущего GRUB, не рекомендуется автоматическое монтирование при старте системы) и открываем в текстовом редакторе файл /boot/grub/menu.lst, содержащий вводную секцию:

# Config file for GRUB — The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# general configuration: timeout 5 # Время ожидания выбора загружаемой ОС в секундах

default 0 # ОС, загружаемая по умолчанию # (в данном случае Linux)

color light-blue/black light-cyan/blue # Цветовая гамма меню (мне такая нравится)

Далее идут строки:

# (0) Arch Linux
title  Arch Linux  [/boot/vmlinuz]
root   (hd0,1)
kernel (hd0,0)/vmlinuz root=/dev/discs/disc0/part2 ro hdd=ide-scsi

обеспечивающие загрузку Linux. Дописываем комментарий и метку для пункта меню, загружающего FreeBSD:

# (1) FreeBSD
title  FreeBSD 5.2

Теперь остается только определить раздел, который будет корневым для загружаемой системы в нотации GRUB (а не FreeBSD! — это еще не корень ее файловой системы):

rootnoverify (hd1,0)

Здесь можно обойтись и просто командой root, однако приведённая форма, запрещающая проверку и "опознание" файловой системы (каковая может быть GRUB'у незнакома — ведь именно потому мы всю эту тягомотину и затеяли).

Затем — делаем корневой раздел активным:

makeactive

и "по цепочке" передаём на него управление загрузкой:

chainloader +1

На этом миссия GRUB заканчивается — теперь в ходе загрузки в дело вступит /boot/loader из FreeBSD, который и выполнит остальную работу.




Страницы: предыдущая :: 1 :: ... :: 5 :: 6 :: 7

Комментарии

аноним, Mon Oct 5 17:51:54 2009:
Алексей, четверг, 18 декабря 2008 г. 00:36:37:
Толи я такой нуб. Толи для таких нубов как я написано не совсем понятно. "в текстовом редакторе открывается файл /etc/rc.conf". Непонятно как открыть в редакторе,и когда это вообще делать

ee /etc/rc.conf
vi /etc/rc.conf - какой больше нравится.

"ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure - надо "on". в ttyv8 обычно - xdm, kdm в ttyv9
Raven, Sun Dec 21 14:34:07 2008:
18.2 секунды это ровно 100 тиков.
Системные часы работают с частотой 18.2 тика в секунду. и, кстати, команда, приведенная для конфигурирования:
boot0cfg -t 30 -s 2 -v -f /boot/boot0.old ad0
задаст всего 30 тиков, а не 30 секунд ожидания.
Алексей, Thu Dec 18 00:36:37 2008:
Толи я такой нуб. Толи для таких нубов как я написано не совсем понятно. "в текстовом редакторе открывается файл /etc/rc.conf". Непонятно как открыть в редакторе,и когда это вообще делать. "ttyv8 "/usr/local/bin/kdm -nodaemon" xterm off secure
обеспечит авторизацию в менеджере от KDE " я так пологаю должно быть on вместо off? или я чего то не понимаю? И вообще что-то не совсем мне понятно как менять все эти конфиги. А так вообще очень познавательно. Надеюсь Ваш материал поможет освоить мне FreeBSD.
Алексей Федорчук, Tue Nov 4 22:21:33 2008:
2 аноним, вторник, 4 ноября 2008 г. 21:40:49:
____
Спасибо, пофиксил
аноним, Tue Nov 4 21:40:49 2008:
(hd0,1 с точки зрения GRUB, /dev/ad1s1 по Free'шному)

Опечатка, надо hd1,0.
аноним, Mon Nov 3 13:42:37 2008:
команду
# shutdown now
я заменяю на
#kill 1 1
(так короче)
И еще. less - смотрелка, а редактировать - чем-нибудь, вроде ee. Я почему упоминаю такие мелочи - начинающие могут смутиться, а FreeBSd нужно любить!
Woolfy, Fri Oct 31 12:51:56 2008:
"
Для чего каждая из них проверяется на наличие бита "чистого размонтирования" (clean byte),
"
Все таки наверное, "байт чистого размонтирования".
Хотя, уместнее будет, назвать его просто - "флагом".
Алексей Федорчук, Wed Oct 29 12:38:29 2008:
2 Александр
Ага, спасибо
Александр, Wed Oct 29 12:24:24 2008:
Опечатка:
"... ведь размер загрузочного сектора раздела составляет те же 512 Кбайт ..."
Кбайт -> байт

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds