[Openwrt 项目开发笔记]:USB挂载& U盘启动(三)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html
正文:
在上一篇中,我结合Netgear Wndr3700讲解了如何对Openwrt进行必要的配置。接下来,我们就想要在Openwrt上安装必要的软件了。可是这时候新的问题又来了:当安装一些软件之后,存储空间不足了。这时候该怎么办呢?以4M的Flash为例,当大家讲Openwrt固件刷到自己的路由器后,大家会发现剩余的空间往往只剩下不到2M。当我们需要安装许多Openwrt本身不带的软件时,就会发现如此小的空间实在是太寒酸了。那么,该如何解决这样的问题呢?
一、 添加USB扩展(注:本文默认大家的路由器是自带USB接口的,如果主板上本身不带USB接口的,可以考虑对硬件进行改动。由于我对于硬件不太懂,此处就不扩展讲解了,大家可以在网上寻求方法)
1. 更新路由器软件源(注:路由器需要联网)
opkg update
2. 添加USB支持
opkg install kmod-usb-core #可选
opkg install kmod-usb-uhci
opkg install kmod-usb-storage
opkg install kmod-usb2
opkg install kmod-usb-ohci
3. 添加usb挂载,热插拔,以及boot支持
opkg install block-mount #挂载
opkg install block-hotplug #热插拔
opkg install block-extroot #boot支持
此时,可以插上U盘测试一下。
ls -l /dev |grep sda
显示结果
root@Openwrt:/#ls -l /dev |grep sda
brw-r--r-- root root , Jan sda
观察里面是否出现sda sda1 sda2 sda3等字样,sda说明是名为sda的设备,而sda1是它的第一个分区,后面依次类推。
二、U盘分区
为何要对U盘进行分区呢?
第一,方便管理文件。我们希望从U盘启动openwrt,因此将系统镜像运行在U盘上,从而获得更多的空间用于存放各种文件。为了加强管理,必要的分区是有用的。
第二,创建Swap交换分区。我们需要在U盘上开辟部分空间用于Swap交换。通过Swap提升RAM的吞吐率,从而防止,部分软件需要大量调用RAM时,系统挂掉(例如,Transmission脱机下载服务)。
那么,如何进行U盘分区呢?我们需要进行如下操作:
1. 准备工作,添加必要软件
opkg install kmod-fs-ext3 #添加ext3文件系统支持
opkg install fdisk #添加分区工具
opkg install e2fsprogs #添加格式化和检测工具
2. 对U盘进行分区
(1)使用下面操作,查看U盘情况。
fdisk -l #以列表的形式,列出当前挂载盘的情况
显示结果

说明:由于我的U盘已经进行了分区,所以有上面的结果。(注:其中sda1为系统盘,相当于Windows系统的C盘;sda2为交换分区,用于内存交换;sda3为存储区,主要放置较大文件,FTP,Transmission服务器,以及物联网web服务器Log文件均存放在改分区下)
(2)分区操作
fdisk /dev/sda

此处选择“n”,然后依次添加各个分区,分完区之后记得选择“w”,进行保存退出。创建分区之后,是没有格式化的,因此接下来需要进行格式化操作。
(3) 格式化各分区
mkfs.ext3 /dev/sda1 #将第一个分区格式化为ext3格式
mkswap /dev/sda2 #将第二个分区格式化为swap交换分区
mkfs.ext3 /dev/sda3 #将第三个分区格式化为ext3格式
(4)显示分区后的结果

