全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

【Milk-V Duo 开发板免费体验】TF扩容

时间:2023-07-19 14:47

人气:

作者:admin

标签: Linux  树莓派  开发板  TF 

导读:开发板正式进入系统后,然后通过SSH的方案登录进入,进入以后,使用`df -h`命令查看,会发现ROOTFS的容量仅仅只有245.9MB,而我们的boot分区的容量也不过128MB,那么我的TF卡一共32GB,剩下...

起因

开发板正式进入系统后,然后通过SSH的方案登录进入,进入以后,使用df -h命令查看,会发现ROOTFS的容量仅仅只有245.9MB,而我们的boot分区的容量也不过128MB,那么我的TF卡一共32GB,剩下的容量哪里去了?其实经常玩树莓派的人肯定都知道,这个其实是在打包IMG的时候,为了适应更多的TF卡所以都按照小容量的TF卡打包的,那么对于我们的大容量TF卡就没有解决办法了么?也不是,可以在编译好系统以后进行打包时,按照自己的TF卡容量进行打包,另外就是像树莓派有一个工具叫做raspi-config,使用这个命令也可以扩容,而且很方便,当然了我们的板子时不可能有这个命令的,那么还有别的办法么?

解决

当然是有办法的啦,使用fdisk和resize2fs就可以解决,不过在这里重要提示一下,我的32GB不能全部扩容到ROOTFS分区,如果全部扩容的话会出问题,所以,我扩容了16GB,剩下的16GB也没有浪费啦,在官方社区里,也有关于扩容方面的帖子,原理和我的都一样,但是我没有参考他的,大家如果看懂我的看我的,看懂他的看他的,[Duo]Linux 使用fdisk和resize2fs扩容 root分区!但是我为了演示方便,我重新找了一块128GB的TF卡,重新进行一遍操作。

fdisk /dev/mmcblk0

001.png

fdisk的命令都会吧,不会可以输入h回车,也可以直接按照我的步骤来,我会说一下我的理解,然后输入p回车,列出当前的分区。

002.png

可以看到118GB的内存卡,1个Sectors512个字节,然后输入d回车,输入2回车,意思就是删除第2个分区,然后输入p回车,列出当前分区。

003.png

现在只剩1个分区了,接下来输入n回车,输入p回车,输入2回车,直接回车,然后输入2359296回车,最后再输入p回车。
n代表新建一个分区,p代表新建的是主分区,2代表的是分区号,这个地方直接回车是使用了默认值,即上个分区的最后一个Sector+1,最后输入的2359296代表的是本分区的最后一个Sector,可以看到我刚好分了1024MB,计算方法其实很简单2x1024x1024+262144,注意最后一个Sector不能大于硬盘的最后一个Sector,还有就是在板上不能太大,比如32GB建议最多分上16GB就可以了。

004.png

那么剩下的16GB也不要浪费了,我们再新建一个分区。我这里最后的分区没有进行分配,如果32GB的卡的话,可以输入n回车,输入p回车,输入3回车,直接回车,再直接回车,最后再输入p回车,也就是说最后2个直接默认选项就可以。我分配的是2GB分区。

005.png

最后输入w进行写入,写入以后会报错,表示资源占用,不过没关系,问题不大,我们先输入reboot让板子重启一下再说。

006.png

重启后,先用resize2fs进行扩容。

007.png

扩容以后,就是我们要使用剩余空间的时候了,在这里要感谢论坛里的这个帖子,我是按照这个帖子进行的,官方固件下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个分区从USB上面进行读取,如果是希望把整个TF卡都挂上去也是可以的,把最后的p3删掉就可以,不过我不喜欢,因为第2个分区老提示格式化。
修改后的文件如下:

#!/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进行重启。
重启后,电脑就会出现弹窗了。

009.png

注意,如果是挂载的整块TF千万别瞎点,如果是完全按照我的来的,只挂载第3个分区,那就直接点击格式化磁盘,或者进入我的电脑或者磁盘管理里进行格式化也是可以的,我这里为了兼容性直接使用了FAT32了,如下所示。

010.png

格式化就完事了,现在就没有浪费空间了,值得一提的是,这个方法是完全在Linux下进行的分区操作,当然我们可以在分了第2个分区以后,就不再继续分区,而是使用读卡器,或者挂载整个TF卡到windows系统下,然后在windows系统里,使用磁盘管理或DG一类的软件继续分区也是可以的。
最后,我们要把这个分区做到windows系统和Linux系统进行打通。首先,我们windows系统已经没有问题了,往里扔一个文件,文件名不要有中文,不然全是问号,编码有问题的,但是文件里面有中文是无妨的。
然后,在Linux里面进行挂载,

mkdir /mnt/media
mount /dev/mmcblk0p3 /mnt/media/

011.png

相信我,这样传输文件比scp还爽,虽然我还是更喜欢scp。
对了,值得注意的是,只可以windows里可读可写,但是在Linux里只可以读,包括修改都要复制到其他地方进行修改,不然不但无法保存还得重新加载。
还有就是,这样每次打开以后都得重新挂载,我们让他自动挂载吧。vi /etc/fstab,在文件末尾添加一行:

/dev/mmcblk0p3  /mnt/media      vfat    defaults        0       0

这个其实也没啥说的,唯一注意的是我用的fat32格式,所以第3个位置是vfat即可!

012.png

最后,reboot一下看看挂载成功没?
013.png

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信