C++ CSS HTML Java JavaScript MySQL Oracle PERL PHP SQL Unix VBScript XHTML XML Сети
Мини-HOWTO: "Linux+FreeBSD"
 

Мини-HOWTO: "Linux+FreeBSD"

Niels Kristian Bech Jensen

     nkbj@image.dk
   

Перевод: Станислав Рогин, SWSoft Pte Ltd.

версия 1.11, 30 марта 2000 года

что Вы имеете некоторые навыки в работе с Linux или FreeBSD, а так же то, что Вы разбили на разделы свой жесткий диск (программой fdisk если у Вас есть вопросы, комментарии или предложения относительно данного документа. Я также хотел бы получить письма от людей, которые используют Linux вместе с NetBSD или OpenBSD.


Содержание
1. Что такое FreeBSD? Двойная загрузка в FreeBSD! FreeBSD - краткий обзор
2. Разметка жесткого диска
2.1. FreeBSD: "slices" и "partitions".
2.2. Раздел Linux. Сравнение Linux и FreeBSD.
3. Совместное использование области подкачки в Linux и FreeBSD.
3.1. Установка и настройка Linux
3.2. Установка FreeBSD
3.3. Настройка области подкачки FreeBSD для использования в Linux
4. Загрузка FreeBSD с использованием LILO
5. Подключение файловых систем
5.1. Подключение файловой системы UFS под Linux
5.2. Подключение файловой системы ext2fs под FreeBSD
6. Запуск программ
6.1. Запуск программ FreeBSD под Linux
6.2. Запуск программ Linux под FreeBSD
7. Ссылки на информационные ресурсы
8. Благодарности и юридическая информация
8.1. Юридическая информация
8.2. Авторские права

1. Что такое FreeBSD? Двойная загрузка в FreeBSD! FreeBSD - краткий обзор

FreeBSD свободно распространяемых частей дистрибутива 4.4BSD (Berkeley Software Distribution), известных как 4.4BSD-lite. Этот факт заставляет многих людей считать, что FreeBSD более похож на "настоящий" UNIXR, чем Linux. FreeBSD работает только на Intel-платформах (i386 и выше); версии для платформ DEC Alpha и Sun Sparc в настоящий момент находятся в стадии разработки. Системы NetBSD и OpenBSD, подобны FreeBSD, и работают на нескольких платформах. Аппаратные требования для всех этих *BSD систем аналогичны Linux.

Развитие FreeBSD происходит несколько другим путем, чем Linux. Основная группа разработчиков задает путь развития проекта. Значительные изменения обсуждаются заранее через списки рассылок. FreeBSD имеет две версии (как и Linux): "-ТЕКУЩАЯ" и "-СТАБИЛЬНАЯ". "-ТЕКУЩАЯ" версия включает в себя последние версии программ и усовершенствований. "-СТАБИЛЬНАЯ" версия имеет только те усовершенствования, которые уже проверены на наличие серьезных ошибок.

FreeBSD может бесплатно использоваться и распространяться так же, как и Linux. Авторские права на большую часть системы принадлежат BSD; остальное распространятся под лицензией GNU GPL или ей подобной.


2. Разметка жесткого диска

В Linux и FreeBSD названия жестких дисков и разделов строятся по двум разным схемам. В этой главе описаны главные различия между ними. Фактически, в FreeBSD маркировка разделов взята из традиционного BSD; она адаптирована для fdisk. Таким образом, она очень похожа на ту, которая используется в BSD-подобных системах, таких как NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS и Solaris.


2.1. FreeBSD: "slices" и "partitions".

FreeBSD необходим свой раздел на Вашем жестком диске. В FreeBSD этот первичный раздел называется "slice". На первичном разделе с помощью программы disklabel, можно создать до восьми подразделов . В FreeBSD эти логические разделы называют ``partitions'' . Эта концепция подобна Linux (и DOS) с разбивкой расширенного раздела на логические. FreeBSD нельзя устанавливать в расширенный раздел, сделанный Linux (или DOS). Обратите внимание, что Linux-программа fdisk не показывает "partition"-разделы из основного меню, но она может это делать при помощи команды "b". Это выглядит примерно так (/dev/hda4 - это "slice"-раздел FreeBSD):


bash# fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       27    54400+  83  Linux native
/dev/hda2           28       28       55    56448   83  Linux native
/dev/hda3           56       56      403   701568   83  Linux native
/dev/hda4          404      404      621   439488   a5  BSD/386

Command (m for help): b
Reading disklabel of /dev/hda4 at sector 1624897.

BSD disklabel command (m for help): p

8 partitions:
#        size   offset    fstype   [fsize bsize   cpg]
  a:    64512  1624896    4.2BSD        0     0     0   # (Cyl.  404 - 419)
  b:   104832  1689408      swap                        # (Cyl.  420 - 445)
  c:   878976  1624896    unused        0     0         # (Cyl.  404 - 621)
  e:    64512  1794240    4.2BSD        0     0     0   # (Cyl.  446 - 461)
  f:   645120  1858752    4.2BSD        0     0     0   # (Cyl.  462 - 621)

BSD disklabel command (m for help): q
bash#

Буквы `a'...`f' в первой колонке соответствуют тому, что выводит программа disklabel FreeBSD (колонка Id). Первые три раздела - специальные. Буква `a' определяет корневой раздел, `b' определяет раздел подкачки в то время, как `c' определяет весь "slice"-раздел. Смотрите документацию к FreeBSD для получения большей информации об этих буквах и различных типах разделов.


2.2. Раздел Linux. Сравнение Linux и FreeBSD.

Названия жестких дисков в Linux и FreeBSD:

                           Linux           FreeBSD
Первичный IDE винчестер   /dev/hda        /dev/wd0
Вторичный IDE винчестер   /dev/hdb        /dev/wd1
Первичный SCSI винчестер  /dev/sda        /dev/sd0
Вторичный SCSI винчестер  /dev/sdb        /dev/sd1

Названия разделов (в FreeBSD "slices"-разделов) на IDE-винчестере (например, /dev/hda):

                                Linux           FreeBSD
Первый первичный раздел         /dev/hda1       /dev/wd0s1
Второй первичный раздел         /dev/hda2       /dev/wd0s2
Третий первичный раздел         /dev/hda3       /dev/wd0s3
Четвертый первичный раздел      /dev/hda4       /dev/wd0s4

Названия разделов "partitions" в моей системе FreeBSD. Эти наименования вы получите по умолчанию. Вы можете изменить их, если выберете выборочную установку FreeBSD (/dev/hda4 - это FreeBSD "slice" раздел):

Linux наимен.   FreeBSD наимен.   FreeBSD точка монтирования 
/dev/hda5       /dev/wd0s4a       /
/dev/hda6       /dev/wd0s4b       swap
/dev/hda7       /dev/wd0s4e       /var
/dev/hda8       /dev/wd0s4f       /usr

Если Вы запустите dmesg в Linux, то вы увидите примерно следующее (Ядро linux должно быть собранно с поддержкой файловой системы UFS. См. главу Установка и настройка Linux):

hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

Если система FreeBSD у Вас установлена в раздел /dev/sd1s3 (/dev/sdb3 в Linux), а /dev/sdb2 - это расширенный раздел Linux, содержащий два логических раздела (/dev/sdb5 и /dev/sdb6), то предыдущий пример будет выглядеть так:

       /usr

Это будет показано dmesg как:

Partition check:
 sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >

Если расширенный раздел Linux находится после "slice"-раздела FreeBSD, то у Вас могут возникнуть некоторые проблемы, т.к. обычно Linux инсталлируется без поддержки UFS. В этом случае, он не будет распознавать разделение внутри "slice"-раздела FreeBSD. Данная ситуация может выглядеть следующим образом (/dev/hda3 "slice"-раздел FreeBSD, а /dev/hda4 - это расширенный раздел Linux) с поддержкой UFS:

Partition check:
 hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >
без нее:
Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 >

Из-за этого Вы можете получить неправильные названия устройств и даже потерять некоторую информацию. Мой совет: всегда располагайте ваш "slice"-раздел FreeBSD после расширенных разделов Linux и не изменяйте никакие логические разделы в расширенном разделе Linux, после установки FreeBSD!


3. Совместное использование области подкачки в Linux и FreeBSD.

В этом разделе содержится информация о том, как мне удалось добиться того, чтобы Linux и FreeBSD использовали общую область подкачки. Возможно, существует и другой путь добиться того же результата. Вы можете установить FreeBSD до установки Linux, только обратите внимание на порядок разделов внутри "slice"-раздела.


3.1. Установка и настройка Linux

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

Когда Вы установите Linux, необходимо пересобрать ядро. Прочитайте The Linux Kernel HOWTO, если еще никогда этого не делали. Вы должны ответить ``y'' на UFS filesystem support (read only) и BSD disklabel (FreeBSD partition tables) support:

UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
(NEW) y

Установите новое ядро и перезагрузитесь. Уберите все строки, в которых есть слово swap из файла /etc/fstab, если у Вас есть раздел подкачки Linux. Удостоверьтесь в том, что теперь у Вас система работает с новым ядром. Теперь можно устанавливать FreeBSD.


3.2. Установка FreeBSD

Установите FreeBSD в соответствии с документацией. Удалите раздел подкачки Linux, если он у Вас есть (можете использовать для этого FreeBSD fdisk). Обратите внимание на порядок разделения ``slice''-раздела FreeBSD. Если Вы используете разбивку по умолчанию, то второй "partition"-раздел(подраздел) будет разделом подкачки. Завершите установку и загрузите Linux, используя загрузочную дискету с новым ядром.


3.3. Настройка области подкачки FreeBSD для использования в Linux

Запустите dmesg, когда загрузитесь в Linux. Вы должны увидеть следующее:

Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

Это значит, что /dev/hda4 - это "slice"-раздел FreeBSD, а /dev/hda5, /dev/hda6, /dev/hda7 и /dev/hda8 - "partitions"-разделы FreeBSD. Если у Вас разделом подкачки является второй "partition"-раздел на "slice"-разделе, то это будет /dev/hda6.

В Linux вы должны добавить строку в файл /etc/fstab, чтобы разрешить использование раздела подкачки:

/dev/hda6	none		swap		sw		0	0

FreeBSD сразу может использовать этот раздел подкачки, Linux же нуждается в специальном указании на него. Оно может быть сделано mkswap. mkswap необходимо запускать каждый раз при перезагрузке Linux, однако, при желании Вы можете автоматизировать эту процедуру. Для этого Вам надо найти файл, который запускает swapon при загрузке. В Red Hat Linux это /etc/rc.d/rc.sysinit. Добавьте в этот файл до строки swapon -a следующую строку:

awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

Это обеспечит запуск, при загрузке системы, команды mkswap для всех разделов подкачки, заданных в файле /etc/fstab.

После перезагрузки запустите free В этом случае, попробуйте переустановить FreeBSD. Повторение - мать учения ;-)


