当前位置:   article > 正文

IMX6ULL ARM Linux开发板SD卡启动,SD卡的分区与分区格式化创建_linux sd卡分区和分区格式

linux sd卡分区和分区格式

一、确定TF卡挂载到ubuntu上的设备名称及分区情况
  • 1. 在ubuntu不接入TF卡的情况下, 使用df -lh /dev/sd*命令查看当前"/dev/sd开头"的设备。
  1. ##输入df -lh /dev/sd*命令,敲回车键
  2. ~$ df -lh /dev/sd*

  • 2.将TF卡接入到ubuntu,再次使用df命令,进行查看,多出来的设备即是TF卡挂载到ubuntu的设备名称

如图所示,多出来的/dev/sdb1 /dev/sdb2即为TF卡的挂载分区,TF设备名称为/dev/sdb

注:因为我之前已经对SD卡进行过分区,分出两个区,sdb1为分区1(存放Linux内核及设备树文件),sdb2为分区2(存放根文件系统) uboot存放在默认sdb。如果你的SD卡未分过区,仅显示/dev/sdb 或者sd* (*为b c d....)

  • 可以使用cat  /proc/partitions命令,查看设备的分区情况

如图所示,SD卡sdb分出sdb1 sdb2两个分区。

二、删除SD卡原分区,对SD卡进行重新分区

1.取消SD卡挂载,准备进行分区操作

~$ sudo umount /dev/sdb

2.使用fdisk对SD卡进行格式化,输入sudo fdisk /dev/sdb命令,按m查看fdisk帮助信息

  1. qhw@qhw:~$ sudo fdisk /dev/sdb
  2. 欢迎使用 fdisk (util-linux 2.31.1)。
  3. 更改将停留在内存中,直到您决定将更改写入磁盘。
  4. 使用写入命令前请三思。
  5. 命令(输入 m 获取帮助): m
  6. 帮助:
  7. DOS (MBR)
  8. a 开关 可启动 标志
  9. b 编辑嵌套的 BSD 磁盘标签
  10. c 开关 dos 兼容性标志
  11. 常规
  12. d 删除分区
  13. F 列出未分区的空闲区
  14. l 列出已知分区类型
  15. n 添加新分区
  16. p 打印分区表
  17. t 更改分区类型
  18. v 检查分区表
  19. i 打印某个分区的相关信息
  20. 杂项
  21. m 打印此菜单
  22. u 更改 显示/记录 单位
  23. x 更多功能(仅限专业人员)
  24. 脚本
  25. I 从 sfdisk 脚本文件加载磁盘布局
  26. O 将磁盘布局转储为 sfdisk 脚本文件
  27. 保存并退出
  28. w 将分区表写入磁盘并退出
  29. q 退出而不保存更改
  30. 新建空磁盘标签
  31. g 新建一份 GPT 分区表
  32. G 新建一份空 GPT (IRIX) 分区表
  33. o 新建一份的空 DOS 分区表
  34. s 新建一份空 Sun 分区表
  35. 命令(输入 m 获取帮助):

3.按照显示信息,一直按d及对应分区序号,删除sdb设备下所有分区,至到提示“还没有定义分区”为止。

4.按n进行重新分区,

分区大小根据个人实际需要进行定义,