三、添加U盘启动
1. 将系统镜像移动到U盘第一个分区下:
mkdir /tmp/root #在/tmp目录下创建一个临时目录,用于放置系统镜像
mount /dev/sda1 /mnt #将/dev/sda1 挂载到/mnt目录下
mount -o bind / /tmp/root #将根目录"/"制作镜像,并将其挂载到“/tmp/root”下
cp /tmp/root/* /mnt -a #将/tmp/root/ 目录下的所有内容复制到/mnt下,相当于将/mnt/root下的所有内容复制到/dev/sda1下
umount /tmp/root #解除挂载 /tmp/root
2. 修改分区表
进入/etc/config/目录下,修改fstab文件
config global automount
option from_fstab 1
option anon_mount 1 config global autoswap
option from_fstab 1
option anon_swap 0 config mount #把sda1分区挂载为系统
# option target /mnt #选择将sda1分区挂载到当前系统的哪一个文件目录下,此处可以选择默认
option device /dev/sda1 #需要挂载的设备,/dev/sda1
option fstype ext3 #文件系统格式ext3
option options rw,sync #读写,以及同步权限
option enabled #是否需要启动
option enabled_fsck #是否需要启动检查
option is_rootfs 1 #是否作为根文件系统 config swap #把sda2分区挂载为交换分区
option device /dev/sda2
option enabled 1 config mount
option target /mnt #把sda3分区挂载在mnt文件夹上,作为存储网站和文件的地方
option device /dev/sda3 #需要挂载的设备,/dev/sda3
option fstype ext3 #文件系统格式ext3
option options rw,sync #读写、同步权限
option enabled 1 #启动该设备
保存上述修改,执行如下命令使其生效
/etc/init.d/fstab enable
/etc/init.d/fstab restart
重启设备,等待设备重启之后,进入shell,查看是否分区成功
df -h #查看系统挂载情况,检查文件系统的磁盘空间占用情况。
free #查看内存使用情况,可以用于查看swap是否正常启动
正常分区,并以U盘启动的情况

ok,到此为止,我们成功解决了存储的问题。那么,下面我们再安装其他软件的时候,对于存储条件,可以不用像之前苛求到kb了。
---------------------------------------------------------------------------------------------------------
预告,下一篇文章,我将介绍如何安装vsFTP以及Samba局域网文件共享。
转载请注明出处: http://www.cnblogs.com/ 谢谢!

[Openwrt 项目开发笔记]:USB挂载& U盘启动(三)的更多相关文章
- [openwrt 项目开发笔记]: 传送门
“Openwrt 项目开发笔记”系列传送门: [Openwrt 项目开发笔记]:Openwrt平台搭建(一) (2014-07-11 00:11) [Openwrt 项目开发笔记]:Openwrt平台 ...
- [Openwrt 项目开发笔记]:Samba服务&vsFTP服务(四)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们讲述了如何在路由器上挂载U盘,以 ...
- [Openwrt 项目开发笔记]:Openwrt必要设置(二)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 前面的两篇blog中,我将如何搭建Openwrt ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- [Openwrt 项目开发笔记]:MySQL配置(六)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在本人的项目中,运行在路由器上的服务器采用Ngi ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 昨晚上熬夜写了[Openwrt项目开发笔记]:O ...
- [Openwrt 项目开发笔记]:PHP+Nginx安装(七)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我们已经搭建了MySQL数据库了,因 ...
- [Openwrt 项目开发笔记]:DDNS设置(五)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一节中,我主要讲述了如何在Openwrt上安 ...
- [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享
最近偷懒,没学习,反想起自己的路由刷了Openwrt,正好闲置了一个硬盘想拿来做个网络硬盘,于是开始了折腾....这里将不谈论如何刷Openwrt,如何ssh,如何添加PPOE,如何添加相对应服务的包 ...
随机推荐
- 关于easyui-datagrid数据表格, 分页取出数据
在制作数据表格的时候有一个这样的属性, pagination是否显示分页列表, 分页显示的时候需要分别从数据库中取数据, 每页显示几行, 即只从数据库取出几行数据来显示, 具体代码如下 1, 显示页面 ...
- Python3 input() 函数
Python3 input() 函数 Python3 内置函数 Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型. 注意:在 Python3.x 中 ra ...
- The Last Stand
The Last Stand https://ac.nowcoder.com/acm/contest/303/L 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...
- PAT 1035 插入与归并(25)(代码+思路+测试点分析)
1035 插入与归并(25 分) 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到 ...
- 参看dll参数类型
http://blog.csdn.net/chinabinlang/article/details/7698459 验证
- 如何在win 2008 server和win 7上add web site
在 windows 2008 server 英文版的操作系统上,通过桌面上的 Computer 右键选择 Manage ,打开 Server Manager,选中左侧资源树中的Roles 在上图右侧 ...
- 5条面经,助你成功拿到UX设计师Offer
为什么成为 UX设计师? 如果你经常逛推酷, 知乎, 设计达人或者一些专业的设计师论坛,博客,你会发现,第一批成为UX设计师的人,其实是误打误撞地落入这个行业的.那时候人们并不清楚UX设计师是什么 ...
- hdu-1055(贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1055 题意:给一棵树涂色,这棵树的每个节点都有自己的价值Ci,涂色的原则是只由这个节点的父节点涂色之后 ...
- 类内初始值(c++11)
1.概念 1)可以为数据成员提供一个类内初始值,创建对象时,类内初始值用于初始化数据成员,没有初始值的成员将被默认初始化 2)类内初始值和赋值类似,或者放在花括号里(如数组),或者放在等号右边,不能使 ...
- Django 必会面试题总结
1 列举Http请求中常见的请求方式 HTTP请求的方法: HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式 注意: 1)方法名称是 ...