от Марио Георгиев Павлов(3-09-2006)

рейтинг (23)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Linux + FreeBSD mini-HOWTO Niels Kristian Bech Jensen nkbj@image.dk v1.11, 30 март 2000 (превод - 22 февруари 2005)


Този документ е написан от Niels Kristian Bech Jensen, аз само го превеждам и пренаписвам леко, защото от 2000 година до сега са се променили някои неща и документа е малко невалиден поради, вече много напредналото, развитеи на ядрата и файловите системи. Текущата версия на FreeBSD е FreeBSD-5.3 , а на Linux - 2.4/2.6 Този документ описва как да използваме Linux и FreeBSD на една система. Също представя FreeBSD и разисква как двете операционни системи могат да си съдействат заедно, примерно като споделят swap пространство. Вероятно трябва да имате малко опит с Linux или FreeBSD и разделяне на твърдия диск (fdisk) преди да четете този документ. Съветите тук са изпробвани с FreeBSD 5.3 , но трябва да са валидни и за останалите версии. Не се колебайте да ми пишете (както и на мен - преводача) за всякакви коментари, въпроси или предложения свързани с този документ. Също бих желал да чуя и от хора, които имат опит с използването на Linux заедно с NetBSD или OpenBSD.
1. Какво е FreeBSD?
2. FreeBSD етикети на твърдите дискове 3. Споделяне на swap пространсвто между Linux и FreeBSD 4. Зареждане на FreeBSD с LILO 5. Монтиране на файлови системи 6. Стартиране на "чужди" бинари 7. Информационни ресурси
1. Какво е FreeBSD?

FreeBSD е безплатна UNIX-подобна система също като Linux. Главната разлика е, че Linux ядрото е написано независимо, тоест започнато е от нулата, а FreeBSD е базирана на свободно дистрибутираните части от 4.4BSD (Berkeley Software Distribution) познати като 4.4BSD-lite. Този факт може да накара някои хора да мислят, че FreeBSD е по-близо до това да бъде "истински" UNIX, отколкото Linux. FreeBSD може да върви на следните платформи: alpha, amd64, i386, ia64, pc98 и sparc64. NetBSD и OpenBSD са подобни на FreeBSD и също вървят на няколко платформи. Хардуерните изисквания за всички *BSD системи са подобни на тези за Linux.

Разработването на FreeBSD се ръководи по различен начин в сравнение с Linux разработването. Централен екип от разработчици служат като арбитри и осигуряват ръководството на проекта. Големи промени в напредък се дискутират по така наречените "mailing lists". Проектът FreeBSD има две разклонения на разработване (също като Linux): "-CURRENT" и "-STABLE".В "-CURRENT" се разработват новите свойства и детайли. Разработването на "-STABLE" се ограничава до премахване на бъговете и тестване на новите свойства и детайли.

FreeBSD може да се използва и (ре-)дистрибутира свободно както Linux. Повечето части от системата са пуснати под BSD copyright, GNU GPL или друг open-source лиценз.


2. FreeBSD етикети на твърдите дискове

Linux и FreeBSD имат различни схеми за етикети на твърдите дискове и разделите. Тази секция обяснява основните разлики между тези две схеми. Всъщност схемата на FreeBSD е адаптация на традиционния BSD етикетен стил. Така схемата е много подобна на други BSD-базирани UNIX системи като NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS и Solaris.

2.1 FreeBSD "дялове" и "раздели"

