[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--    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/ 謝謝!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM