用SD卡引导在U盘上启动树莓派-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5969|回复: 0

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

[复制链接]
发表于 2018-7-3 22:16 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2018-7-3 22:21 编辑

使用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)字符补齐。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 14:37 , Processed in 0.075327 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表