[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-- 1 root root 8, 0 Jan 1 1970 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 1 #是否需要啟動 option enabled_fsck 0 #是否需要啟動檢查
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/ 謝謝!
