起因
開發(fā)板正式進入系統(tǒng)后,然后通過SSH的方案登錄進入,進入以后,使用df -h
命令查看,會發(fā)現(xiàn)ROOTFS的容量僅僅只有245.9MB,而我們的boot分區(qū)的容量也不過128MB,那么我的TF卡一共32GB,剩下的容量哪里去了?其實經(jīng)常玩樹莓派的人肯定都知道,這個其實是在打包IMG的時候,為了適應更多的TF卡所以都按照小容量的TF卡打包的,那么對于我們的大容量TF卡就沒有解決辦法了么?也不是,可以在編譯好系統(tǒng)以后進行打包時,按照自己的TF卡容量進行打包,另外就是像樹莓派有一個工具叫做raspi-config,使用這個命令也可以擴容,而且很方便,當然了我們的板子時不可能有這個命令的,那么還有別的辦法么?
解決
當然是有辦法的啦,使用fdisk和resize2fs就可以解決,不過在這里重要提示一下,我的32GB不能全部擴容到ROOTFS分區(qū),如果全部擴容的話會出問題,所以,我擴容了16GB,剩下的16GB也沒有浪費啦,在官方社區(qū)里,也有關于擴容方面的帖子,原理和我的都一樣,但是我沒有參考他的,大家如果看懂我的看我的,看懂他的看他的,[Duo]Linux 使用fdisk和resize2fs擴容 root分區(qū)!但是我為了演示方便,我重新找了一塊128GB的TF卡,重新進行一遍操作。
fdisk /dev/mmcblk0
fdisk的命令都會吧,不會可以輸入h回車,也可以直接按照我的步驟來,我會說一下我的理解,然后輸入p回車,列出當前的分區(qū)。
可以看到118GB的內(nèi)存卡,1個Sectors512個字節(jié),然后輸入d回車,輸入2回車,意思就是刪除第2個分區(qū),然后輸入p回車,列出當前分區(qū)。
現(xiàn)在只剩1個分區(qū)了,接下來輸入n回車,輸入p回車,輸入2回車,直接回車,然后輸入2359296回車,最后再輸入p回車。
n代表新建一個分區(qū),p代表新建的是主分區(qū),2代表的是分區(qū)號,這個地方直接回車是使用了默認值,即上個分區(qū)的最后一個Sector+1,最后輸入的2359296代表的是本分區(qū)的最后一個Sector,可以看到我剛好分了1024MB,計算方法其實很簡單2x1024x1024+262144,注意最后一個Sector不能大于硬盤的最后一個Sector,還有就是在板上不能太大,比如32GB建議最多分上16GB就可以了。
那么剩下的16GB也不要浪費了,我們再新建一個分區(qū)。我這里最后的分區(qū)沒有進行分配,如果32GB的卡的話,可以輸入n回車,輸入p回車,輸入3回車,直接回車,再直接回車,最后再輸入p回車,也就是說最后2個直接默認選項就可以。我分配的是2GB分區(qū)。
最后輸入w進行寫入,寫入以后會報錯,表示資源占用,不過沒關系,問題不大,我們先輸入reboot讓板子重啟一下再說。
重啟后,先用resize2fs進行擴容。
擴容以后,就是我們要使用剩余空間的時候了,在這里要感謝論壇里的這個帖子,我是按照這個帖子進行的,官方固件下USB device簡單配置,但是,大神里面有一些小的疏忽,可以參照我的進行。
其實就是把/mnt/system/rndis.sh文件中的
/etc/run_usb.sh probe rndis > > /tmp/rndis.log 2 >&1
后增加一行
/etc/run_usb.sh probe msc /dev/mmcblk0p3
這個代表要把第3個分區(qū)從USB上面進行讀取,如果是希望把整個TF卡都掛上去也是可以的,把最后的p3刪掉就可以,不過我不喜歡,因為第2個分區(qū)老提示格式化。
修改后的文件如下:
#!/bin/sh
/etc/uhubon.sh device > > /tmp/rndis.log 2 >&1
/etc/run_usb.sh probe rndis > > /tmp/rndis.log 2 >&1
/etc/run_usb.sh probe msc /dev/mmcblk0p3
/etc/run_usb.sh start rndis > > /tmp/rndis.log 2 >&1
sleep 0.5
ifconfig usb0 192.168.42.1
count=`ps | grep dnsmasq | grep -v grep | wc -l`
if [ ${count} -lt 1 ] ;then
echo "/etc/init.d/S80dnsmasq start" > > /tmp/rndis.log 2 >&1
/etc/init.d/S80dnsmasq start > > /tmp/rndis.log 2 >&1
fi
然后,再次輸入reboot進行重啟。
重啟后,電腦就會出現(xiàn)彈窗了。
注意,如果是掛載的整塊TF千萬別瞎點,如果是完全按照我的來的,只掛載第3個分區(qū),那就直接點擊格式化磁盤,或者進入我的電腦或者磁盤管理里進行格式化也是可以的,我這里為了兼容性直接使用了FAT32了,如下所示。
格式化就完事了,現(xiàn)在就沒有浪費空間了,值得一提的是,這個方法是完全在Linux下進行的分區(qū)操作,當然我們可以在分了第2個分區(qū)以后,就不再繼續(xù)分區(qū),而是使用讀卡器,或者掛載整個TF卡到windows系統(tǒng)下,然后在windows系統(tǒng)里,使用磁盤管理或DG一類的軟件繼續(xù)分區(qū)也是可以的。
最后,我們要把這個分區(qū)做到windows系統(tǒng)和Linux系統(tǒng)進行打通。首先,我們windows系統(tǒng)已經(jīng)沒有問題了,往里扔一個文件,文件名不要有中文,不然全是問號,編碼有問題的,但是文件里面有中文是無妨的。
然后,在Linux里面進行掛載,
mkdir /mnt/media
mount /dev/mmcblk0p3 /mnt/media/
相信我,這樣傳輸文件比scp還爽,雖然我還是更喜歡scp。
對了,值得注意的是,只可以windows里可讀可寫,但是在Linux里只可以讀,包括修改都要復制到其他地方進行修改,不然不但無法保存還得重新加載。
還有就是,這樣每次打開以后都得重新掛載,我們讓他自動掛載吧。vi /etc/fstab
,在文件末尾添加一行:
/dev/mmcblk0p3 /mnt/media vfat defaults 0 0
這個其實也沒啥說的,唯一注意的是我用的fat32格式,所以第3個位置是vfat即可!
最后,reboot一下看看掛載成功沒?
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11232瀏覽量
208961 -
TF
+關注
關注
0文章
61瀏覽量
33078 -
硬件設計
+關注
關注
18文章
394瀏覽量
44532 -
開發(fā)板
+關注
關注
25文章
4959瀏覽量
97217 -
樹莓派
+關注
關注
116文章
1699瀏覽量
105537 -
Milk-V Duo
+關注
關注
2文章
28瀏覽量
179
發(fā)布評論請先 登錄
相關推薦
評論