歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> Linux與FreeBSD共存

Linux與FreeBSD共存

日期:2017/2/27 17:44:16   编辑:Unix教程
FreeBSD
  By Wing
  摘要:這個文檔描述了如果在同一個系統上使用Linux和FreeBSD。它介紹了FreeBSD,並且討論如果使這兩個系統協同工作,比如,共享swap空間。在讀些文檔之前,最好有一些對於fdisk分區和Linux或FreeBSD系統的經驗。這個文檔使用的經驗在FreeBSD 2.2.2上通過,當然對於新的版本,它依然是適用的。
  這個文檔描述了如果在同一個系統上使用Linux和FreeBSD。它介紹了FreeBSD,並且討論如果使這兩個系統協同工作,比如,共享swap空間。在讀些文檔之前,最好有一些對於fdisk分區和Linux或FreeBSD系統的經驗。這個文檔使用的經驗在FreeBSD 2.2.2上通過,當然對於新的版本,它依然是適用的。如果有什麼問題,請來信,我也希望看看別人使用NetBSD和OpenBSD與Linux共存的經驗。
  
    內容列表
  
  什麼是FreeBSD?
  FreeBSD對於磁盤分區的方式
    2.1 FreeBSD "slices"和"partitions"
  
    2.2 在Linux和FreeBSD中的驅動器和分區標號
  
  在Linux和FreeBSD系統上共享swap空間
    3.1安裝Linux
  
    3.2安裝FreeBSD
  
    3.3在Linux中設置FreeBSD的swap分區
  
  使用LILO啟動FreeBSD
  掛起文件系統
    5.1在Linux掛起UFS文件系統
  
    5.2在FreeBSD中掛起ext2fs文件系統
  
  運行外部二次制代碼
  
    6.1 在Linux下運行FreeBSD的二進制代碼
  
    6.2 在FreeBSD下運行Linux的二進制代碼
  
  信息資源
  ---------------------------------------------------------
  1、什麼是FreeBSD?
  
    FreeBSD是一個免費的類Unix的操作系統,非常類似於Linux。這個主要的區別是,Linux的內核是拼湊出來的,FreeBSD是根據自由發布的4.4BSD(伯克利軟件分部)發展而來的。這個現實可能導致了一些人提出FreeBSD比Linux更接近於“真正”的UNIX。FreeBSD只運行在Intel的PC系統上(i386體系);DEC Alpha和Sun Sparc平台上的ports也在此時一起被開發。NetBSD和OpenBSD都與FreeBSD非常相像,非常都可以運行在幾個平台之上。*BSD的硬件的需要與Linux差不多。
  
    被管理FreeBSD的開發過程與Linux的開發過程並不一樣。有一個核心小組對內核代碼進行裁決並且領導整個工程的開發。
  
    如果有大的改變,則需要在電子郵件中進一步討論。FreeBSD工程具有兩個開發樹(就像Linux):"-CURRENT"和"-STABLE"。"-CURRENT"開發樹包括了新的特性。而"-STABLE"開發樹則修證了新特性中測試出來的錯誤和漏洞。
  
    FreeBSD可以被免費地使用和發布,就如同Linux一樣。在其下運行的許多部件都使用了BSD的版權。
  
  2、FreeBSD對於磁盤分區標記的方式
  
    Linux和FreeBSD標記了硬盤驅動器和分區。對於兩個系統來說,對於扇區的闡述不盡相同。實際上FreeBSD的分區方式只是BSD的分區方式在PC的fdisk分區方式上的體現。因此它非常類似於其它的類Unix系統,比如NetBSD,OpenBSD,Ultrix,Digial Unix,SunOS,和Solaris。
  
    2.1. FreeBSD"slices"和"partitions"
  
    FreeBSD需要在你的PC上的硬盤上的分區表中占用四個項。在FreeBSD術語中,主分區被稱為一個"slice"。使用disklabel程序在這個主分區中造成8個分區。在FreeBSD術語中,這些邏輯分區被稱為“partitions"。這個概念與Linuxs管理在一個擴展分區中的邏輯分區的方式非常類似。你不可以在由Linux建立的擴展分區中安裝FreeBSD。注意,Linux的fdisk程序不能在其主菜單中顯示出在FreeBSD的slice中的BSD分區,但是你可以通過命令“b“來顯示BSD的卷標。輸出如下內容:
  
  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"。在BSD中,有三種特別的分區。字母'a'表示是root分區,'b'表示是swap分區,c是整個slice。如果您想知道詳細情況,請查閱"standard"的方式。
  
    2.2 在Linux和FreeBSD中的驅動器和分區標號
  
    在Linux和FreeBSD中,硬盤被標記成以下方式。
  
  Linux FreeBSD
   First IDE drive /dev/hda /dev/wd0
   Second IDE drive /dev/hdb /dev/wd1
   First SCSI drive /dev/sda /dev/sd0
   Second SCSI drive /dev/sdb /dev/sd1
  
    而在一個IDE驅動器的分區(FreeBSD slices)由以下方式標記:
   Linux FreeBSD
   First primary partition /dev/hda1 /dev/wd0s1
   Second primary partition /dev/hda2 /dev/wd0s2
   Third primary partition /dev/hda3 /dev/wd0s3
   Fourth primary partition /dev/hda4 /dev/wd0s4
  
    在我的FreeBSD的slice上的分區,由以下方式標記。這是默認的標記方法。如果你自定義安裝FreeBSD,那麼則有可能改變它。(/dev/hda4在例子中是一個FreeBSD slice)。
  
  Linux label FreeBSD label FreeBSD mount point
   /dev/hda5 /dev/wd0s4a /
   /dev/hda6 /dev/wd0s4b swap
   /dev/hda7 /dev/wd0s4e /var
   /dev/hda8 /dev/wd0s4f /usr
  
    如果你在Linux中運行“dmesg”,你將發現下面情況:(Linux的內核必須支持UFS文件系統)
  
  Partition check:
   hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
  
    如果你已經在/dev/sd1s3 slice上安裝了FreeBSD,並且/dev/sdb2是一個Linux的擴展分區,它包括了兩個邏輯分區(/dev/sdb5和/dev/sdb6),比如:
  
   Linux label FreeBSD label FreeBSD mount point
   /dev/sdb7 /dev/sd1s3a /
   /dev/sdb8 /dev/sd1s3b swap
   /dev/sdb9 /dev/sd1s3e /var
   /dev/sdb10 /dev/sd1s3f /usr
  
   dmesg的輸出:
  Partition check:
   sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >
  
    如果在你的FreeBSD slice中你有了問題之後,你有一個Linux的擴展分區,因為大多數Linux內核安裝軟盤被建立的時候沒有包括UFS的支持,它們將不能識別FreeBSD的分區。在dmesg:(/dev/hda3是FreeBSD slice並且/dev/hda4是Linux的擴展分區)
  
  Partition check:
   hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >
  
    被看作:
  
   Partition check:
   hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
  
    這將給出設備的錯誤信號,並且引起數據的丟失。我的建議是:允許在任何一個Linux擴展分區之後放入人的FreeBSD分區,並且在安裝了FreeBSD之後,不要改變在Linux擴展分區中的任何邏輯分區。
  
  3、在Linux和FreeBSD系統上共享swap空間
  
    這個部分描述了如何使用Linux和FreeBSD來共享一個swap空間。有幾種不同的方法可以實現它。如果你願意,你可以在Linux安裝之前安裝FreeBSD,只是需要注意FreeBSD slice的分區順序。
  
    3.1.1安裝Linux
  
    第一步是正常安裝Linux。你必須在硬盤上留下一些空間作為FreeBSD的slice。你不必分出一個Linux swap分區,但是如果你需要一個,將其放在你為FreeBSD安排的空間中。這個方法可以使你在以後使用FreeBSD的空間時,刪除Linuxswap分區。
  
    當你安裝了Linux後,你必須重新編譯一個新的內核。如果不熟悉,請讀一下Linux kernel HOWTO。你必須在內核中包入UFS文件系統支持(只讀)和BSD磁盤標記(FreeBSD分區表)支持:
  
   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
Copyright © Linux教程網 All Rights Reserved