| NanoBSD ¼ò½é | ||
|---|---|---|
| ÉÏÒ»Ò³ | ||
¡¡¡¡Ò»µ©½«Ó³Ïñ´æÈë½éÖÊ£¬ ¾Í¿ÉÒÔÓÃËüÀ´Òýµ¼ NanoBSD ÁË¡£ ĬÈÏÇé¿öÏ£¬ ´óÈÝÁ¿´æ´¢Æ÷»á»®·ÖΪÈý¸öÇø£º
Á½¸öÓ³ÏñÇø£º code#1 ºÍ code#2¡£
Ò»¸öÅäÖÃÎļþÇø£¬ ÔËÐл·¾³ÖУ¬ ¿ÉÒÔ½«Æä¹Ò½Óµ½ /cfg Ŀ¼Ï¡£
¡¡¡¡ÕâЩ·ÖÇøÄ¬ÈÏÇé¿öÏÂÒÔÖ»¶Á·½Ê½¹Ò½Ó¡£
¡¡¡¡/etc ºÍ /var Ŀ¼¾ùΪ md(4) (malloc) ÅÌ¡£
¡¡¡¡ÅäÖÃÎļþ·ÖÇø±£´æÔÚ /cfg Ŀ¼¡£ Ëü°üº¬ÁËÓÃÓÚ /etc Ŀ¼µÄÎļþ£¬ ÔÚÆô¶¯Ö®ºóÔÝʱÒÔÖ»¶Á·½Ê½¹Ò½Ó¡£ Òò´Ë£¬ ÔÚÐèÒª´Ó /etc Ïò /cfg Ŀ¼¸´ÖÆËù½øÐеġ¢ Ï£ÍûÔÚÖØÆôʱ±£³Ö²»±äµÄÅäÖÃʱ£¬ ÐèÒª½øÐÐһЩ¶îÍâµÄ²Ù×÷¡£
Àý 1. ÔÚ /etc/resolv.conf ÖнøÐÐÐèÒª±£³ÖµÄÐÞ¸Ä
# vi /etc/resolv.conf [...] # mount /cfg # cp /etc/resolv.conf /cfg # umount /cfg
×¢Òâ: Ö»ÓÐÔÚϵͳÆô¶¯¹ý³ÌÖУ¬ ÒÔ¼°ÐèÒªÐÞ¸ÄÅäÖÃÎļþµÄ³¡ºÏ£¬ ²ÅÐèÒª¹Ò½Ó°üº¬ /cfg µÄÄǸö·ÖÇø¡£
ÔÚÈκÎʱºò¶¼±£³Ö¹Ò½Ó /cfg ²»ÊÇÒ»¸öºÃÖ÷Ò⣬ ÌØ±ðÊǵ±Äú°Ñ NanoBSD ·ÅÔÚ²»ÊʺϽøÐдóÁ¿Ð´²Ù×÷µÄ·ÖÇøÊ± (ÓÉÓÚÎļþϵͳµÄͬ²½½ø³Ì»á¶¨ÆÚÏòϵͳÅÌдһЩÊý¾Ý)¡£
¡¡¡¡NanoBSD Ó³ÏñÊÇͨ¹ýʹÓ÷dz£¼òµ¥µÄ nanobsd.sh shell ½Å±¾À´¹¹½¨µÄ£¬ Õâ¸ö½Å±¾¿ÉÒÔÔÚ /usr/src/tools/tools/nanobsd Ŀ¼ÖÐÕÒµ½¡£ Õâ¸ö½Å±¾½¨Á¢µÄÓ³ÏñÎļþ£¬ ¿ÉÒÔÓà dd(1) ¹¤¾ß¸´ÖƵ½´æ´¢½éÖÊÉÏ¡£
¡¡¡¡¹¹½¨ NanoBSD Ó³ÏñËùÐèµÄÃüÁîÊÇ£º
# cd /usr/src/tools/tools/nanobsd# sh nanobsd.sh
# cd /usr/obj/nanobsd.full
# dd if=_.disk.full of=/dev/da0 bs=64k
![]()
¡¡¡¡Õâ¿ÉÄÜÊÇ NanoBSD ×îÎªÖØÒª£¬ ͬʱҲÊÇÄú×î¸ÐÐËȤµÄ¹¦ÄÜ¡£ ͬʱ£¬ ÄúÔÚ¿ª·¢ NanoBSD Ó¦ÓÃʱ£¬ ÕâÒ²ÊÇÏ൱ºÄʱµÄ¹ý³Ì¡£
¡¡¡¡Ö´ÐÐÏÂÃæµÄÃüÁʹ nanobsd.sh ´Óµ±Ç°Ä¿Â¼ÖÐµÄ myconf.nano Îļþ¶ÁÈ¡ÅäÖãº
# sh nanobsd.sh -c myconf.nano
¡¡¡¡¶¨Öƹý³Ì°üº¬Á½²½£º
ÅäÖÃÑ¡Ïî
¶¨Öƺ¯Êý
¡¡¡¡Í¨¹ý¶ÔÅäÖýøÐÐÉèÖ㬠¿ÉÒÔÅäÖÃÓÃÒÔ´«µÝ¸ø NanoBSD ¹¹½¨¹ý³ÌÖÐ buildworld ºÍ installworld ½×¶ÎµÄÁª±àºÍ°²×°Ñ¡Ï ÒÔ¼° NanoBSD µÄÖ÷¹¹½¨¹ý³ÌÖеÄÑ¡Ïî¡£ ͨ¹ýʹÓÃÕâЩѡÏî¿ÉÒÔÏ÷¼õϵͳµÄ³ß´ç£¬ ʹ֮Äܹ»·ÅÈë 64MB µÄ´æ´¢¡£ Äú»¹¿ÉÒÔ½øÒ»²½Í¨¹ýÕâЩѡÏîÀ´Ï÷¼õ FreeBSD£¬ Ö±µ½ËüÖ»°üº¬ÄÚºËÒÔ¼°Á½Èý¸öÓû§»·¾³ÎļþΪֹ¡£
¡¡¡¡ÅäÖÃÎļþÖаüº¬ÓÃÒÔ´úÌæÄ¬ÈÏÖµµÄÅäÖÃÑ¡Ïî¡£ ×îÖØÒªµÄÓï¾ä°üÀ¨£º
NANO_NAME ©¤©¤ ±¾´Î¹¹½¨µÄÃû³Æ (ÓÃÓÚ´´½¨¹¤×÷Ŀ¼µÄÃû×Ö)¡£
NANO_SRC ©¤©¤ ÓÃÒÔÁª±àºÍ¹¹½¨Ó³ÏñµÄÔ´ÂëÊ÷µÄλÖá£
NANO_KERNEL ©¤©¤ ÓÃÒÔÁª±àÄں˵ÄÅäÖÃÎļþµÄÃû×Ö¡£
CONF_BUILD ©¤©¤ ÓÃÓÚ´«µÝ¸ø buildworld ¹¹½¨½×¶ÎµÄÑ¡Ïî¡£
CONF_INSTALL ©¤©¤ ÓÃÓÚ´«µÝ¸ø installworld ¹¹½¨½×¶ÎµÄÑ¡Ïî¡£
CONF_WORLD ©¤©¤ ÓÃÒÔ´«µÝ¸ø buildworld ºÍ installworld ÕâÁ½¸ö¹¹½¨½×¶ÎµÄÑ¡Ïî¡£
FlashDevice ©¤©¤ ¶¨ÒåËùÓõĽéÖÊÀàÐÍ¡£ ÒªÁË½â½øÒ»²½µÄϸ½Ú£¬ Çë²Î¿¼ FlashDevice.sub Îļþ¡£
¡¡¡¡Í¨¹ýÔÚÅäÖÃÎļþÖÐʹÓà shell º¯Êý¿ÉÒÔ½øÒ»²½Î¢µ÷ NanoBSD¡£ ÏÂÃæµÄÀý×ÓչʾÁ˶¨Öƺ¯ÊýµÄ»ù±¾Ä£Ê½£º
cust_foo () (
echo "bar=baz" > \
${NANO_WORLDDIR}/etc/foo
)
customize_cmd cust_foo
¡¡¡¡ÏÂÃæÊÇÒ»¸ö¸üÌù½üʵ¼ÊµÄÀý×Ó£¬ Ëü½«Ä¬È쵀 /etc Ŀ¼³ß´ç£¬ ´Ó 5MB µ÷ÕûΪ 30MB£º
cust_etc_size () (
cd ${NANO_WORLDDIR}/conf
echo 30000 > default/etc/md_size
)
customize_cmd cust_etc_size
¡¡¡¡³ý´ËÖ®Í⣬ »¹Óм¸¸öĬÈϵÄÔ¤¶¨Ò嶍֯º¯Êý£º
¡¡¡¡Í¨¹ýÔö¼Ó×Ô¶¨ÒåµÄº¯Êý£¬ ¿ÉÒÔÔÚ NanoBSD Ôö¼ÓÔ¤±àÒëµÄÈí¼þ°ü¡£ ÏÂÃæµÄº¯Êý»áÌí¼ÓλÓÚ /usr/src/tools/tools/nanobsd/packages µÄÈ«²¿Ô¤±àÒëÈí¼þ°ü£º
install_packages () (
mkdir -p ${NANO_WORLDDIR}/packages
cp /usr/src/tools/tools/nanobsd/packages/* ${NANO_WORLDDIR}/packages
chroot ${NANO_WORLDDIR} sh -c 'cd packages; pkg_add -v *;cd ..;'
rm -rf ${NANO_WORLDDIR}/packages
)
customize_cmd install_packages
¡¡¡¡ÏÂÃæÊÇÒ»¸öÓÃÓÚ¹¹½¨¶¨ÖÆµÄ NanoBSD Ó³ÏñµÄÍêÕûÀý×Ó£º
NANO_NAME=custom
NANO_SRC=/usr/src
NANO_KERNEL=MYKERNEL
NANO_IMAGES=2
CONF_BUILD='
NO_KLDLOAD=YES
NO_NETGRAPH=YES
NO_PAM=YES
'
CONF_INSTALL='
NO_ACPI=YES
NO_BLUETOOTH=YES
NO_CVS=YES
NO_FORTRAN=YES
NO_HTML=YES
NO_LPR=YES
NO_MAN=YES
NO_SENDMAIL=YES
NO_SHAREDOCS=YES
NO_EXAMPLES=YES
NO_INSTALLLIB=YES
NO_CALENDAR=YES
NO_MISC=YES
NO_SHARE=YES
'
CONF_WORLD='
NO_BIND=YES
NO_MODULES=YES
NO_KERBEROS=YES
NO_GAMES=YES
NO_RESCUE=YES
NO_LOCALES=YES
NO_SYSCONS=YES
NO_INFO=YES
'
FlashDevice SanDisk 1G
cust_nobeastie() (
touch ${NANO_WORLDDIR}/boot/loader.conf
echo "beastie_disable=\"YES\"" >> ${NANO_WORLDDIR}/boot/loader.conf
)
customize_cmd cust_comconsole
customize_cmd cust_install_files
customize_cmd cust_allow_ssh_root
customize_cmd cust_nobeastie
¡¡¡¡¸üРNanoBSD Ïà¶Ô¶øÑÔ½ÏΪ¼òµ¥£º
ºÍ֮ǰһÑù¹¹½¨Ð嵀 NanoBSD Ó³ÏñÎļþ¡£
½«ÐµÄÓ³Ïñ·ÅÈëÕýÔËÐÐµÄ NanoBSD É豸ÖеÄÒ»¸öδÓõķÖÇø¡£
Óë֮ǰ×î³õ°²×° NanoBSD µÄ²½ÖèÏà±È£¬ ÕâÒ»²½Öè×îÖØÒªµÄÇø±ðÔÚÓÚÕâ´Î²»Ó¦Ê¹Óà _.disk.full Îļþ (Ëü°üº¬Õû¸öÅ̵ÄÓ³Ïñ)£¬ ¶øÓ¦°²×° _.disk.image Ó³Ïñ (Õâ¸öÎļþÖУ¬ Ö»°üº¬Ò»¸öϵͳ·ÖÇø)¡£
ÖØÐÂÆô¶¯£¬ ²¢´Óа²×°µÄ·ÖÇøÖÐÆô¶¯ÏµÍ³¡£
Èç¹ûÒ»ÇÐ˳ÀûµÄ»°£¬ Éý¼¶¹¤×÷¾ÍÍê³ÉÁË¡£
Èç¹û·¢ÉúÁËÈκÎÎÊÌ⣬ Ôò¿ÉÒÔ´ÓÏÈǰµÄ·ÖÇøÆô¶¯ (ÆäÖаüº¬Á˾ɵġ¢ ¿ÉÓõÄÓ³Ïñ)£¬ À´¾¡¿ÉÄÜ¿ìµØ»Ö¸´ÏµÍ³¹¦ÄÜ¡£ ½ÓÏÂÀ´¿ÉÒÔÐÞÕýÐÂÁª±àµÄ°æ±¾ÖдæÔÚµÄÎÊÌ⣬ ²¢Öظ´Ç°Êö²½Öè¡£
¡¡¡¡ÒªÔÚÕýÔÚÔËÐÐµÄ NanoBSD ϵͳÖа²×°ÐµÄÓ³Ïñ£¬ ¿ÉÒÔʹÓÃλÓÚ /root Ŀ¼µÄ updatep1 »ò updatep2 ½Å±¾£¬ ¾ßÌåʹÓÃÄÄÒ»¸ö½Å±¾£¬ È¡¾öÓÚÕýÔÚÔËÐеÄϵͳλÓÚÄǸö·ÖÇø¡£
¡¡¡¡ËæÊ±ÌṩРNanoBSD Ó³ÏñËùÌṩµÄ·þÎñ£¬ ÒÔ¼°²ÉÓõĴ«Êä·½·¨µÄ²»Í¬£¬ Äú¿ÉÒԲο¼²¢Ê¹ÓÃÏÂÁÐÈýÖÖ·½Ê½Ö®Ò»£º
¡¡¡¡Èç¹û´«ÊäËÙ¶ÈÊǵÚÒ»ÒªÎñ£¬ ²ÉÓÃÏÂÃæµÄÀý×Ó£º
# ftp myhost get _.disk.image "| sh updatep1"
¡¡¡¡Èç¹û¸üÇãÏòÓÚ°²È«´«Ê䣬 Ó¦²Î¿¼ÏÂÃæµÄÀý×Ó£º
# ssh myhost cat _.disk.image.gz | zcat | sh updatep1
¡¡¡¡Èç¹ûÔ¶³ÌÖ÷»ú¼È²»Ìṩ ftp(1) ·þÎñ£¬ Ò²²»Ìṩ sshd(8) ·þÎñ£º
¿ªÊ¼Ê±£¬ ÔÚÌṩӳÏñµÄÖ÷»úÉÏ¿ªÆô TCP ¼àÌý£¬ ²¢ÁîÆä½«Ó³ÏñÎļþ·¢¸ø¿Í»§»ú£º
myhost# nc -l 2222 < _.disk.image
×¢Òâ: ÇëÈ·ÈÏÄúËùʹÓõĶ˿ÚûÓÐͨ¹ý·À»ðǽ×èÖ¹À´×Ô NanoBSD ¿Í»§»úµÄÁª½ÓÇëÇó¡£
Á¬½Óµ½ÌṩÐÂÓ³Ïñ·þÎñµÄÖ÷»ú£¬ ²¢Ö´ÐÐ updatep1 ½Å±¾£º
# nc myhost 2222 | sh updatep1
±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.