¡¡¡¡USB ÉÁ´æ´æ´¢×°ÖÃ(ÓÅÅÌ)Ò»°ãÖ»ÓÐÔ¿³×¿Û´óС£¬´æ´¢ÈÝÁ¿¶àΪ32MBºÍ64MB¡£ÓÉÓÚ¾ßÓÐÇáÇɾ«Ö¡¢Ê¹Ó÷½±ã¡¢±ãÓÚЯ´øµÈÓÅµã£¬ÌØ±ðÊǶԱÈÈíÅ̾ßÓÐÈÝÁ¿½Ï´ó¡¢°²È«¿É¿¿¡¢¶ÁÈ¡ËٶȽϿìµÈÌØÐÔ£¬Ô½À´Ô½¶àÈËʹÓÃÕâÖÖ×°ÖÃÈ¡´úÁËÈíÇýÓëÈíÅÌ£¬ÔÚPCÖ®¼ä½»»»Îļþ¡£Ä¿Ç°Ð³öµÄÖ÷°åBIOS¶¼Ö§³ÖUSBÈíÅ̺ÍÓ²ÅÌµÄÆô¶¯·½Ê½£¬ÕâÑù¶ÔÓÚWindows 98µÄϵͳά»¤Óë°²×°¹¤×÷Ô½À´Ô½·½±ã¡£µ«ÊÇ£¬³§¼Ò½öÌá¹©ÖÆ×÷Windows 98Æô¶¯Å̵ÄÖÆ×÷¹¤¾ß£¬²¢²»ÌṩlinuxÆô¶¯Å̵ÄÖÆ×÷¹¤¾ß¡£ÔÚÓÅÅÌÉϽ¨Á¢LinuxÆô¶¯ÅÌ£¬¶ÔÓÚϵͳά»¤ÈËÔ±¾ßÓиü¼ÓʵÓõÄÒâÒ壬Äã¿ÉÒÔʹÓÃLinux ½¨Á¢Ð¡ÇɵÄÄںˣ¬½¨Á¢ÍøÂç»·¾³£¬¿ìËÙµØÅжϺÍÅųýÍøÂç¹ÊÕÏÓë´«ËÍÎļþ¡£±¾ÎÄÒÔRed Hat 8.0ΪÀý£¬Ê¹ÓÃÀʿƵÄË«Æô¶¯ÐÍÓÅÅ̽¨Á¢ÓÅÅ̵ÄLinuxÆô¶¯ÅÌ¡£
¡¡¡¡ÏÂÔØÏà¹ØÈí¼þ£ºe3£¬bvi£¬LiuuxÄںˡ£
¡¡¡¡±àÒëÄÚºË
¡¡¡¡Ê×ÏȼÆËã»úµÄÖ÷°å±ØÐëÒªÖ§³ÖUSBÓ²ÅÌµÄÆô¶¯·½Ê½£¬²¢ÇÒËùʹÓõÄÓÅÅÌÊÇÆô¶¯ÐÍÓÅÅÌ¡£
¡¡¡¡ÎÒÒÔLinux-2.4.20ΪÀý˵Ã÷¡£±àÒëʱһ¶¨Òª×¢Òâ²»Òª±àÒë²»±ØÒªµÄÄ£¿é£¬ÈçÉù¿¨Çý¶¯µÈÇý¶¯Ä£¿é£¬Ê¹±àÒëµÄÄں˾¡¿ÉÄÜСһЩ¡£ÓÉÓÚÒªÖ§³ÖÓÅÅÌÆô¶¯£¬±ØÐ뽫SCSIÉ豸¡¢usbcore¡¢usb-storage¡¢Loopback device support¡¢RAM disk supportºÍinitrdµÈ±àÒëµ½ÄÚºËÖС£
¡¡¡¡Ðí¶àÈË»áÎÊ£¬usb-storageÄ£¿éÒѾ°üÀ¨ÔÚÄÚºËÁËΪʲô»¹Òª½¨Á¢ initrd.imgÎļþ£¿ÕâÊÇÓÉÓÚÓÅÅ̵ijõʼ»¯¹ý³Ì±ÈÖ´ÐÐ/sbin/initÂý,µ¼ÖÂÄÚºËÒѾÆô¶¯Íê³ÉÁË£¬ÓÅÅÌ»¹Ã»ÓÐÍê³É³õʼ»¯¹¤×÷£¬Òò´Ë¸ùÎļþϵͳûÓмÓÔØ£¬ÕâʱִÐÐ/sbin/initÃüÁî¿Ï¶¨²»³É¹¦¡£Í¨¹ý½¨Á¢initrd.imgÎļþ£¬ÔÚÆô¶¯ÄÚºËʱ¼ÓÔØinitrd.imgÎļþµ½ÄÚ´æÖУ¬µÈ´ý3 ÃëʹÓÅÅÌÍê³É³õʼ»¯¹¤×÷£¬ÔÙÖ´ÐÐ/sbin/initÖ¸Áî¡£¾ßÌå²Ù×÷²½ÖèÈçÏ¡£
¡¡¡¡1.½¨Á¢initrd.imgÎļþ
[code]¡¡¡¡# mkdir -p /mnt/initrd
¡¡¡¡# cd /tmp
¡¡¡¡# mkinitrd /tmp/initrd.gz 2.4.20-usb[/code]
¡¡¡¡2.½âѹinitrd.imgÎļþ£¬ÐÞ¸ÄÆô¶¯½Å±¾linuxrc
[code]¡¡¡¡# gunzip initrd.gz
¡¡¡¡# mount -o loop /tmp/initrd /mnt/initrd
¡¡¡¡# cp /sbin/busybox /mnt/initrd/bin
¡¡¡¡# cd /mnt/initrd/bin
¡¡¡¡# ln -s busybox sleep
¡¡¡¡# vi /mnt/initrd/linuxrc[/code]
¡¡¡¡¼ÓÈëÈçÏÂÄÚÈÝ£º
[code]¡¡¡¡echo 'wait 3 seconds.....'
¡¡¡¡/bin/sleep 3[/code]
¡¡¡¡3.ÖØÐÂÉú³Éinitrd.imgÎļþ
¡¡¡¡ÓÉÓÚȱʡ½¨Á¢µÄinitrdÎļþ±È½Ï´ó(Ϊ4MB)£¬ÎªÁ˼ӿìÓÅÅÌµÄÆô¶¯£¬±ØÐë¼õСËü¡£¾ßÌå²Ù×÷ÈçÏ£º
[code]¡¡¡¡# mkdir -p /mnt/initrdusb
¡¡¡¡# cd /tmp
¡¡¡¡# dd if =/dev/zero of= /tmp/initrdusb bs=1M count=1
¡¡¡¡# mke2fs -m 0 initrdusb
¡¡¡¡# mount -o loop /tmp/initrdusb /mnt/initrdusb
¡¡¡¡# cp -a /mnt/initrd/* /mnt/initrdusb
¡¡¡¡# umount /mnt/initrd
¡¡¡¡# umount /mnt/initrdusb
¡¡¡¡# cd /tmp
¡¡¡¡# gzip -9 initrdusb
¡¡¡¡# cp initrdusb.gz /boot/initrd-2.4.20-usb.img[/code]
¡¡¡¡4.²âÊÔ±àÒëµÄÄÚºËÊÇ·ñÕý³£Æô¶¯
¡¡¡¡²âÊÔ±àÒëµÄÄÚºËÊÇ·ñÕý³£Æô¶¯£¬ÒÔ¼°ÔÚÆô¶¯¹ý³ÌÖÐÊÇ·ñ¿É¿´¼ûÓÅÅ̵ÄÏà¹ØÐÅÏ¢¡£
¡¡¡¡½¨Á¢ÓÅÅÌÆô¶¯ÅÌ
¡¡¡¡1.½«ÓÅÅÌ·Ö³ÉÁ½¸ö·ÖÇø
¡¡¡¡Áô¸øLinux·ÖÇøÈÝÁ¿´óСÍêȫȡ¾öÓÚ°²×°ÄÄЩϵͳά»¤¹¤¾ß£¬½á¹ûÈçÏ£º
[code]¡¡¡¡# modprobe usb-storage
¡¡¡¡# fdisk -l /dev/sda
¡¡¡¡Disk /dev/sda: 16 heads, 63 sectors, 126 cylinders
¡¡¡¡Units = cylinders of 1008 * 512 bytes
¡¡¡¡Device Boot Start End Blocks Id System
¡¡¡¡/dev/sda1 1 102 51376+ 6 FAT16
¡¡¡¡/dev/sda2 103 126 12096 83 Linux[/code]
¡¡¡¡×¢Ò⣺Èç¹ûÐèҪʹÓÃÓÅÅÌÒýµ¼Windows 98£¬ÉÈÇø´óС±ØÐëÉèÖÃΪ63¸öÉÈÇø£¬¿ÉÒÔͨ¹ýfdiskµÄxÃüÁîÀ©Õ¹ÐÞ¸Äheads¡¢sectorsºÍcylinders²ÎÊý¡£
¡¡¡¡2.½¨Á¢ÓëÉú³Éext2·ÖÇø
[code]¡¡¡¡# mke2fs -m 0 /dev/sda2
¡¡¡¡# mkdir -p /mnt/sda2
¡¡¡¡# mount /dev/sda2 /mnt/sda2
¡¡¡¡# cd /mnt/sda2[/code]
¡¡¡¡3.½¨Á¢bootĿ¼
¡¡¡¡½«±àÒëºÃµÄÄÚºËÓëinitrd-2.4.20-usb.imgÎļþ¿½±´µ½bootĿ¼¡¢±àÒëºÃµÄÄ£¿é¿½±´µ½lib/modulesĿ¼,ÒÔ¼°½«/boot/grubµÄÎļþ¿½±´µ½bootĿ¼,±à¼boot/grub/menu.lstÎļþ,ÄÚÈÝÈçÏÂ:
[code]¡¡¡¡timeout 10
¡¡¡¡color 0x17 0x70
¡¡¡¡default 0
¡¡¡¡title Windows 98
¡¡¡¡rootnoverify (hd0,0)
¡¡¡¡makeactive
¡¡¡¡chainloader +1
¡¡¡¡title GNU/Linux Redhat 8.0 (2.4.20-usb)
root (hd0,1)
¡¡¡¡kernel /boot/vmlinuz-2.4.20-usb ro root=/dev/sda2
¡¡¡¡initrd /boot/initrd-2.4.20-usb.img[/code]
¡¡¡¡°²×°grub,¾ßÌå²Ù×÷ÈçÏ£º
[code]¡¡¡¡grub> root (hd1,1)
¡¡¡¡grub> setup (hd1)[/code]
¡¡¡¡4.½¨Á¢binĿ¼
¡¡¡¡¸ù¾Ý×Ô¹¤×÷µÄÐèÒª¿½±´ÏµÍ³Î¬»¤¹¤¾ß£¬Èçinsmod¡¢fsckºÍmkdosfsµÈʵÓóÌÐò¡£Ò»¶¨Òª×¢ÒâʹÓÃlddÃüÁî¼ì²éÄÇЩ¹²Ïí¿âÎļþ,ÕâЩÎļþÐèÒª°´ÕÕÔÀ´µÄ·¾¶¿½±´µ½libĿ¼¡£ ÓÉÓÚÊܵ½´ÅÅ̿ռäµÄÏÞÖÆ,ʹÓÃbusyboxÃüÁî´úÌæÒ»Ð©³£¼ûµÄLinuxÃüÁÖ÷ÒªÔÒò¾ÍÊÇbusybox Îļþ·Ç³£Ð¡£¬²¢ÇÒÊǾ²Ì¬Á´½ÓµÄ£¬°üÀ¨Ðí¶à³£¼ûµÄLinuxÃüÁÈçcat¡¢init¡¢ifconig¡¢route£©ÓÃln -s busybox½¨Á¢ÕâЩÎļþµÄ·ûºÅÁª½Ó¡£¿ÉÒÔ¸ù¾Ý¸öÈËÐèÒªÖØÐ±àÒëbusybox£¬°üÀ¨viµÈÃüÁҲ¿ÉÒÔʹÓÃСÇɵÄe3´úÌævi¡£
¡¡¡¡ÁíÍ⣬Èç¹ûʹÓÃbash£¬»¹±ØÐë±à¼Óë²Ã¼õ/etc/termcap¼°ÈçÏÂÎļþ£º
[code]¡¡¡¡/bin/bash
¡¡¡¡/etc/termcap
¡¡¡¡/usr/share/terminfo/l/linux
¡¡¡¡/usr/share/terminfo/k/klone+acs
¡¡¡¡/usr/share/terminfo/k/klone+color
¡¡¡¡/usr/share/terminfo/k/klone+sgr[/code]
¡¡¡¡5.½¨Á¢devĿ¼
¡¡¡¡Ê¹ÓÃcp -aÃüÁ±´³£ÓõÄÉ豸Îļþ,°üÀ¨console¡¢tty1¡¢tty2¡¢tty3sda¡¢sda1¡¢sda2¡¢hda¡¢hdbºÍhda1µÈÉ豸Îļþ¡£
¡¡¡¡6.±à¼etc/init.d/rcS
¡¡¡¡ÄÚÈÝÈçÏ£º
[code]¡¡¡¡#!/bin/sh
¡¡¡¡PATH=/sbin:/bin
¡¡¡¡export PATH
¡¡¡¡mount -n -t proc none /proc
¡¡¡¡umount /initrd
¡¡¡¡mount -n -o remount,rw /
¡¡¡¡mount -n -o remount,rw -t proc none /proc
¡¡¡¡ifconfig lo 127.0.0.1[/code]
¡¡¡¡7.±à¼etc/fstabÎļþ
¡¡¡¡ÄÚÈÝÈçÏ£º
[code]¡¡¡¡/dev/sda2 / ext2 defaults 1 1
¡¡¡¡none /proc proc defaults 0 0[/code]
¡¡¡¡Ó¦ÓþÙÀý
¡¡¡¡¾ÙÒ»¸ö´«ËÍÎļþµÄÀý×Ó¡£ÔÚһ̨Õý³£¹¤×÷µÄLinux»úÆ÷A(IP=192.168.100.5)ÉÏÖ´ÐУº
[code]¡¡¡¡$ tar cf - win98 | nc -l -p 5555[/code]
¡¡¡¡×¢Ò⣺¿ÉÒÔÔÚ»úÆ÷BÉÏʹÓÃÓÅÅÌÆô¶¯»úÆ÷£¬telnetµÇ½µ½»úÆ÷AÉÏÖ´ÐÐÒÔÉÏÃüÁî¡£
¡¡¡¡ÔÚ»úÆ÷BÉÏʹÓÃÓÅÅÌÆô¶¯Ö´ÐУº
[code]¡¡¡¡# mount -t vfat -o codepage=938,iocharset=cp936 /dev/hda5 /mnt/2dos
¡¡¡¡# cd /mnt/2dos
¡¡¡¡# modprobe eepro00
¡¡¡¡# ifconfig eth0 192.168.1.10
¡¡¡¡# route add default gw 192.168.1.1
¡¡¡¡# ping 192.168.10.5
¡¡¡¡# nc 192.168.10.5 5555 | tar xf -[/code]
¡¡¡¡Èç¹ûÕâʱʹÓÃformat /sÃüÁîÎÞ·¨½¨Á¢ÓÅÅÌWindows 98Æô¶¯ÅÌ£¬¿ÉÒÔ²ÉÓñäͨµÄ·½Ê½£¬¾ßÌå²Ù×÷ÈçÏ£º
[code]¡¡¡¡# mkdosfs -F 16 /dev/sda1
¡¡¡¡# xxd -c 16 /dev/sda1 | less[/code]
¡¡¡¡Õâʱ¼Ç¼ÏÂBoot RecordµÄ32¡«35×Ö½ÚÄÚÈÝ£¨±¾ÀýΪ60 91 01 00£¬Õâ4¸ö×ֽڼǼÁËFAT·ÖÇø×ܵÄÉÈÇøÊýÁ¿£©£¬ÔÙʹÓÃÀÊ¿ÆËæÅÌÌṩµÄÖÆ×÷Òýµ¼Å̵Ť¾ßÖÆ×÷Windows 98Æô¶¯ÅÌ£¬È»ºóʹÓÃLinuxÏÂbvi»òÕßÄܹ»±à¼¶þ½øÖÆÎļþµÄ¹¤¾ßÐÞ¸ÄBoot RecordµÄ32¡«35×Ö½ÚΪÔÀ´µÄÄÚÈÝ¡£ÕâÑù£¬¾ÍÄܹ»ÊµÏÖÃû¸±ÆäʵµÄÈýÆô¶¯·½Ê½£¨WindowsË«Æô¶¯£«LinuxÆô¶¯£©¡£


Redassociation ÓÚ 2006-10-10 01:19:49·¢±í:
±¾ÎĽö×ö²Î¿¼Ñ§Ï°