|
玩 dd 不是很长时间,不过这些日子玩下来,确实觉得乐趣不少,看了坛子里不少文章,也看了官网不少文章,自己捉摸了不少东东,总结了一点小小的经验想与大家一起讨论一下.
讲DD的扩展应用首先逃不掉的当然是挂U盘了.
我试过二种方法,一种是官网上的直接IPKG安装的方法,另一种是坛里子提到的装法,根据试验,发现还是坛里里提供的现成驱动包比较合理,因为JFFS初始容量寸土寸金啊.用官网的方法,会首先产生一堆日后完全不必放在JFFS原始空间的列表文件.
U盘的另一个看法主要来源于以前自己在Linux下的一点常规做法.那就是U盘怎么用.
我是挂了一个60G的移动硬盘,基本上是这样分的
第一分区: 128M [ext2] 用于存放SWAP文件(当然,SWAP是用不了这么多的,只是多分点,以便于做其它的小测)
第二分区: 2G [ext3] 用于DD安装OPTWARE及其大量的扩展应用,说白了,就是外挂系统区.
第三分区: 57G [ext3] 不用说了,用户存东西的地方
然后我挂盘是这样挂的.
- umount /jffs # 先把原始的JFFS下喽
- umount /mnt #把原来可能挂在MNT中的东东下喽
- mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt # 把第一分区(就是交换分区挂到MNT上来,这样有一点好处,那就是MNT可写了)
- mount /dev/scsi/host0/bus0/target0/lun0/part5 /jffs #把第二分区挂到 jffs 上去,这样JFFS就有2G可用空间了.
- mkdir /mnt/hda6 #建立一个用户分区挂载点
- mount /dev/scsi/host0/bus0/target0/lun0/part6 /mnt/hda6 #把第三分区挂到mnt中去.
- mount /dev/mtdblock/4 /jffs/the_old_jffs_system #把原来的JFFS分区挂到jffs下的子目录中去,因为日后常常会用到它(改启动代码嘛)
- mount -o bind /jffs/opt /opt #再把系统区给挂到OPT中去
复制代码
呵呵,是不是有点复杂了,没办法,因为玩LINUX养成的习惯是找盘都到/mnt中去找,呵呵,所以想了这么一个招.
不过这样做的好处是,日后要备份了,只要用下面这条命令,就可以把整个系统都给备喽.
- tar czf /mnt/sda6/WritableShare/jffs_backup.tar.gz /jffs
复制代码
好处是啥?! 呵呵,还用问吗?! 万一哪天刷翻向了,哪怕是复位了,重刷了,只要把U盘驱动拷回JFFS去,然后重启路由器,就一切都复原了.(当然,前提条件还有一条,写在下面)
复原的命令:
- cd /
- tar zxvf /mnt/sda6/WritableShare/jffs_backup.tar.gz
复制代码
是不是有点一键还原的味道?!
上面说到还有一个条件,呵呵,是还有一个重要条件,那就是你的启动命令放在哪儿.我估计可能很多朋友是进路由器WEB界面,放到那个管理,诊断里的吧,如果是这样,你就不能用上面的一键还原命令了,你需要象下面这样做.
把你的启动命令都复制喽.用SSH进路由器,到 /jffs/etc 目录里(如果你是象我那样挂了盘的话,那就是到 /jffs/the_old_jffs_system/etc里去),执行下面几条命令:
- mkdir config
- cd config
- vi usb.startup
复制代码
然后把你所有的启动命令写到里面去,(vi 基本用法 按 insert 键可以开始写东西,写完全部东东后,按一下ESC,按 : 写 wq 就完成了)
写完后,执行下面的命令:
chmod 700 usb.startup
好了,清空你路由器WEB界面里所有的启动命令,然后reboot路由器
一切都成功了吧,呵呵,然后,你需要同样备份这个文件,一个好的选择是,把整个etc和lib目录都拷贝一份下来,下次重做时,只要把这两个目录拖到JFFS里去,就一切都复原了.
要是问我为什么这样做?! 因为我懒,我懒得一次一次写启动命令,多做多错,少做少错,不做没错嘛.这样,路由器的启动命令是存盘的,你只要用那个命令备份了.
我的启动命令写了两份,
一份是 /jffs/the_old_jffs_system/etc/config/usb.startup
另一份 /jffs/etc/config/services.wanup
说明一下.wanup 文件根据官网说明是指只有在wan口ready后才会去执行的启动命令. 因为我架的FTP主要是对外,所以,在wan没有up时,我不希望它start,因为没用
也差不多了,手都打酸了,共享一下我两份文件的内容吧:
- #---------------------------------------usb.startup---------------------------------
- insmod /jffs/lib/modules/2.4.30/usbcore.o
- insmod /jffs/lib/modules/2.4.30/usb-ohci.o
- insmod /jffs/lib/modules/2.4.30/scsi_mod.o
- insmod /jffs/lib/modules/2.4.30/usb-storage.o
- insmod /jffs/lib/modules/2.4.30/sd_mod.o
- insmod /jffs/lib/modules/2.4.30/ext2.o
- insmod /jffs/lib/modules/2.4.30/jbd.o
- insmod /jffs/lib/modules/2.4.30/ext3.o
- insmod /jffs/lib/modules/2.4.30/fat.o
- insmod /jffs/lib/modules/2.4.30/vfat.o
- insmod /jffs/lib/modules/2.4.30/printer.o
- sleep 5
- umount /jffs
- umount /mnt
- mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
- mount /dev/scsi/host0/bus0/target0/lun0/part5 /jffs
- mkdir /mnt/hda6
- mount /dev/scsi/host0/bus0/target0/lun0/part6 /mnt/hda6
- mount /dev/mtdblock/4 /jffs/the_old_jffs_system
- mount -o bind /jffs/opt /opt
- /jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
- unset LD_LIBRARY_PATH
- unset LD_PRELOAD
- echo "export PATH=$PATH:/opt/bin:/opt/sbin" > /tmp/root/.profile
- [ -e /opt/etc/profile ]
- /opt/bin/busybox swapon /mnt/swap/linux_64M.swp
- /opt/etc/init.d/S80samba
- #-----------------------------------------------------------------------------------------
复制代码
- #---------------------------services.wanup-----------------------------------------
- /usr/sbin/iptables -I INPUT 1 -p tcp --dport 21 -j logaccept
- /opt/etc/init.d/S58proftpd
- #/opt/sbin/privoxy /opt/etc/privoxy/config
- #/opt/bin/tor
- #/opt/etc/init.d/proxy
- #-----------------------------------------------------------------------------------------
复制代码
抛砖引玉,还望高手们出来多多指点..........
[ 本帖最后由 AppleWolf 于 2008-3-7 19:15 编辑 ] |
|