FreeBSD се нуждае от една от четирите части на таблицата на разделите във вашия твърд диск. Този основен раздел се нарича "дял" в терминологията на FreeBSD. След това с помощта на програмта disklabel може да се направят до осем раздела в този основен раздел. Тези логически раздели се наричат "раздели" в терминологията на FreeBSD. Тази идея е подобна на начина, по който Linux (и DOS) поддържат логически раздели в разширен раздел. Не можете да инсталирате FreeBSD в разширен раздел направен от Linux (или DOS). Забележете, че програмата fdisk на Linux в своето главно меню не показва разделите на BSD като FreeBSD дялове, но показва информация за етикета на BSD диск, ако използвате командата "b". Това ще покаже нещо подобнно (/dev/hda4 е FreeBSD дял):

 root@Soulstealer:/# fdisk /dev/hda
 
 The number of cylinders for this disk is set to 4866.
 There is nothing wrong with that, but this is larger than 1024,
 and could in certain setups cause problems with:
 1) software that runs at boot time (e.g., old versions of LILO)
 2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)
 
 Command (m for help): p
 
 Disk /dev/hda: 40.0 GB, 40027029504 bytes
 255 heads, 63 sectors/track, 4866 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/hda1               1          61      489951   82  Linux swap
 /dev/hda2              62         790     5855692+  83  Linux
 /dev/hda3             791        4437    29294527+  83  Linux
 /dev/hda4   *        4438        4866     3445942+  a5  FreeBSD
 
 Command (m for help): b
 Reading disklabel of /dev/hda4  at sector 71280406.
 
 BSD disklabel command (m for help): p
 
 8 partitions:
 #       start       end      size     fstype   [fsize bsize   cpg]
   a:     4438      4450*       12*    4.2BSD     2048 16384 12808
   b:     4450*     4463*       12*      swap
   c:     4438      4866       429     unused        0     0
   d:     4463*     4469*        6*    4.2BSD     2048 16384  6408
   e:     4469*     4482*       12*    4.2BSD     2048 16384 12808
   f:     4482*     4866*      384*    4.2BSD     2048 16384 28552
 
 BSD disklabel command (m for help): q
 root@Soulstealer:/#
 

Буквите "a"..."f" в първата колона са същите като показания отдолу примера за FreeBSD дял. Има три специални раздела в BSD. Буквата "а" обозначава root раздела, "b" обозначава swap раздела, докато "c" обозначава целия дял. Вижте документацията на FreeBSD за повече информация върху "стандартния" начин за определяне на тези букви в различните типове раздели.

2.2 Етикети на устройства и раздели в Linux и FreeBSD

Етикетите на твърдите дискове в Linux и FreeBSD са както следва:

                         Linux           FreeBSD
 First IDE drive         /dev/hda        /dev/ad0
 Second IDE drive        /dev/hdb        /dev/ad1
 First SCSI drive        /dev/sda        /dev/sd0
 Second SCSI drive       /dev/sdb        /dev/sd1
 

Разделите (FreeBSD дялове) на IDE интерфейс са с етикети в следния ред (за пример е даден /dev/hda):

                                 Linux           FreeBSD
 First primary partition         /dev/hda1       /dev/аd0s1
 Second primary partition        /dev/hda2       /dev/аd0s2
 Third primary partition         /dev/hda3       /dev/аd0s3
 Fourth primary partition        /dev/hda4       /dev/аd0s4
 

Разделите в моя FreeBSD дял са със следните етикети. Възможно е да сменяте етикетите, при инсталацията на FreeBSD (/dev/hda4 е FreeBSD дялът в отзи пример):

 FreeBSD label   FreeBSD mount point 
 /dev/ad0s4a     /
 /dev/ad0s4b     swap
 /dev/ad0s4d     /tmp
 /dev/ad0s4e     /var
 /dev/ad0s4f      /usr
 

Ако сте инсталирали FreeBSD в /dev/sd1s3 дял (/dev/sdb3 от гледна точка Linux), предишният пример ще изглежда така:

 FreeBSD label   FreeBSD mount point 
 /dev/sd1s3a     /
 /dev/sd1s3b     swap
 /dev/sd1s3d     /tmp
 /dev/sd1s3e     /var
 /dev/sd1s3f      /usr
 