4. Загрузка FreeBSD с использованием LILO

Вы можете легко загрузить FreeBSD, используя LILO. Не устанавливайте загрузчик FreeBSD (Booteasy), если хотите использовать LILO. Добавьте следующие строки в файл /etc/lilo.conf и запустите lilo (я предполагаю, что "slice"-раздел FreeBSD - это /dev/hda4):

other=/dev/hda4
	table=/dev/hda
	label=FreeBSD

Если Ваш FreeBSD установлен на второе SCSI-устройство, используйте что-нибудь типа ("slice"-раздел FreeBSD - это /dev/sdb2):

other=/dev/sdb2
	table=/dev/sdb
	loader=/boot/chain.b
	label=FreeBSD


5. Подключение файловых систем

5.1. Подключение файловой системы UFS под Linux

ничего не можете с ней делать). Эта проблема решена в более поздних версиях ядра (2.1.87 и выше).

На metalab.unc.edu есть другой драйвер UFS для ядра Linux 2.0.xx (xx <= 30) . Он называется U2FS. В настоящее время это файл u2fs-0.4.3.tar.gz. Версию U2FS (ufs-0.4.4.tar.gz) для Linux 2.0.31 и выше (2.0.xx; не 2.1.xx) можно найти на этом сайте. Там же есть дополнительная информация по U2FS (и UFS).

