linux如何制作sd卡映像文件 sd卡 linux分区

&&& 在做项目的过程中发现ramdisk使用起来不够方便,就尝试使用sdcard做为文件系统,方便存一些工具程序和库文件。最简单的方法大概是这样的:
&&& 1.下载Digilent-Linux 3.3的内核源码,重新配置内核,设置为sdcard文件系统。
&&&&& 配置内核 Boot Options-&(console=ttyPS0, root=/dev/mmcblk0p2 rw coherent_pool=8M)
&&&&&&&&&&&&&& Boot Options-& Kernel command line type-& Kernel command line type
&&& 2.对SD卡重新分为两个分区,
&&&&& 第一个分区为FAT格式,第二个分区为ext3/ext4格式,两个分区均为主分区,大小可以都是2G
&&&&& 这样FAT分区存放Boot.bin Devicetree等启动文件,ext3/ext4分区就是默认的文件系统。
&&& 3.拷贝文件系统,将ramdisk文件解压,在Linux使用映像挂载器挂载,把里面的所有文件直接拷贝到SD卡的Linux分区。用到的openCV/Qt的库直接拷贝到Linux分区里就好了,再不用麻烦地制作镜像、挂载什么的了。
&&& 4.插上SD卡到zedBoard,开机就可以啦
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号LINUX下的SD卡分区_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
LINUX下的SD卡分区
&&SD卡的分区方法
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢检测U盘主控、U盘芯片型号、闪存、SSD固态硬盘的必备工具!
版本:1.5.6
大小:1.2M
热门U盘启动资讯
推荐U盘启动资讯
最新U盘启动资讯
随选U盘启动资讯
linux系统实现U盘和SD卡等移动设备自动加载分区
来源:未知编辑:冰幻 浏览量:
U盘问题,请到问答平台:
  核心提示:
在 Linux的嵌入式系统中我们经常用到U盘、SD卡的挂载,而每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡 这就要用到mdev了 其具体操作如下: 1、
在 Linux的嵌入式系统中我们经常用到U盘、SD卡的挂载,而每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡
这就要用到mdev了
其具体操作如下:
1、首先在/etc/init.d/rsC中加入以下语句
echo /sbin/mdev & /proc/sys/kernel/hotplug
2、在/etc/下简历medv.conf的文件,包含以下内容
sd[a-z][0-9]&&&&& 0:0 666&&&&&&& @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
sd[a-z]&&&&&&&&&& 0:0 666&&&&&&& $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
ub[a-z][0-9]&&&&& 0:0 666&&&&&&& @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
ub[a-z]&&&&&&&&&& 0:0 666&&&&&&& $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]p[0-9] 0:0 666&&&&&&& @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]&&&&&& 0:0 666&&&&&&& $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
3、在/etc/下建立以下文件夹hotplug,并在hotplug目录下建立以下文件,包含以下内容
insert.sh:
if [ -n &$1& ] ; then
&&& if [ -b /dev/$1 ]; then
&&&&&&& if [ ! -d /media ]; then
&&&&&&&&&&& mkdir -p /media
&&&&&&& fi
&&&&&&& if [ ! -d /media/$1 ]; then
&&&&&&&&&&& mkdir -p /media/$1
&&&&&&& fi
&&&&&&&&&&&& mount /dev/$1 /media/$1
if [ $? -ne 0 ]; then
&&& rm -rf /media/$1
&&&&&&& fi
remove.sh:
MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS
特别提醒:上面的代码在实际使用中可以直接复制,但注意换行符
插入U盘、SD等设备,即可在根目录的/media目录下建立相应的文件夹,挂载对用的磁盘文件
而其原理是:
mdev是busybox自带的一个简化版的udev,适合于嵌入式的应用场合。其具有使用简单的特点。它的作用,就是在系统启动和热插拔或者动态加载驱动程序时,自动产生驱动程序所需的节点文件。在以busybox为基础构建嵌入式linux的根文件系统时,使用它是最优的选择。
mdev的使用在busybox中的mdev.txt文档已经将得很详细了。但作为例子,我简单讲讲我的使用过程:
(1)在编译时加上对mdev的支持:
&&& Linux System Utilities& ---&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&& mdev&&&&&
&& Support /etc/mdev.conf&&&&&&&&
&& Support command execution at device addition/removal
(2)在启动时加上使用mdev的命令:
我在自己创建的根文件系统(nfs)中的/linuxrc文件中添加了如下指令:
#挂载/sys为sysfs文件系统
&&& echo &----------mount /sys as sysfs&
&&& /bin/mount -t tmpfs mdev /dev
&&& /bin/mount -t sysfs sysfs /sys
&&& echo &----------Starting mdev......&
&&& /bin/echo /sbin/mdev & /proc/sys/kernel/hotplug
&&& mdev -s
注意:是/bin/echo /sbin/mdev & /proc/sys/kernel/hotplug,并非/bin/echo /bin/mdev & /proc/sys/kernel/hotplug。
(3)在你的驱动中加上对类设备接口的支持。
& 在驱动程序的初始化函数中,使用下述的类似语句,就能在类设备目录下添加包含设备号的名为&dev&的属性文件。并通过mdev
在/dev目录下产生gpio_dev0的设备节点文件。
& my_class = class_create(THIS_MODULE, &gpio_class&);
& if(IS_ERR(my_class)) {
&&& printk(&Err: failed in creating class./n&);
&&& return -1;
& class_device_create(my_class, MKDEV(gpio_major_number, 0), NULL, &gpio_dev%d& ,0);
& 在驱动程序的清除程序段,加入以下语句,以完成清除工作。
& class_device_destroy(my_class, MKDEV(gpio_major_number, 0));
& class_destroy(my_class);
& 需要的头文件是linux/device.h,因此程序的开始应加入下句
& #include
& 另外,my_class是class类型的结构体指针,要在程序开始时声明成全局变量。
& struct class *my_
& 上述程序中的gpio_major_number是设备的主节点号。可以换成需要的节点号。gpio_dev是最终生成的设备节点文件的名子。%d是用于以相同设备自动编号的。gpio_class是建立的class的名称,当驱动程序加载后,可以在/sys/class的目录下看到它。上述语句也不一定要在初始化和清除阶段使用,可以根据需要在其它地方使用。
(4)至于/etc/mdev.conf文件,可有可无,不影响使用,只是添加了些功能。
执行mdev -s:
以&-s&为参数调用位于/sbin目录写的mdev(其实是个链接,作用是传递参数给/bin目录下的busybox程序并调用它),mdev扫描 /sys/class 和/sys/block中所有的类设备目录,如果在目录中含有名为&dev&的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点文件。一般只在启动时才执行一次 &mdev -s&。
热插拔事件:
由于启动时运行了命令:echo /sbin/mdev & /proc/sys/kernel/hotplug ,那么当有热插拔事件产生时,内核就会调用位于/sbin目录的mdev。这时mdev通过环境变量中的 ACTION 和DEVPATH,(这两个变量是系统自带的)来确定此次热插拔事件的动作以及影响了/sys中的那个目录。接着会看看这个目录中是否有&dev&的属性文件,如果有就利用这些信息为这个设备在/dev 下创建设备节点文件。
linux系统实现U盘和SD卡等移动设备自动:http://www.upan.cc/boot/linux/2013/youpan_2798.html
,是一个集、、、于一体的专业指导性网站,请牢记我们的域名:www.upan.cc
评论(请自觉遵守互联网相关政策法规,管理可以直接删除恶意评论、广告或违禁词语):
已引用盖楼,
copyright (C)
upan.cc. all rights reserved .如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘_Linux教程_Linux公社-Linux系统门户网站
你好,游客
如何在Ubuntu下使用TF/SD 卡制作Exynos 4412 u-boot启动盘
来源:/humaoxiao&
作者:humaoxiao
******************************************************************************
* @author & &Maoxiao Hu
* @version & V1.0.1
* @date & & & Feb-2015
******************************************************************************
* & COPYRIGHT 2015 ISE of SHANDONG UNIVERSITY &
******************************************************************************
如果你的系统是Mac OS X,请移步这里《如何在Mac下使用TF/SD 卡制作Exynos 4412 u-boot启动盘》 。
U-Boot源代码下载地址
硬件:迅为iTop 4412精英版 & TF卡
软件:系统自带终端即可
首先,我们应该清楚TF/SD卡可以看作一张完全空白的&白纸&,之所以有分区、分区格式的区别不过是在在这张&白纸&的某些特定位置写入了一些数据来指示分区、分区格式。
其次,我们还应该清楚,在TF/SD启动模式下,exynos 4412一上电,内部iROM会从TF/SD的第1个Block(第512个字节开始)读取8KB的数据到内部iRAM,然后从内部iRAM的0地址开始运行。
原理搞清楚了,那么首先需要把TF/SD低级格式化-所有Block全部写0x00。
1、连接TF/SD卡,打开终端
使用ls /dev/sd* 命令查看所有连接到电脑上磁盘。
问题:在这里为什么不用df命令?
原因是假设你的TF/SD卡只有一个分区但这个分区已损坏,或者有多个分区但是没有一个可以识别的分区,那么此时df命令无法查看到tf/sd卡,所以说直接列出dev下所有sd开头的设备,是终极方案。
(1)假设你的tf/sd卡只有一个分区,无论这个分区是否损坏,现象应该是类似这样的:
插上tf/sd卡之前:
插上tf/sd卡之后:
很明显多出的/dev/sdb就是本文后续操作的对象。
(2)假设你的tf/sd卡已有多个分区,无论这些分区是否损坏,现象应该是类似这样的:
插上tf/sd卡之前:
插上tf/sd卡之后:
这里多出5个设备,但是我们仍然将/dev/sdb作为本文后续操作的对象。
注意:我这里是/dev/sdb,但是还有可能是/dev/sdc等等其它符号,必须根据你实际出现的设备名称进行以下操作,否则有可能损坏系统分区,非常重要,切记!!!
2、使用16进制模式打开TF卡查看数据(可跳过)
我们使用linux自带命令hexdump查看tf/sd卡中的数据:
sudo hexdump -n 1048576 /dev/sdb
其中-n 1048576代表打印出前1M=48576字节的数据。
执行结果(部分)如下:
*代表内容为0x00,为了节省空间故作省略。
3、清空TF卡上前1MB的数据
由于4412的uboot大小基本在几百kB的量级,所以清空前1MB空间足够用,注意这里的清空不是格式化,而是填充0x00。
我们利用系统/dev下的zero设备,清零tf/sd卡前1MB。
执行结果如下:
这里的count=2000代表清空2000个block,一个block=512B,2000个正好为1MB。
再次hexdump查看tf/sd卡数据,发现:
前1MB空间成功清0x00。
4、烧写uboot启动文件
在这里,我们待烧写的文件为&u-boot-iTOP-4412.bin 这个文件。
终端执行命令:
if代表输入文件地址,以你u-boot-iTOP-4412.bin 这个文件的实际地址为准,of代表输出地址,以你tf/sd卡的实际设备号为准。
到这里,就可以将tf/sd卡插入开发板上电启动了,为了证明我们烧写无误,我们执行后续操作。
5、确认烧写正确(可跳过)
我们需要确定从tf/sd卡的第一个block开始处,确实正确烧写了u-boot-iTOP-4412.bin这个文件,下面我们对比一下,用到的命令同样还是hexdump。
在这里,我们为了显示方便,只打印前5KB数据,发现bin文件被正确的复制到了sd卡的512字节处:
6、将TF卡接到开发板上,拨码开关选择TF启动,上电:
本文永久更新链接地址:
相关资讯 & & &
& (11/05/:30)
& (03/29/:44)
& (01月28日)
& (09/25/:27)
& (12/27/:47)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 linux 分区表修复 的文章

 

随机推荐