FreeBSD和Linux共享swap分割槽(轉)

ba發表於2007-08-12
FreeBSD和Linux共享swap分割槽(轉)[@more@]在一臺電腦上安裝有FreeBSD和Linux兩個系統時,可以讓這兩個系統使用同一個硬碟分割槽作為swap區,節省一定的硬碟空間。這裡介紹一種實現共享swap區的方法,當然可能有其他方法也可以解決這一問題。。首先安裝哪個系統都無所謂,只需要注意一下FreeBSD的slice分割槽的次序。

第一步,安裝Linux。

按照正常的步驟安裝Linux,注意為安裝FreeBSD留出硬碟空間。安裝Linux時不必設定swap分割槽,如果你想加一個swap分割槽,那麼把swap分割槽放到為FreeBSD留出的硬碟空間上。這樣可以刪除掉這個swap分割槽,然後安裝FreeBSD。
安裝完Linux,必須重新編譯核心,加入UFS檔案系統支援和BSD disklabel(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
安裝新kernel並重新啟動機器。注意如果你設定了swap分割槽,刪除/etc/fstab檔案中包含swap的一行。確定你有一張可以啟動新核心的啟動盤。然後安裝FreeBSD。

第二步,安裝FreeBSD。

按照正常步驟安裝FreeBSD,如果為Linux分配了swap分割槽,可以用FreeBSD的fdisk刪除掉。注意FreeBSD的slice分割槽的次序,如果使用預設分割槽,那麼第二個分割槽是FreeBSD的swap分割槽。完成FreeBSD安裝後重新啟動到Linux。

第三步,在Linux中設定使用FreeBSD的swap分割槽。

重新啟動到Linux中後,執行dmesg,在輸出資訊中可以看到如下的資訊:
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
這表示/dev/hda4是你的FreeBSD slice,/dev/hda5、/dev/hda6、/dev/hda7、/dev/hda8是FreeBSD的分割槽。如果FreeBSD的swap分割槽在這個slice上的第二個分割槽,那就是/dev/hda6。
那麼就把下面一行加入/etc/fstab中:
/dev/hda6 none swap sw 0 0
由於FreeBSD可以使用任何形式的分割槽作為swap分割槽。而Linux需要在swap分割槽上設定一個特殊標識。這個標識是是用mkswap生成的。FreeBSD在使用swap分割槽時破壞了這個標識。所以在每次啟動Linux時都要執行mkswap來重新設定這個標識。為自動完成這個工作,找到啟動時執行swapon的script檔案。在RedHat Linux中這個檔案是/etc/rc.d/rc.sysinit,將下面一行加在swapon -a 的前面。
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
這樣在每次啟動Linux時就會在/etc/fstab中設定的swap分割槽上執行mkswap。

好了,完成了設定,可以重新啟動到FreeBSD看看swap分割槽是否工作,再重新啟動到Linux看看是否工作。但願你能順利的設定完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950481/,如需轉載,請註明出處,否則將追究法律責任。

相關文章