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