¡¡¡¡FreeBSD Ö÷»ú¿ÉÒÔ´ÓÍøÂçÆô¶¯¶øÎÞÐè±¾µØ´ÅÅ̾ͿɲÙ×÷£¬ ʹÓõÄÊÇ´Ó NFS ·þÎñÆ÷×°ÔØµÄÎļþϵͳ¡£ ³ýÁ˱ê×¼µÄÅäÖÃÎļþ£¬ÎÞÐèÈκεÄϵͳÐ޸ġ£ ºÜÈÝÒ×ÉèÖÃÕâÑùµÄϵͳÒòΪËùÓбØÒªµÄÔªËØ¶¼ºÜÈÝÒ׵õ½£º
ÖÁÉÙÓÐÁ½ÖÖ¿ÉÄܵķ½·¨´ÓÍøÂç¼ÓÔØÄںˣº
PXE£ºIntel® µÄÏÈÆô¶¯Ö´Ðл·¾³ (Preboot eXecution Environment) ϵͳÊÇÒ»ÖÖÁé»îµÄÒýµ¼ ROM ģʽ£¬Õâ¸ö ROM ÄÚ½¨ÔÚÒ»Ð©Íø¿¨»òÖ÷°åµÄÖС£²é¿´ pxeboot(8) ÒÔ»ñÈ¡¸ü¶àϸ½Ú¡£
Etherboot port (net/etherboot) ²úÉúͨ¹ýÍøÂç¼ÓÔØÄÚºËµÄ¿É ROM ´úÂë¡£ÕâЩ´úÂë¿ÉÒÔÉÕÈëÍø¿¨É쵀 PROM ÉÏ£¬»ò´Ó±¾µØÈíÅÌ (»òÓ²ÅÌ) Çý¶¯Æ÷¼ÓÔØ£¬»ò´ÓÔËÐÐ×ÅµÄ MS-DOS® ϵͳ¼ÓÔØ¡£ËüÖ§³Ö¶àÖÖÍø¿¨¡£
Ò»¸öÑù°å½Å±¾ (/usr/share/examples/diskless/clone_root) ¼ò»¯Á˶ԷþÎñÆ÷ÉϵŤ×÷Õ¾¸ùÎļþϵͳµÄ´´½¨ºÍά»¤¡£ Õâ¸ö½Å±¾ÐèÒªÉÙÁ¿µÄ×Ô¶¨Ò壬µ«ÄúÄܺܿìµÄÊìϤËü¡£
/etc ´æÔÚ±ê×¼µÄϵͳÆô¶¯ÎļþÓÃÓÚÕì²âºÍÖ§³ÖÎÞÅ̵ÄϵͳÆô¶¯¡£
¿ÉÒÔÏò NFS Îļþ»ò±¾µØ´ÅÅ̽øÐн»»»(Èç¹ûÐèÒªµÄ»°)¡£
¡¡¡¡ÉèÖÃÎÞÅ̹¤×÷Õ¾ÓÐÐí¶à·½·¨¡£ ÓкܶàÏà¹ØµÄÔªËØ´ó²¿·Ö¿ÉÒÔ×Ô¶¨ÒåÒÔÊʺϱ¾µØÇé¿ö¡£ ÒÔϽ«½éÉÜÒ»¸öÍêÕûϵͳµÄ°²×°£¬Ç¿µ÷µÄÊǼòµ¥ÐÔºÍÓë±ê×¼ FreeBSD Æô¶¯½Å±¾µÄ¼æÈÝ¡£½éÉܵÄϵͳÓÐÒÔÏÂÌØÐÔ£º
ÎÞÅ̹¤×÷վʹÓÃÒ»¸ö¹²ÏíµÄÖ»¶Á / ÎļþϵͳºÍÒ»¸ö¹²ÏíµÄÖ»¶Á/usr¡£
root ÎļþϵͳÊÇÒ»·Ý±ê×¼µÄ FreeBSD ¸ùÎļþϵͳ (Ò»°ãÊÇ·þÎñÆ÷µÄ)£¬Ö»ÊÇһЩÅäÖÃÎļþ±»Ìض¨ÓÚÎÞÅ̲Ù×÷µÄÅäÖÃÎļþ¸²¸Ç¡£
root Îļþϵͳ±ØÐë¿ÉдµÄ²¿·Ö±» md(4) Îļþϵͳ¸²¸Ç¡£ ÈκεĸÄдÔÚÖØÆôºó¶¼»á¶ªÊ§¡£
ÄÚºËÓÉ etherboot »ò PXE ´«ËͺͼÓÔØ£¬ ÓÐЩÇé¿ö¿ÉÄÜ»áÖ¸¶¨Ê¹ÓÃÆäÖÐÖ®Ò»¡£
СÐÄ: ÈçÉÏËùÊö£¬Õâ¸öϵͳÊDz»°²È«µÄ¡£ ËüÓ¦¸Ã´¦ÓÚÍøÂçµÄÊܱ£»¤ÇøÓò²¢²»±»ÆäËüÖ÷»úÐÅÈΡ£
¡¡¡¡Õⲿ·ÖËùÓеÄÐÅÏ¢¾ùÔÚ 5.2.1-RELEASE ÉϲâÊÔ¹ý¡£
¡¡¡¡ÉèÖÃÎÞÅ̹¤×÷Õ¾Ïà¶ÔÒª¼òµ¥¶øÓÖÒ׳ö´í¡£ ÓÐʱ·ÖÎöһЩÔÒòÊǺÜÄѵġ£ÀýÈ磺
±àÒëʱѡÏîÔÚÔËÐÐʱ¿ÉÄܲúÉú²»Í¬µÄÐÐΪ¡£
³ö´íÐÅÏ¢¾³£ÊǼÓÃÜÁ˵Ļò¸ù±¾¾ÍûÓС£
¡¡¡¡ÔÚÕâÀ Éæ¼°µ½µÄһЩ±³¾°ÖªÊ¶¶ÔÓÚ¿ÉÄܳöÏÖµÄÎÊÌâµÄ½â¾öÊǺÜÓаïÖúµÄ¡£
¡¡¡¡Òª³É¹¦µØÒýµ¼ÏµÍ³»¹ÓÐЩ²Ù×÷ÐèÒª×ö¡£
»ú×ÓÐèÒª»ñÈ¡³õʼµÄ²ÎÊý£¬ÈçËüµÄ IP µØÖ·¡¢Ö´ÐÐÎļþ¡¢·þÎñÆ÷Ãû¡¢¸ù·¾¶¡£Õâ¸ö¿ÉÒÔʹÓà »ò BOOTP ÐÒéÀ´Íê³É¡£ DHCP ÊÇ BOOTP µÄ¼æÈÝÀ©Õ¹£¬ ²¢Ê¹ÓÃÏàͬµÄ¶Ë¿ÚºÍ»ù±¾°ü¸ñʽ¡£
ֻʹÓà BOOTP À´ÅäÖÃϵͳҲÊÇ¿ÉÐеġ£ bootpd(8) ·þÎñ³ÌÐò±»°üº¬ÔÚ»ù±¾µÄ FreeBSD ϵͳÀï¡£
²»¹ý£¬DHCP Ïà±È BOOTP Óм¸¸öºÃ´¦ (¸üºÃµÄÅäÖÃÎļþ£¬Ê¹Óà PXE µÄ¿ÉÄÜÐÔ£¬ÒÔ¼°Ðí¶àÆäËü²¢²»Ö±½ÓÏà¹ØµÄÎÞÅ̲Ù×÷)£¬ ½Ó×ÅÎÒÃÇ»áÒªÃèÊöÒ»¸ö DHCP ÅäÖ㬠¿ÉÄܵϰ»áÀûÓÃÓëʹÓà bootpd(8) ÏàͬµÄÀý×Ó¡£Õâ¸öÑù°åÅäÖûáʹÓÃISC DHCP Èí¼þ°ü (3.0.1.r12 ·¢Ðа氲װÔÚ²âÊÔ·þÎñÆ÷ÉÏ)¡£
»ú×ÓÐèÒª´«ËÍÒ»¸ö»ò¶à¸ö³ÌÐòµ½±¾µØÄÚ´æ¡£ TFTP »ò NFS »á±»Ê¹Óá£Ñ¡ÔñTFTP »¹ÊÇ NFS ÐèÒªÔÚ¼¸¸öµØ·½µÄ¡°±àÒëʱ¼ä¡±Ñ¡ÏîÀïÉèÖᣠͨ³£µÄ´íÎóÔ´ÊÇΪÎļþÃûÖ¸¶¨ÁË´íÎóµÄÐÒ飺TFTP ͨ³£´Ó·þÎñÆ÷ÀïµÄÒ»¸öµ¥Ò»Ä¿Â¼´«ËÍËùÓÐÎļþ£¬²¢ÐèÒªÏà¶ÔÕâ¸öĿ¼µÄÎļþÃû¡£ NFS ÐèÒªµÄÊǾø¶ÔÎļþ·¾¶¡£
½éÓÚÆô¶¯³ÌÐòºÍÄÚºËÖ®¼äµÄ¿ÉÄܵIJ¿·ÖÐèÒª±»³õʼ»¯²¢Ö´ÐС£ ÔÚÕⲿ·ÖÓм¸¸öÖØÒªµÄ±äÁ¿£º
PXE »á×°Èë pxeboot(8)¡ª¡ªËüÊÇ FreeBSD µÚÈý½×¶Î×°ÔØÆ÷µÄÐ޸İ档 loader(8) »á»ñµÃÐí¶à²ÎÊýÓÃÓÚϵͳÆô¶¯£¬ ²¢ÔÚ´«ËÍ¿ØÖÆÖ®Ç°°ÑËüÃÇÁôÔÚÄں˻·¾³Àï¡£ ÔÚÕâÖÖÇé¿öÏ£¬Ê¹Óà GENERIC Äں˾ͿÉÄÜÁË¡£
Etherboot »á×öºÜÉÙµÄ×¼±¸Ö±½Ó×°ÔØÄںˡ£ ÄúҪʹÓÃÖ¸¶¨µÄÑ¡ÏÁ¢ (build) Äںˡ£
PXE ºÍ Etherboot ¹¤×÷µÃÒ»ÑùµÄºÃ¡£ ²»¹ý£¬ ÒòΪһ°ãÇé¿öÏÂÄÚºËÏ£Íû loader(8) ×öÁ˸ü¶àµÄÊÂÇ飬 PXE ÊÇÍÆ¼öµÄ·½·¨¡£
Èç¹ûÄúµÄ BIOS ºÍÍø¿¨¶¼Ö§³Ö PXE£¬ ¾ÍÓ¦¸ÃʹÓÃËü¡£
×îºó£¬»ú×ÓÐèÒª·ÃÎÊËüµÄÎļþϵͳ¡£ NFS ʹÓÃÔÚËùÓеÄÇé¿öÏ¡£
¡¡¡¡²é¿´ diskless(8) ÊÖ²áÒ³¡£
¡¡¡¡ISC DHCP ·þÎñÆ÷¿ÉÒÔ»ØÓ¦ BOOTP ºÍ DHCP µÄÇëÇó¡£
¡¡¡¡ISC DHCP 3.1 ²¢²»ÊôÓÚ»ù±¾ÏµÍ³¡£Ê×ÏÈÄúÐèÒª°²×° net/isc-dhcp31-server port »òÏàÓ¦µÄ¡°°ü¡±¡£
¡¡¡¡Ò»µ©°²×°ÁË ISC DHCP£¬ »¹ÐèÒªÒ»¸öÅäÖÃÎļþ²ÅÄÜÔËÐÐ (ͨ³£Ãû½Ð /usr/local/etc/dhcpd.conf)¡£ ÕâÀïÓиö×¢Ê͹ýµÄÀý×Ó£¬Àï±ßÖ÷»ú margaux ʹÓà Etherboot£¬ ¶øÖ÷»úcorbieres ʹÓà PXE£º
default-lease-time 600; max-lease-time 7200; authoritative; option domain-name "example.com"; option domain-name-servers 192.168.4.1; option routers 192.168.4.1; subnet 192.168.4.0 netmask 255.255.255.0 { use-host-decl-names on;option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255; host margaux { hardware ethernet 01:23:45:67:89:ab; fixed-address margaux.example.com; next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
} host corbieres { hardware ethernet 00:02:b3:27:62:df; fixed-address corbieres.example.com; next-server 192.168.4.4; filename "pxeboot"; option root-path "192.168.4.4:/data/misc/diskless"; } }
¡¡¡¡ÕâÀï½ô¸úµÄÊÇÒ»¸öµÈЧµÄ bootpd ÅäÖà (¼õÉÙµ½Ò»¸ö¿Í»§¶Ë)¡£Õâ¸ö¿ÉÒÔÔÚ /etc/bootptab ÀïÕÒµ½¡£
¡¡¡¡Çë×¢Ò⣺ΪÁËʹÓÃBOOTP£¬etherboot ±ØÐëʹÓ÷ÇĬÈÏÑ¡Ïî NO_DHCP_SUPPORT À´½øÐбàÒ룬¶øÇÒ PXE ÐèÒª DHCP¡£bootpd µÄΨһ¿É¼ûµÄºÃ´¦ÊÇËü´æÔÚÓÚ»ù±¾ÏµÍ³ÖС£
.def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless": margaux:ha=0123456789ab:tc=.def100
¡¡¡¡Etherboot µÄÍøÕ¾ °üº¬Óиü¶àµÄÎĵµ ¡ª¡ªÖ÷ÒªÃé×¼µÄÊÇ Linux ϵͳ£¬µ«ÎÞÒɰüº¬ÓÐÓÐÓõÄÐÅÏ¢¡£ ÈçÏÂÁгöµÄÊǹØÓÚÔÚ FreeBSD ϵͳÀïʹÓà Etherboot¡£
¡¡¡¡Ê×ÏÈÄú±ØÐë°²×°net/etherboot °ü»ò port¡£
¡¡¡¡Äú¿ÉÒԸıä Etherboot µÄÅäÖà (ÈçʹÓà TFTP À´´úÌæ NFS)£¬ ·½·¨ÊÇÐÞ¸Ä Config Îļþ¡ª¡ªÔÚ Etherboot ԴĿ¼Àï¡£
¡¡¡¡¶ÔÓÚÎÒÃǵÄÉèÖã¬ÎÒÃÇҪʹÓÃÒ»ÕÅÆô¶¯ÈíÅÌ¡£ ¶ÔÓÚÆäËüµÄ·½·¨(PROM£¬»ò MS-DOS³ÌÐò)£¬ Çë²Î¿¼ Etherboot Îĵµ¡£
¡¡¡¡ÏëҪʹÓÃÆô¶¯ÈíÅÌ£¬ÏȲåÈëÒ»ÕÅÈíÅ̵½°²×°ÓÐ Etherboot µÄ»úÆ÷µÄÇý¶¯Æ÷À È»ºó°Ñµ±Ç°Â·¾¶¸Äµ½ src Ŀ¼¡ª¡ªÔÚ Etherboot Ê÷Ï£¬ ½Ó×ÅÊäÈ룺
# gmake bin32/devicetype.fd0
¡¡¡¡devicetype ÒÀÀµÓÚÎÞÅ̹¤×÷Õ¾ÉϵÄÒÔÌ«Íø¿¨µÄÀàÐÍ¡£ ²Î¿¼ÔÚͬһ¸öĿ¼Ï嵀 NIC ÎļþÈ·ÈÏÕýÈ·µÄ devicetype¡£
¡¡¡¡Ä¬Èϵأ¬pxeboot(8) ×°ÔØÆ÷ͨ¹ý NFS ×°ÔØÄںˡ£Ëü¿ÉÒÔ±àÒëÀ´Ê¹Óà TFTP¡ª¡ªÍ¨¹ýÔÚÎļþ /etc/make.conf ÀïÖ¸¶¨ LOADER_TFTP_SUPPORT Ñ¡ÏîÀ´´úÌæ¡£ Çë²Î¼û /usr/share/examples/etc/make.conf ÀïµÄ×¢ÊÍ Á˽âÈçºÎÅäÖá£
¡¡¡¡³ý´ËÖ®Í⻹ÓÐÁ½¸öδ˵Ã÷µÄ make.conf Ñ¡Ï¡ªËü¿ÉÄܶÔÓÚÉèÖÃһϵÁпØÖÆÌ¨ÎÞÅÌ»úÆ÷»áÓÐÓ㺠BOOT_PXELDR_PROBE_KEYBOARDºÍ BOOT_PXELDR_ALWAYS_SERIAL¡£
¡¡¡¡µ±»úÆ÷Æô¶¯ÀҪʹÓà PXE£¬ ͨ³£ÐèҪѡÔñ Boot from network Ñ¡Ï¡ªÔÚ BIOS ÉèÖÃÀ »òÕßÔÚ PC ³õʼ»¯µÄʱºòÊäÈëÒ»¸ö¹¦Äܼü (function key)¡£
¡¡¡¡Èç¹ûÄúÕýÔÚʹÓà PXE »ò Etherboot¡ª¡ªÅäÖÃʹÓÃÁË TFTP£¬ÄÇôÄúÐèÒªÔÚÎļþ·þÎñÆ÷ÉÏÆôÓà tftpd£º
½¨Á¢Ò»¸öĿ¼¡ª¡ª´ÓÄÇÀï tftpd ¿ÉÒÔÌṩÎļþ·þÎñ£¬Èç /tftpboot¡£
°ÑÕâÒ»ÐмÓÈëµ½ /etc/inetd.confÀ
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
×¢Òâ: ºÃÏñÓÐһЩ°æ±¾µÄ PXE ÐèÒª TCP °æ±¾µÄ TFTP¡£ ÔÚÕâÖÖÇé¿öÏ£¬¼ÓÈëµÚ¶þÐУ¬Ê¹Óà stream tcp À´´úÌæ dgram udp¡£
Èà inetd ÖØ¶ÁÆäÅäÖÃÎļþ¡£ ÒªÕýÈ·Ö´ÐÐÕâ¸öÃüÁ ÔÚ
/etc/rc.conf ÎļþÖбØÐë¼ÓÈë inetd_enable="YES"
£º
# /etc/rc.d/inetd restart
¡¡¡¡Äú¿É°Ñ tftpboot Ŀ¼·Åµ½·þÎñÆ÷ÉϵÄʲºÎµØ·½¡£ È·¶¨Õâ¸öλÖÃÉèÖÃÔÚ inetd.conf ºÍ dhcpd.conf Àï¡£
¡¡¡¡ÔÚËùÓеÄÇé¿öÏ£¬Äú¶¼ÐèÒªÆôÓà NFS£¬ ²¢ÇÒ NFS ·þÎñÆ÷Éϵ¼³öÏàÓ¦µÄÎļþϵͳ¡£
°ÑÕâÒ»ÐмÓÈëµ½/etc/rc.confÀ
nfs_server_enable="YES"
ͨ¹ýÍù /etc/exports Àï¼ÓÈëÏÂÃæ¼¸ÐÐ(µ÷Õû¡°ÔØÈëµã¡±ÁУ¬ ²¢ÇÒʹÓÃÎÞÅ̹¤×÷Õ¾µÄÃû×ÖÌæ»» margaux corbieres)£¬ µ¼³öÎļþϵͳ¡ª¡ªÎÞÅ̸ùĿ¼´æÔÚÓÚ´Ë£º
/data/misc -alldirs -ro margaux corbieres
Èà mountd ÖØ¶ÁËüµÄÅäÖÃÎļþ¡£Èç¹ûÄúÕæµÄÐèÒªÆôÓõÚÒ»²½µÄ /etc/rc.conf Àï NFS£¬ Äú¿ÉÄܾÍÒªÖØÆôϵͳÁË¡£
# /etc/rc.d/mountd restart
¡¡¡¡Èç¹ûÄúÔÚʹÓà Etherboot£¬ ÄúÐèҪΪÎÞÅ̿ͻ§¶Ë½¨Á¢ÄÚºËÅäÖÃÎļþ£¬ ʹÓÃÈçÏÂÑ¡Ïî(³ýÁ˳£Ê¹ÓõÄÍâ)£º
options BOOTP # Use BOOTP to obtain IP address/hostname options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
¡¡¡¡Äú¿ÉÄÜÒ²ÏëʹÓà BOOTP_NFSV3£¬ BOOT_COMPAT ºÍ BOOTP_WIRED_TO (²Î¿¼ NOTES Îļþ)¡£
¡¡¡¡ÕâЩÃû×Ö¾ßÓÐÀúÊ·ÐÔ£¬²¢ÇÒÓÐЩÓÐЩÎóµ¼£¬ ÒòΪËüÃÇʵ¼ÊÉÏÆôÓÃÁËÄÚºËÀï (Ëü¿ÉÄÜÇ¿ÖÆÏÞÖÆ BOOTP »ò DHCP µÄʹÓÃ)£¬Óë DHCP ºÍ BOOTP µÄÎ޹صÄÓ¦Óá£
¡¡¡¡±àÒëÄÚºË(²Î¿¼µÚ 8 ÕÂ)£¬ È»ºó½«Ëü¸´ÖƵ½ dhcpd.conf ÀïÖ¸¶¨µÄµØ·½¡£
×¢Òâ: µ±Ê¹Óà PXE À ʹÓÃÒÔÉÏÑ¡ÏÁ¢Äں˲¢²»×öÑϸñÒªÇó(¾¡¹Ü½¨ÒéÕâÑù×ö)¡£ ÆôÓÃËüÃÇ»áÔÚÄÚºËÆô¶¯Ê±ÒýÆð¸ü¶àµÄ DHCP Ìá¼°¹ýµÄÇëÇ󣬴øÀ´µÄССµÄ·çÏÕÊÇÔÚÓÐÐ©ÌØÊâÇé¿öÏÂÐÂÖµºÍÓÉ pxeboot(8) È¡»ØµÄÖµÖ®¼äµÄ²»Ò»ÖÂÐÔ¡£ ʹÓÃËüÃǵĺô¦ÊÇÖ÷»úÃû»á±»¸½´øÉèÖ᣷ñÔò£¬ Äú¾ÍÐèҪʹÓÃÆäËüµÄ·½·¨À´ÉèÖÃÖ÷»úÃû£¬ÈçÔÚ¿Í»§¶ËÖ¸¶¨µÄ rc.conf ÎļþÀï¡£
×¢Òâ: ΪÁËʹ´øÓÐ Etherboot µÄÄں˿ÉÒýµ¼£¬¾ÍÐèÒª°ÑÉ豸Ìáʾ (device hint) ±àÒë½øÈ¥¡£Í¨³£ÒªÔÚÅäÖÃÎļþ(²é¿´ NOTES ÅäÖÃ×¢ÊÍÎļþ) ÀïÉèÖÃÏÂÁÐÑ¡Ï
hints "GENERIC.hints"
¡¡¡¡ÄúÐèҪΪÎÞÅ̹¤×÷Õ¾½¨Á¢¸ùÎļþϵͳ£¬ Ëü¾ÍÊÇ dhcpd.conf ÀïµÄ root-path ËùÖ¸¶¨µÄĿ¼¡£
¡¡¡¡ÕâÖÖ·½·¨¿ÉÒÔѸËÙ°²×°Ò»¸ö³¹µ×¸É¾»µÄϵͳ (²»½ö½öÊǸùÎļþϵͳ) µ½ DESTDIR¡£ ÄúÒª×öµÄ¾ÍÊǼòµ¥µØÖ´ÐÐÏÂÃæµÄ½Å±¾£º
#!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make buildworld && make buildkernel make installworld && make installkernel cd /usr/src/etc; make distribution
¡¡¡¡Ò»µ©Íê³É£¬Äú¿ÉÄÜÐèÒª¶¨ÖÆ /etc/rc.conf ºÍ /etc/fstab¡ª¡ª¸ù¾ÝÄúµÄÐèÒª·Åµ½ DESTDIRÀï¡£
¡¡¡¡Èç¹ûÐèÒª£¬Î»ÓÚ·þÎñÆ÷ÉϵĽ»»»Îļþ¿ÉÒÔͨ¹ý NFS À´·ÃÎÊ¡£
¡¡¡¡Äں˲¢²»Ö§³ÖÔÚÒýµ¼Ê±ÆôÓà NFS ½»»»Çø¡£ ½»»»Çø±ØÐëͨ¹ýÆô¶¯½Å±¾ÆôÓ㬠Æä¹ý³ÌÊǹҽÓÒ»¸ö¿ÉдµÄÎļþϵͳ£¬ ²¢ÔÚÆäÉÏ´´½¨²¢ÆôÓý»»»Îļþ¡£ Òª½¨Á¢³ß´çºÏÊʵĽ»»»Îļþ£¬ ¿ÉÒÔÕâÑù×ö£º
# dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000
¡¡¡¡ÒªÆôÓÃËü£¬ÄúÐëÒª°ÑÏÂÃæ¼¸Ðмӵ½ rc.confÀ
swapfile=/path/to/swapfile
¡¡¡¡Èç¹ûÎÞÅ̹¤×÷Õ¾ÊÇÅäÖÃÀ´Ö§³Ö X£¬ ÄÇôÄú¾Í±ØÐëµ÷Õû XDM ÅäÖÃÎļþ£¬ÒòΪËüĬÈϰѴíÎóÐÅϢдµ½ /usr¡£
¡¡¡¡µ±ÓÃ×÷¸ùÎļþϵͳµÄ·þÎñÆ÷ÔËÐеÄÊDz» FreeBSD£¬ÄúÐëÒªÔÚ FreeBSD »úÆ÷ÉϽ¨Á¢¸ùÎļþϵͳ£¬ È»ºó°ÑËü¸´ÖƵ½ËüµÄÄ¿µÄµØ£¬Ê¹ÓõÄÃüÁî¿ÉÒÔÊÇ tar »ò cpio¡£
¡¡¡¡ÔÚÕâÖÖÇé¿öÏ£¬ÓÐʱ¶ÔÓÚ /dev ÀïµÄÒ»Ð©ÌØÊâµÄÎļþ»áÓÐÎÊÌ⣬ÔÒò¾ÍÊDz»Í¬µÄ ¡°×î´ó/×îС¡±ÕûÊý´óС¡£ Ò»ÖÖ½â¾öµÄ·½·¨¾ÍÊÇ´Ó·Ç FreeBSD ·þÎñÀïµ¼³öÒ»¸öĿ¼£¬ ²¢°ÑËüÔØÈë FreeBSD µ½»ú×ÓÉÏ£¬ ²¢Ê¹Óà devfs(5) À´ÎªÓû§Í¸Ã÷µØ·ÖÅÉÉ豸½Úµã¡£
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.