學習Linux和FreeBSD來共享swap分區(qū)
在一臺電腦上安裝有FreeBSD和Linux兩個系統(tǒng)時,可以讓這兩個系統(tǒng)使用同一個硬盤分區(qū)作為swap分區(qū),節(jié)省一定的硬盤空間。這里介紹一種實現(xiàn)共享swap分區(qū)的方法,當然可能有其他方法也可以解決這一問題。
這一方法在RedHat Linux release 4.1和4.1(Linux kernel 版本2.0.29 和2.0.30)和FreeBSD2.2.2上通過測試,高版本的系統(tǒng)應該同樣可以實現(xiàn)。首先安裝哪個系統(tǒng)都無所謂,只需要注意一下FreeBSD的slice分區(qū)的次序。
第一步,安裝Linux
按照正常的步驟安裝Linux,注意為安裝FreeBSD留出硬盤空間。安裝Linux時不必設定swap分區(qū),如果你想加一個swap分區(qū),那么把swap分區(qū)放到為FreeBSD留出的硬盤空間上。這樣可以刪除掉這個swap分區(qū),然后安裝FreeBSD。
安裝完Linux,必須重新編譯內(nèi)核,加入UFS文件系統(tǒng)支持和BSD disklabel(FreeBSD分區(qū)表)支持。
- 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分區(qū),刪除/etc/fstab文件中包含swap的一行。確定你有一張可以啟動新內(nèi)核的啟動盤。然后安裝FreeBSD。
第二步,安裝FreeBSD
按照正常步驟安裝FreeBSD,如果為Linux分配了swap分區(qū),可以用FreeBSD的fdisk刪除掉。注意FreeBSD的slice分區(qū)的次序,如果使用默認分區(qū),那么第二個分區(qū)是FreeBSD的swap分區(qū)。完成FreeBSD安裝后重新啟動到Linux。
第三步,在Linux中設定使用FreeBSD的swap分區(qū)
重新啟動到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的分區(qū)。如果FreeBSD的swap分區(qū)在這個slice上的第二個分區(qū),那就是/dev/hda6。
那么就把下面一行加入/etc/fstab中:
/dev/hda6 none swap sw 0 0
由于FreeBSD可以使用任何形式的分區(qū)作為swap分區(qū)。而Linux需要在swap分區(qū)上設定一個特殊標識。這個標識是是用mkswap生成的。FreeBSD在使用swap分區(qū)時破壞了這個標識。所以在每次啟動Linux時都要運行mkswap來重新設定這個標識。
為自動完成這個工作,找到啟動時執(zhí)行swapon的script文件。在RedHat Linux中這個文件是/etc/rc.d/rc.sysinit,將下面一行加在swapon -a 的前面。
- awk -- /swap/ && ($1 !~ /#/) { system("mkswap "$1"") } /etc/fstab
這樣在每次啟動Linux時就會在/etc/fstab中設定的swap分區(qū)上運行mkswap。
好了,完成了設定,可以重新啟動到FreeBSD看看swap分區(qū)是否工作,再重新啟動到Linux看看是否工作。但愿你能順利的設定完成。
【編輯推薦】