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