本文分区如下:

  • 前面10MB空间留给uboot (SD卡一个扇区为512字节,2048个扇区容量为1MB
  • uboot空间之后建立分区1给内核和设备树,给100MB
  • 分区1之后建立分区2给根文件系统,剩余全部空间
  1. 命令(输入 m 获取帮助): n
  2. 分区类型
  3. p 主分区 (0个主分区,0个扩展分区,4空闲)
  4. e 扩展分区 (逻辑分区容器)
  5. 选择 (默认 p): p
  6. 分区号 (1-4, 默认 1): 1
  7. 第一个扇区 (2048-122152959, 默认 2048): 20480 #SD卡一个扇区512字节,2048个扇区为1MB;
  8. 上个扇区,+sectors 或 +size{K,M,G,T,P} (20480-122152959, 默认 122152959): +204800 #加100M空间
  9. 创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。
  10. 命令(输入 m 获取帮助): n
  11. 分区类型
  12. p 主分区 (1个主分区,0个扩展分区,3空闲)
  13. e 扩展分区 (逻辑分区容器)
  14. 选择 (默认 p): p
  15. 分区号 (2-4, 默认 2): 2
  16. 第一个扇区 (2048-122152959, 默认 2048): 225281
  17. 上个扇区,+sectors 或 +size{K,M,G,T,P} (225281-122152959, 默认 122152959):
  18. 创建了一个新分区 2,类型为“Linux”,大小为 58.1 GiB。

分区完成后,按p打印分区表,查看是否修改成功。

  1. 命令(输入 m 获取帮助): p
  2. Disk /dev/sdb:58.3 GiB,62542315520 字节,122152960 个扇区
  3. 单元:扇区 / 1 * 512 = 512 字节
  4. 扇区大小(逻辑/物理):512 字节 / 512 字节
  5. I/O 大小(最小/最佳):512 字节 / 512 字节
  6. 磁盘标签类型:dos
  7. 磁盘标识符:0x2d530f15
  8. 设备 启动 起点 末尾 扇区 大小 Id 类型
  9. /dev/sdb1 20480 225280 204801 100M 83 Linux
  10. /dev/sdb2 225281 122152959 121927679 58.1G 83 Linux

确认修改成功后,按w进行保存 

  1. 命令(输入 m 获取帮助): w
  2. 分区表已调整。
  3. 正在同步磁盘。
三、格式化/dev/sdb1分区为vfat格式,用来存放内核与设备树文件

使用mkfs.vfat命令,格式化/dev/sdb1分区为vfat格式

  • 1.取消SD卡分区1挂载,准备进行格式化操作
~$ sudo umount /dev/sdb1
  • 2.格式化/dev/sdb1分区
  1. qhw@qhw:~$ sudo mkfs.vfat /dev/sdb1
  2. mkfs.fat 4.1 (2017-01-24)
四、格式化/dev/sdb2分区为ext4格式,用来存放根文件系统
  • 1.取消SD卡分区2挂载,准备进行格式化操作
~$ sudo umount /dev/sdb2
  • 2.格式化/dev/sdb2分区
  1. qhw@qhw:~$ sudo mkfs.ext4 /dev/sdb2
  2. mke2fs 1.44.1 (24-Mar-2018)
  3. 创建含有 15240959 个块(每块 4k)和 3817472 个inode的文件系统
  4. 文件系统UUID:55a36819-e9fd-45d5-9bd4-22dad621be41
  5. 超级块的备份存储于下列块:
  6. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
  7. 4096000, 7962624, 11239424
  8. 正在分配组表: 完成
  9. 正在写入inode表: 完成
  10. 创建日志(65536 个块) 完成
  11. 写入超级块和文件系统账户统计信息: 已完成

至此,SD卡分区及分区格式化操作完成。

五、将uboot写入SD卡
sudo dd if=u-boot-dtb.imx of=/dev/sdb bs=1K seek=1 && sync

具体操作待补充。。。

六、将内核、设备树文件写入SD卡
  1. ##创建内核与设备树挂载目录
  2. mkdir kernel_dtb
  3. ##挂载/dev/sdb1到kernel_dtb目录
  4. sudo mount /dev/sdb1 kernel_dtb
  5. ##复制zImage文件到挂载目录
  6. sudo cp zImage kernel_dtb/
  7. ##复制.dtb设备树文件到挂载目录 拷贝自己实际设备树名称
  8. sudo cp imx6ull-14x14-evk.dtb kernel_dtb/
  9. ##取消挂载
  10. sudo umount kernel_dtb
七、将根文件系统写入SD卡
  1. ##创建内核与设备树挂载目录
  2. mkdir mount_rootfs
  3. ##挂载/dev/sdb2到mount_rootfs目录
  4. sudo mount /dev/sdb2 mount_rootfs
  5. ##复制根文件系统目录下所有文件到挂载目录:nfs/rootfs目录下为创建编译好的具体根文件系统
  6. sudo cp nfs/rootfs/* mount_rootfs/ -drf
  7. ##取消挂载
  8. sudo umount mount_rootfs
八、设置uboot启动环境变量

设置bootcmd,从SD卡启动内核与设备树文件

setenv bootcmd 'mmc dev 0;fatload mmc 0:1 80800000 zImage;fatload mmc 0:1 83000000 imx6ull-14x14-evk.dtb;bootz 80800000 - 83000000'

 设置bootargs,从SD卡启动根文件系统

setenv bootargs 'consoe=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw'

保存设置并重启

saveenv

reset

附:uboot启动错误解决,设置网卡mac、IP、服务器等地址

进入调试界面对EHT mac地址进行设置

  1. => setenv ipaddr 192.168.1.128 ##设置开发板IP地址
  2. => setenv gatewayip 192.168.1.2 ##设置网关
  3. => setenv netmask 255.255.255.0 ##设置子网掩码
  4. => setenv ethaddr ca:38:29:c3:28:30 ##设置eth0地址
  5. => setenv eth1addr 76:7d:33:a8:f0:e7 ##设置eth1地址
  6. => setenv serverip 192.168.1.17 ##设置服务器IP,也就是与开发板连接的ubuntu IP地址
  7. => saveenv ##保存
  8. Saving Environment to MMC... Writing to MMC(0)... OK
  9. => reset ##重启

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/130068?site
推荐阅读
相关标签
  

闽ICP备14008679号