用SD卡引导在U盘上启动树莓派

使用SDFormatter将u盘和sd卡格式化,使用USB Image Tool 将2016-03-18-raspbian-jessie写入sd卡。
把sd卡插入树莓派sd卡槽,并且将u盘插入usb槽内,启动树莓派。

查看u盘
sudo fdisk -l 

sda1是U盘分区。

卸载U盘
sudo umount /dev/sda1
格式化U盘
sudo mkfs -t vfat /dev/sda1

查看挂载分区
cat /etc/fstab

mmcblk0p2是 挂载到 /dev分区的

sudo nano /etc/fstab

修改/dev/mmcblk0p2为/dev/sda

sudo dd if=/dev/mmcblk0p2 of=/dev/sda bs=1M conv=noerror

等待复制完毕吧,复制完毕之后,修改启动项

sudo nano /boot/cmdline.txt
看到下面的配置:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
将root=/dev/mmcblk0p2 修改为 root=/dev/sda,保存。

重启,看看效果。
sudo reboot

树莓派2升级Jessie,apt-get upgrade后会黑屏,ctrl+alt+F1,再输入sudo startx,问题就解决了。
这样做的好处就是sd卡不需要再承担擦写程序的任务就不易损坏了,而且u盘的写入速度也比sd卡要快。

解释一下:
dd if=/dev/mmcblk0p2 of=/dev/sda bs=1M conv=noerror
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数:
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swab:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

永不止步步 发表于11-07 10:30 浏览65535次
分享到:

已有2条评论

  • 永不止步步
    永不止步步 11-07 11:00

        回复 EEskill:u盘就相当于pc机的ssd,速度是sd卡不能比的。

  • EEskill
    EEskill 11-07 11:00

    class10的TF卡也挺快的,楼主使用过dump备份过系统吗?最近在pi上备份系统总出错。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:345791个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号