由於路由的ROM不大,裝完OPENWRT之後基本上就所剩無幾了。為了更方便的折騰,就需要使用U盤擴大系統的容量。下面就分享一下我的擴容過程。
事先說明,由於我是按著703n的OpenWrt配置二:U盤擴容的教程來的,所以基本上程式碼會和上頭的差不多。這裡要感謝作者寫出這麼好的教程出來。
putty連線路由之後安裝一些比較的軟體
opkg update
opkg install block-mount kmod-fs-ext4 kmod-usb-ohci kmod-usb-storage
如果你需要在OPENWRT上對U盤進行格式化的話則需要安裝(建議放在本機上對U盤進行格式化,e2fsprogs這個軟體好像不小,幾百K就沒了):
opkg install e2fsprogs
下面需要對U盤進行分割槽,我的U盤是SanDisk的16GU盤,直接按照教程給的配置分的區。其中ext4分割槽512M,linux-swap分割槽128M,其餘的則為NTFS分割槽。分割槽的話推薦在Linux中用Gparted軟體,操作基本上和Windows下的各種分割槽軟體類似。
格式化好後插上U盤。
Device Boot Start End Blocks Id System
/dev/sda1 2048 1050623 524288 83 Linux
/dev/sda2 1050624 1312767 131072 82 Linux swap / Solaris
/dev/sda3 1312768 31266815 14977024 7 HPFS/NTFS/exFAT
以上是插上後U盤的資訊,一般來說/dev/sdax
就是你的U盤了。繼續執行如下命令:
mount /dev/sda1 /mnt
mkdir /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt -xvf -
sync
umount /tmp/cproot
同時設定好交換空間
mkswap /dev/sda2
swapon /dev/sda2
原教程下一步使用了block
命令,我發現在我的系統中無法使用,所以我就直接複製了原教程中的程式碼。
首先使用blkid
命令查到自己U盤的UUID:
root@CodeMonkey:/www# blkid
/dev/mtdblock2: TYPE="squashfs"
/dev/sda1: UUID="69628ab4-0778-49f4-88b2-c198d5ee3473" TYPE="ext4"
/dev/sda2: UUID="2f346aea-3255-4425-a08a-5e64b2339f0c" TYPE="swap"
/dev/sda3: UUID="21DC3ED5024F5266" TYPE="ntfs"
複製以下程式碼到/etc/config/fstab
:
config 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '0'
option check_fs '0'
config 'mount'
option target '/mnt'
option uuid '7d3abfaf-493a-46bb-9730-1d793ecb9783'
option enabled '1'
config 'swap'
option uuid '76d36596-5710-4b77-a3a7-02a66d469750'
option enabled '1'
將其中的/mnt
修改為/
,同時將兩個uuid修改為自己的(剛才已經記錄了)。
儲存退出之後重啟路由後你就會發現容量增加啦!
root@CodeMonkey:/www# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 510.0M 55.6M 428.8M 11% /
/dev/root 2.0M 2.0M 0 100% /rom
tmpfs 30.1M 712.0K 29.4M 2% /tmp
tmpfs 512.0K 0 512.0K 0% /dev
/dev/sda1 510.0M 55.6M 428.8M 11% /
/dev/mtdblock2 2.0M 2.0M 0 100% /mnt/mtdblock2
/dev/sda1 510.0M 55.6M 428.8M 11% /mnt/sda1
/dev/sda3 14.3G 86.2M 14.2G 1% /mnt/sda3