Ако имате Linux разширен раздел след FreeBSD дял ще имате проблем, защото ако Linux ядрото ви е без поддръжка на UFS, то разделите във FreeBSD дяла няма да бъдат разпознати. Това може да доведе до грешно означаване на устройствата и загуба на информация. Моят съвет е: винаги разполагайте своя FreeBSD дял след разширения раздел на Linux и не променяйте логическите раздели в Linux разширения раздел след инсталиране на FreeBSD!


3. Споделяне на swap пространсвто между Linux и FreeBSD

Тази секция обяснява как направих Linux и FreeBSD да споделят swap раздела. Може да има и други начини да постигнете същият разултат. Можете да инсталирате FreeBSD преди Linux ако искате, само обърнете внимание на реда на разделите във FreeBSD дяла.

3.1 Инсталиране и подготвяне на Linux

Първата стъпка е да инсталирате нормално Linux. Трябва да оставите свободно пространство за FreeBSD дяла на своя твърд диск. Не е нужно да правите Linux swap раздел, но ако искате можете да го сложите в пространството където ще разположите FreeBSD. По този начин може да изтриете Linux swap раздела по-късно и да използвате пространството за FreeBSD.

След като инсталирате Linux трябва да компилирате ново ядро. Прочетете The Linux Kernel HOWTO ако това е ново за вас. Трябва да включите UFS filesystem support (read only) и BSD disklabel (FreeBSD partition tables) support:

 CONFIG_UFS_FS=y
 CONFIG_BSD_DISKLABEL=y
 

Инсталирайте новото ядро и рестартирайте. Премахнете всеки ред който съдържа думата swap от файла /etc/fstab, ако сте направили Linux swap раздел. Подсигурете се с работещо флопи с новото ядро. Сега сте готови да инсталирате FreeBSD.

3.2 Инсталиране на FreeBSD

Инсталирайте FreeBSD както е описано в документацията за FreeBSD. Премахете Linux swap раздела, ако сте направили такъв (може да използвате програмата fdisk на FreeBSD. Обърнете внимание на реда на разделите във FreeBSD дяла. Ако използвате етикетите по подразбиране вторият раздел ще бъде swap раздела. Завършете инсталацията на FreeBSD и рестартирайте в Linux.

3.3 Настройка на FreeBSD swap раздела в Linux

Пуснете dmesg ако сте стартирали Linux. Изходният текст трбва да изглежда така:

 Partition check:
  hda: hda1 hda2 hda3 hda4 
 

Това означава, че /dev/hda4 е вашият FreeBSD дял, докато /dev/hda5, /dev/hda6, /dev/hda7 , /dev/hda8 и /dev/hda9 са FreeBSD разделите. Ако вашият swap раздел е вторият раздел от дяла, то той ще бъде /dev/hda6.

Трябва само да поставите следното във файла /etc/fstab на Linux, за да активирате swap раздела:

 /dev/hda6       none            swap            sw              0       0
 

FreeBSD може да ползва всякакъв вид swap пространство, но Linux се нуждае от специално описване на swap пространството. Описването се прави с mkswap. FreeBSD разрушава това описание, ако използва споделен swap раздел, за това ще трябва да изпълнявате mkswap с всяко зареждане на Linux. За да направите това автоматично трябва да намерите скрипта, който изпълнява swapon по време на зареждането. В Slackware скрипта е /etc/rc.d/rc.S. Сложете следното точно преди swapon -a:

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

Това ще изпълни mkswap на всеки swap раздел в /etc/fstab с всяко зареждане, освен ако не сте го коментирали (първият знак от реда да е "#")

Изпълнете free да проверите размера на swap пространството след като сте заредили Linux. Също трябва да заредите FreeBSD, за да се уверите, че всичко работи както се очаква. Ако не работи, вероятно сте използвали грешен раздел за swap раздел. Единственото решение на този проблем е да преинсталирате FreeBSD и да опитате отново. Опитът е чудесен учител. :-)


4. Зареждане на FreeBSD с LILO

Можете лесно да заредите FreeBSD с LILO. Не инсталирайте мениджъра за пъвроначално зареждане (boot manager - Booteasy) ако искате да използвате LILO. Приложете следните редова в своя файл /etc/lilo.conf и изпълнете lilo (като знаем, че FreeBSD дяла е /dev/hda4):

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

Ако сте инсталирали FreeBSD във втория SCSI интерфейс, използвайте нещо подобно (ако FreeBSD дяла е /dev/sdb2):

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

5. Монтиране на файлови системи 5.1 Монтиране на UFS файлови системи под Linux

По настоящем, файловата система по подразбиране на FreeBSD-5.* e u2fs (ufs2). За съжаление тя не се поддържа от настоящите ядра на Linux (2.4/2.6). Съществува кръпка за ядрото на Linux, която осигърява поддръжка на u2fs като е възможно само четене (read-only). Така че се налага компилиране на ново ядро (като е нужно да включите поддръжка на "BSD disklabel"). Можете да го изградите като модул или директно в сорса на ядрото. Добра идея е да се направи като модул. След като инсталирате новот ядро и сте заредили модула или сте оставили kerneld да го свърши вместо вас, монтирането може да стане по един от следните начини

 mount -t u2fs /dev/hda9 /mnt/FreeBSD
 ;
 mount -t u2fs /dev/hda9 /mnt/FreeBSD
 ;
 mount -t ufs -o ufstype=44bsd /dev/hda9 /mnt/FreeBSD
 

Можете да монтирате всеки раздел от FreeBSD дяла с изключение на swap раздела.

5.2 Монтиране на ext2fs файлови системи под FreeBSD

За да монтирате ext2fs файлова система под FreeBSD трябва тя да се поддържа от ядрото. Във FreeBSD-5.* ext2fs се поддържа по подразбиране.

Монтирането става по следния начин:

 mount_ext2fs /dev/аd0s3 /mnt
 

6. Стартиране на "чужди" бинари 6.1 Стартиране на FreeBSD бинари под Linux

Пакетът iBCS поддържа стартиране на FreeBSD бинари под Linux, но той е стар и не се поддържа.

6.2 Стартиране на Linux бинари под FreeBSD

FreeBSD има способността да стартира Linux бинари.За да направите това, трябва да изпълните следното:

Трябва да разрешите Linux съвместимост, за да направите това трябва да редактирате файла /etc/rc.conf като добавите следното:

linux_enable="YES"

...и рестартирате

Друг начин да заредите поддръжка на Linux бинари е като изпълните командата /usr/bin/linux. По този начин не е нужно да рестартирате и нямате постоянно заредена поддръжка на Linux бинари (спестява памет). Не забравяйте да добавите

 options         COMPAT_LINUX
 
към конфигурационния файл на ядрото, ако компилирате ново.

Трябва да инсталирате споделените библиотеки на Linux ако вашите Linux бинари са динамично свързани. Библиотеките са включени в дистрибуцията на FreeBSD.За да ги инсталирате изпълнете:

 pkg_add /път/до/пакета/linux_lib-*.tgz
 
може да ги инсталирате и от интернет
 pkg_add ftp://ftp.freebsd.org/път/до/пакета/linux_lib-*.tgz
 
или да стартирате отново /stand/sysinstall. Влезте в "Configure", "Packages" и използвайте менюто. Трябва да изпълните следната команда, ако използвате статично свързани Linux бинари:
 brandelf -t Linux 
 

Linux програмите могат да се инсталират и на UFS и на ext2fs файлови системи. Виж секция Монтиране на ext2fs файлови системи под FreeBSD за повече информация.


7. Информационни ресурси

Основно съм превеждал работата на Niels Kristian Bech Jensen, но имам и голяма доза консултации с наръчника на FreeBSD и доста Linux документация, както и личен опит (от преводача).

...превод Марио Георгиев Павлов(AKA Soulstealer)

Soulstealer@abv.bg

22 февруари 2005



<< Нелегитимен достъп до ресурси (уеб-базирани пощенски услуги) | Отново за lm_sensors >>