Теперь вы можете заново собрать ядро с поддержкой файловой системы U2FS. См. главу установка и настройка Linux для получения большей информации об этом. Также Вы можете убрать поддержку файловой системы UFS из ядра, т.к. теперь будете использовать U2FS.

Когда Вы установите новое ядро, подключите файловую систему UFS (все "partition"-разделы, кроме раздела подкачки) командой вида:

mount -t u2fs /dev/hda8 /mnt

Также можно использовать команду

mount -t ufs /dev/hda8 /mnt
если у Вас ядро версии 2.1.87 или выше. Начиная с ядра версии 2.1.112 Вы можете добавить -o ufstype=44bsd командой типа:
mount -t ufs -o ufstype=44bsd /dev/hda8 /mnt

версия драйвера, поддерживающего чтение и запись UFS, работает с ядром 2.1.112 и выше; возможность записи в FreeBSD-раздел поддерживается ядром, начиная с версии 2.1.127.


5.2. Подключение файловой системы ext2fs под FreeBSD

Чтобы подключить файловую систему ext2fs в FreeBSD, вы должны собрать новое ядро с поддержкой ext2fs. Прочитайте the FreeBSD handbook, чтобы узнать, как это делается. Вставьте строку

options		"EXT2FS"

Затем, когда Вы загрузитесь с только что собранным ядром, подключите файловую систему ext2fs командой: mount -t ext2fs /dev/wd0s3 /mnt

сможет синхронизировать файловые системы UFS. В результате этого, при последующей загрузке автоматически запустится fsck

umount -a -t ext2fs
в файл /etc/rc.shutdown. Данная ошибка была исправлена в ядре FreeBSD версий 3.x.


6. Запуск программ

6.1. Запуск программ FreeBSD под Linux

Пакет iBCS поддерживает запуск программ FreeBSD под Linux, но у меня не получилось сделать это. Пожалуйста, сообщите мне, если у Вас получится.


6.2. Запуск программ Linux под FreeBSD

FreeBSD поддерживает программы Linux. Чтобы работать с ними, необходимо проделать следующее:

  1. Разрешите совместимость с Linux. Для этого нужно отредактировать файл /etc/rc.conf (в FreeBSD 2.2.2, в других версиях могут быть незначительные отличия). Исправьте строку

    linux_enable="NO"
    на
    linux_enable="YES"
    и перезагрузитесь. Кроме того, можно разрешить FreeBSD поддержку бинарных файлов Linux, запустив /usr/bin/linux ядро, то не забудьте добавить строку
    options		COMPAT_LINUX
    в файл конфигурации ядра.

  2. Если Ваши бинарные файлы Linux связаны динамически, то необходимо установить библиотеки, которые включены в FreeBSD 2.2.{2,5,6} в пакете linux_lib-2.4.tgz (версия может быть новее). Установите пакет следующей командой:

    pkg_add <path_to_package>/linux_lib-2.4.tgz
    <путь_к_пакету> это каталог, где находится данный пакет. Также можно установить его из сети:
    pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz
    или запустив /stand/sysinstall. Войдите в пункт "Configure", затем "Packages". Если Ваши бинарные файлы Linux связаны статически , то выполните следующую команду:
    brandelf -t Linux <name_of_statically_linked_linux_binary>

  3. Установите программу Linux, которую Вы хотите запустить. Программа может быть установлена на файловую систему UFS или ex2fs. См. раздел "Подключение файловой системы ext2fs под FreeBSD" для получения большей информации об использовании раздела с файловой системой ext2fs под FreeBSD.

версии acroread и StarOffice 3 и 4 также хорошо работают под FreeBSD. StarOffice 5 в настоящее время не работает под FreeBSD. Читайте документацию по FreeBSD для получения большего количества информации по этой теме.


7. Ссылки на информационные ресурсы

Последнюю версию этого mini-HOWTO можно найти на этом сайте в нескольких форматах (включая sgml и PostScript). Документ был перведен на японский Mr. Teruyoshi Fujiwara в рамках проекта JF.

Здесь вы можете найти несколько статей о различиях между Linux и FreeBSD.

Вы можете найти достаточно информации по системе FreeBSD (включая и ее саму) на этом сайте. Также можно купить компакт-диски на Walnut Creek CDROM (их сервера работают под FreeBSD).

Linux Kernel HOWTO и этот mini-HOWTO реализованы в рамках проекта The Linux Documentation Project.


8. Благодарности и юридическая информация

Спасибо членам команды *BSD user group in Denmark за ответы на вопросы по FreeBSD, Mr. Takeshi Okazaki за то, что обратил мое внимание на U2FS, и Mr. David O'Brien за ценные предложения.


8.1. Юридическая информация

Все торговые знаки являются собственностью их владельцев.

свой собственный страх и риск.

Copyright © 1997-2000 by Niels Kristian Bech Jensen. This document may be distributed only subject to the terms and conditions set forth in the LDP License at http://www.linuxdoc.org/COPYRIGHT.html.


8.2. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу

Главная