树莓派镜像备份与恢复文章

2023-05-16

在做完下属步骤以后,需要考虑分区表,将分区表复制到镜像里,否则系统无法启动,而且还要回利用gparted  /dev/loop0以及fdisk -l /dev/loop0等命令,查看分区类型,文件系统类型,是否需要修改分区卷标等操作。


往已经做好的镜像添加分区表的命令:


sudo dd if=/dev/sdd of=raspberrypi.img bs=1MB seek=0 count=24 conv=notrunc

#2018-05-24更新
#!/bin/bash
#sudo apt-get install -y dosfstools parted kpartx rsync

df -P | grep /dev/mmcblk0p1
if [ $? -ne 0 ];then
	echo "mount p1..."
	sudo mount /dev/mmcblk0p1 /boot
fi
df=`df -P | grep /dev/mmcblk0p2 | awk '{print $3}'`
dr=`df -P | grep /dev/mmcblk0p1 | awk '{print $2}'`
df=`echo $df $dr |awk '{print int(($1+$2)*1.2)}'`

if [ -f raspberrypi.img ];then
	rm raspberrypi.img
fi
sudo dd if=/dev/zero of=raspberrypi.img bs=1K count=$df
sudo parted raspberrypi.img --script -- mklabel msdos
start=`sudo fdisk -l /dev/mmcblk0| awk 'NR==9 {print $2}'`
start=`echo $start's'`
end=`sudo fdisk -l /dev/mmcblk0| awk 'NR==9 {print $3}'`
end2=$((${end}+1))
end=`echo $end's'`
end2=`echo $end2's'`

sudo parted raspberrypi.img --script -- mkpart primary fat32 $start $end
sudo parted raspberrypi.img --script -- mkpart primary ext4 $end2 -1

loopdevice=`sudo losetup -f --show raspberrypi.img`
sudo kpartx -va $loopdevice | grep "fail"
if [ $? -eq 0 ];then
	echo "part failed"
	exit 1 
fi

device=`echo $loopdevice | awk -F '/' '{print $3}'`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"

sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo rsync -aP --exclude="raspberrypi.img" --exclude=/media/* --exclude=/sys/* --exclude=/proc/*  --exclude=/tmp/* / ./
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice
sudo dd if=/dev/mmcblk0 of=raspberrypi.img bs=1MB seek=0 count=24 conv=notrunc


在Linux下回复的过程是:

sudo dd bs=1M if=raspberrypi.img of=/dev/sdc

sudo sync








最近一直在折腾树莓派,前几天装了10台设备,最近又来了15台开发板子。基本每台设备都需要进行如下操作:

1.安装树莓派OS,并配置键盘、时区、语言编码格式等;

2.新增组、用户、配置静态IP地址;

3.配置应用,并配置2个自启动的服务;

 

而这些都是重复性配置,工作量巨大;之前采用了一种方式,直接使用树莓派官方的USB工具,采用备份还原的方式,clone镜像;

但存在问题:SD卡为32GB,每次还原得很长时间,所以想减小镜像大小;

参考后文方式,做一个backup.sh文件,然后安装相关工具,并增加可执行权限,并sudo ./backup.sh运行;

安装所需工具组件:


sudo apt-get install dosfstools
sudo apt-get install dump
sudo apt-get install parted
sudo apt-get install kpartx  

 

内容如下:


#!/bin/sh
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=4000
sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 2682879s
sudo parted raspberrypi.img --script -- mkpart primary ext4 2682880s -1

loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-15])p.*/\1/g' | head -1`
device="/dev/ram${device}"
partBoot="${device}p1"
partRoot="${device}p2"
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo dump -0uaf - / | sudo restore -rf -
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice  

 

执行之后,等待一段时间,就可以看到相应的镜像文件:

 

 

-------------------------

参考下文:(http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/ )

买树莓派的时候只想到存储空间大能多存的东西于是买了个16GB的SD卡,可实际用了2G空间不到。最开始备份树莓派SD卡是用windwos下的Win32DiskImager,这种备份恢复树莓派的方式最简单,Windows+读卡器+Win32DiskImager 就可以对树莓派的SD做完整的镜像备份,可我的树莓派用的16GB的SD卡,备份还原既浪费空间又浪费时间。

后来发现一种直接用dd备份树莓派的方法,就是先在树莓派上mount一个共享目录(空间大于SD卡的即可),然后用


dd if=/dev/mmcblk0 of=raspberrypi.img bs=1M  

备份成raspberrypi.img镜像文件,恢复的方式有两种:一是用Win32DiskImager在windows系统上直接写到SD卡中;二是在Linux系统中用(先fdisk -l查看设备)


dd if=/path/to/image/raspberrypi.img of=/dev/sdx  

这种方式要考虑网络环境,如果你的树莓派接的无线网卡,最好放弃这种方式,太慢!

最后介绍最终极的备份还原树莓派的方式,利用dump 和 restore。先说明一下这种备份方式的好处:一是可以像Windows的Ghost只dump有效数据,也就是说可以最有效的节省备份空间,树莓派有多少数据就生成多大的镜像文件;二是可以恢复到比原来SD卡空间的小的SD卡上,我原来用的树莓派是16GB,现在可以把镜像恢复到8GB或者4GB的SD中。下面看详细步骤(不想看可以直接跳到最后的脚本)

一、安装需要的软件

dosfstools:fat32分区格式化工具
dump:dump & restore 备份工具
parted & kpartx:虚拟磁盘工具

执行安装脚本


sudo apt-get install dosfstools
sudo apt-get install dump sudo apt-get install parted sudo apt-get install kpartx  

二、生成新的img文件
先df -h查看下树莓派实际使用空间然后在决定生成文件大小,下面命令生成块大小为1MB总大小为2500MB的镜像文件


sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=2500  

三、分割虚拟磁盘

利用parted将刚才生成的虚拟盘分割成两个分区

  • 第一个分割区采用FAT32格式,由sector 8192开始到sector 12879,约62.9MB
  • 第二个分割区采用EXT4,由sector 122880开始到结束。

sudo parted raspberrypi.img --script -- mklabel msdos sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1  

四、挂载虚拟磁盘并格式化

  • loopdevice:执行 losetup 连接 img 文件的 loop device
  • device:执行完 kpartx 后,虚拟磁盘代号。
  • partBoot:由 device 加上 p1 组合而成的 FAT32 虚拟磁盘分区。
  • partRoot:由 device 加上 p2 组合而成的 EXT4 虚拟磁盘分区。

首先建立虚拟磁盘并分区


loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` device="/dev/mapper/${device}" partBoot="${device}p1" partRoot="${device}p2"  

格式化虚拟磁盘分区


sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot  

五、开始备份
fat32虚拟磁盘分区建立好后直接用cp命令备份文件

  1. sudo mount -t vfat $partBoot /media
  2. sudo cp -rfp /boot/* /media/
  3. sudo umount /media

ext4 linux虚拟磁盘分区用dump & restore 备份


sudo mount -t ext4 $partRoot /media/ cd /media sudo dump -0uaf - / | sudo restore -rf - cd sudo umount /media  

六、卸载虚拟磁盘


sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice  

经过以上六步树莓派中的数据文件就全部备份到raspberrypi.img中了,你既可以在Windows中用Win32DiskImager将镜像恢复到SD卡,也可以在Linux用dd还原到SD卡,而且不要求恢复SD卡的大小跟原来的一样(不同品牌相同大小的SD卡实际可用空间不一样的,坑!),这样就可以很方便的更换SD卡。当用此SD卡启动树莓派的时候执行raspi-config ->Expand Filesystem 即可扩展未使用的空间。

这里就是最后的脚本,包含了以上六步,只需要编辑sudo vi backup.sh复制以下内容,sudo chmod 777 genimg.sh,然后sudo ./backup.sh就可以在当前脚本目录中生成树莓派的SD卡镜像了。


#!/bin/sh
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=2500 sudo parted raspberrypi.img --script -- mklabel msdos sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1 loopdevice=`sudo losetup -f --show raspberrypi.img` device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` device="/dev/mapper/${device}" partBoot="${device}p1" partRoot="${device}p2" sudo mkfs.vfat $partBoot sudo mkfs.ext4 $partRoot sudo mount -t vfat $partBoot /media sudo cp -rfp /boot/* /media/ sudo umount /media sudo mount -t ext4 $partRoot /media/ cd /media sudo dump -0uaf - / | sudo restore -rf - cd sudo umount /media sudo kpartx -d $loopdevice sudo losetup -d $loopdevice  

 




制作树莓派镜像,可以参考这篇文章:http://blog.csdn.net/talkxin/article/details/50456282

摘录部分要点内容如下(如果作者不允许转载,请联系即删除):

一、查看当前系统所占容量 
用Win32DiskImager来制作镜像时是将sd卡正卡全部做成镜像,是因为无法读取到linux分区的原因,所以我们在制作镜像前,先要确定我们当前系统所占用了多少系统空间,即备份镜像的大小。

#查看当前系统所占用的空间

df -lh  
 

 

这里写图片描述 
可以看到,树莓派是有两个分区,所以boot 【size】+linux【Used】+分区损耗【因为格式转换,所以会损耗5%~10%】=镜像实际大小,所以若used使用百分比超过50%那么就无法在sd中创建此镜像。

二、安装需要的软件 
dosfstools:fat32分区格式化工具 
dump:dump & restore 备份工具 
parted & kpartx:虚拟磁盘工具


sudo apt-get install dosfstools dump parted kpartx  

 

 

三、生成空白img 
根据一里面系统所占用的空间,生成空白的img。

#df为磁盘占用空间

sudo dd if=/dev/zero of=raspberrypi.img bs=1K count=$df  

 

 

 

这也是错误比较多的地方,有人不理解原文中count=2500参数的意义,此参数是用dd命令创建一个大约2.5G的空白镜像,若不使用第一步来算出实际镜像大小的话,制作出来的镜像就会出错

此处注意 
dd命令中【1k=1024b;1KB=1000b;1M=1024kb;1MB=1000kb】

四、分割虚拟磁盘 
我们已将空白的img创建完毕,现在需要通过parted将磁盘分为boot与root区 
通过sudo fdisk -l /dev/mmcblk0得知 
这里写图片描述 
第一个分区为boot分区,采用FAT32格式,由sector 8192开始到sector 12879 
第二个分割区采用EXT4,由sector 122880开始到空白img结尾。


sudo parted raspberrypi.img --script -- mklabel msdos
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1  

 

 

五、挂载虚拟磁盘并格式化

loopdevice:执行 losetup 连接 img 文件的 loop device 
device:执行完 kpartx 后,虚拟磁盘代号。 
partBoot:由 device 加上 p1 组合而成的 FAT32 虚拟磁盘分区。 
partRoot:由 device 加上 p2 组合而成的 EXT4 虚拟磁盘分区。

首先建立虚拟磁盘并分区


loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"  

 

 

然后格式化虚拟磁盘分区


#boot分区用fat32进行格式化
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot  

 

六、开始备份 
boot分区为fat32格式,可以直接利用cp命令直接拷贝


sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media  

 

 

 

linux分区为ext4格式,需要利用dump & restore备份


#跳过raspberrypi.img不备份
sudo chattr +d raspberrypi.img
sudo mount -t ext4 $partRoot /media/
cd /media
sudo dump -h 0 -0uaf - / | sudo restore -rf -
cd
sudo umount /media  

 

这里原文中也有一点bug,用dump进行磁盘备份时,会将之前创建的空白img一并备份进去,通过chattr跳过raspberrypi.img

七、备份完毕,卸载虚拟磁盘 
此时,已将所有数据备份至空白img,此时就可以卸载虚拟磁盘,将img拷贝出保存了。 
然后利用Win32DiskImager或者df命令即可将该raspberrypi.img恢复至sd卡上。


sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice  

 

这里是整理后的脚本,编辑sudo vi backup.sh,复制以下内容,sudo chmod 777 backup.sh,然后sudo ./backup.sh就可以在当前脚本目录中生成树莓派的SD卡镜像了。

 

也可以参考如下shell脚本:


#!/bin/sh
sudo apt-get install -y dosfstools parted kpartx rsync
df=`df -P | grep /dev/root | awk '{print $3}'`
dr=`df -P | grep /dev/mmcblk0p1 | awk '{print $2}'`
df=`echo $df $dr |awk '{print int(($1+$2)*1.2)}'`
sudo dd if=/dev/zero of=raspberrypi.img bs=1K count=$df
sudo parted raspberrypi.img --script -- mklabel msdos
start=`sudo fdisk -l /dev/mmcblk0| awk 'NR==10 {print $2}'`
start=`echo $start's'`
end=`sudo fdisk -l /dev/mmcblk0| awk 'NR==10 {print $3}'`
end2=$[end+1]
end=`echo $end's'`
end2=`echo $end2's'`

sudo parted raspberrypi.img --script -- mkpart primary fat32 $start $end
sudo parted raspberrypi.img --script -- mkpart primary ext4 $end2 -1

loopdevice=`sudo losetup -f --show raspberrypi.img`
device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
device="/dev/mapper/${device}"
partBoot="${device}p1"
partRoot="${device}p2"
sudo mkfs.vfat $partBoot
sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media
sudo cp -rfp /boot/* /media/
sudo umount /media
sudo mount -t ext4 $partRoot /media/
cd /media
sudo rsync -aP --exclude="raspberrypi.img" --exclude=/media/* --exclude=/sys/* --exclude=/proc/*  --exclude=/tmp/* / ./
cd
sudo umount /media
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派镜像备份与恢复文章 的相关文章

  • 为单反拍摄照片批量加入地理位置信息(POS点)和EXIF信息

    很多航测朋友对于照片中没有POS点很是懊恼 xff0c 单反同飞控是分离的 xff0c 照片由单反生成 xff0c 而POS点的数据由飞控生成 对于后期数据处理相当不利 xff0c 尤其是目前对于倾斜摄影的朋友 xff0c 地理位置信息一定
  • 解决angular中的版本问题,Metadata version mismatch for module,found version 4, expected 3

    angular版本问题解决办法 xff1b 第一步 xff1a 查出错误模块的当前安装版本 以 ng bootstrap模块为例 npm list ng bootstrap 第二步 xff1a 查出所有版本号 npm view ng boo
  • python2.7爬取京东商品评论

    大神请绕路 xff0c 新手先别急着上车 我们先来了解一下京东商品评论的地址 xff0c 他们的客户评论看似是在商品页 xff08 item jd com xff09 xff0c 但实际上是在club jd com review 这个url
  • 进入docker容器的方法

    最近想着怎么进入到容器内部 xff0c 然后把里面的配置文件拷贝出来 xff0c 下面是一些操作记录 1 进入docker容器的方法 命令 xff1a docker exec it 容器id bin sh 进入容器后相当于进入了另外一个li
  • spring bean的循环引用

    看过一次spring公开课 xff0c 记录一下bean的循环引用问题 问题 public class IndexService 64 Autowired IndexDao indexDao public class IndexDao 64
  • Excel文本格式怎么出现小三角

    左上角的小三角是文本型数字标志 xff0c 将一列数值的左上角一次性加上绿色的三角标示 就是将常规或数值型的数字改变为文本格式数字 办法 xff1a 选定该列数据 xff0c 点菜单 数据 分列 xff0c 点两次 下一步 xff0c 在
  • docker磁盘占用清理问题

    本文转自http dockone io article 3056 如何清理Docker占用的磁盘空间 编者的话 用了Docker xff0c 好处挺多的 xff0c 但是有一个不大不小的问题 xff0c 它会一不小心占用太多磁盘 xff0c
  • sql exists用法

    转自https www cnblogs com xuanhai p 5810918 html 转载于 https www cnblogs com yongan p 11362595 html
  • 深入了解QtCreator的实用功能

    重构代码 在源代码中搜索 重命名 重排代码格式是原生支持的功能 在代码中右键弹出的菜单中 xff0c 有一个Refactor菜单项 xff0c 根据当前光标位置不同的代码元素 xff0c 具有相应的重构子菜单 xff0c 可以很方便地完成很
  • ubuntu20.04server下安装hadoop2.8.5

    参考Ubuntu下Hadoop安装 xff08 全命令行版 xff09 安装环境 项目名称版本电脑硬件Huwei Matebook X Proi7 8550U 16G 512G操作系统Windows 10家庭中文版虚拟机VMware Wor
  • 几个VS/QT常见错误解决方法

    X86与X64冲突 问题 1 gt Qt5Widgetsd lib Qt5Widgetsd dll fatal error LNK1112 模块计算机类型 X86 与目标计算机类型 x64 冲突 解决方法 在Qt VS Tools里添加正确
  • NMAKE编译CTK

    NMAKE编译CTK 启动编译环境 从VC中启动命令行或通过VC提供的批处理启动命令行 xff0c 以能运行编译环境 如果装了多个VC版本 xff0c 注意使用想要的VC版本启动安装编译环境 外链图片转存失败 源站可能有防盗链机制 建议将图
  • VERILOG实现四位七段数码管显示

    filename dyp v author lyq Date 2016 3 2 9 36 Lattice XP2 17 DEMO BOARD 4位七段带小数点数码管显示控制模块 clk 50M d1 d4 d 7 dp d 6 0 ASCI
  • 网络编程一些重要的面试题

    为什么需要三次握手 xff1f 答 xff1a 三次握手的目的是 为了防止已经失效的连接请求报文段突然又传到服务端 xff0c 因而产生错误 xff0c 这种情况是 xff1a 一端 client A发出去的第一个连接请求报文并没有丢失 x
  • XILNIXSDK2018为FreeRTOS增加配置项的方法

    在安装目录下找到目录 xff1a SDK 2018 1 data embeddedsw ThirdParty bsp freertos10 xilinx v1 0 data 然后通过两个步骤来完成配置项的增加 1 编辑文件 freertos
  • STM32F系列USART的IDLE中断要注意了

    只是调用USART ClearITPendingBit之类的方法是清除不了中断标志的 xff0c 必须必须在调用USART GetITStatus之后调用 USART ReceiveData xff0c 因为IDLE被搞成了一个帧 xff0
  • STM32库USART_ITConfig的坑

    USART ITConfig只能使用一个中断标志 xff01 看看中断参数的定义 xff1a define USART IT PE uint16 t 0x0028 define USART IT TXE uint16 t 0x0727 de
  • 最强大易用的开源MODBUS库-YMODBUS,包含MASTER/SLAVE

    无论是MASTER或SLAVE xff0c 构建MODBUS应用都极其简单 xff0c 可通过设置Master为Slave的Player轻松实现MODBUS网关 项目使用C 43 43 11编写 xff0c 支持多线程 xff0c 可在WI
  • keil5 添加注释说明模板

    我们使用 Keil uvision5 编写代码时 xff0c 为了规范代码 xff0c 一般会在文件开头对本文件进行注释说明 xff0c 同时我们也会在函数的开头对函数进行说明 但 Keil5 集成开发环境中没有这些注释模板 xff0c 而

随机推荐

  • Putty 使用记录

    Putty 显示时间戳 需要三个软件 Putty xff0c ExtraPuTTY xff0c mtputty Putty用来提供基本功能 ExtraPuTTY用来提供时间戳功能 mtputty用于多链接多页面显示 ExtraPuTTY中的
  • 学习java方面的一点收获

    学习JAVA方面的收获 经过将近两年的时间学习java xff0c 觉得在java方面有比较大的收获 在学习和实践过程中逐渐对代码习惯 软件思维都有比较进一步的了解 java语言的纯面向对象 平台无关性是java能够得到比较多的程序开发者的
  • ROS使用catkin_make编译指定功能包

    指定要编译的功能包 xff08 多个用分号相隔 xff09 catkin make DCATKIN WHITELIST PACKAGES 61 34 需要单独编译的包名 34 但是如再次使用catkin make编译所有功能包时会出现仅仅只
  • python中_、__、__xx__(单下划线、双下划线等)的含义

    默认情况下 xff0c Python中的成员函数和成员变量都是公开的 相当于java中的public xff0c 或者OC中定义在 h文件中的公开成员变量 在python中没有public private等关键词来修饰成员函数和成员变量 为
  • 龙芯1B核心板使用alsa音频播放设置,aplay播放

    龙芯1B核心板是默认启用alsa音频工具的 只需要进行一些配置就能使用 1 先检查你的板子的alsa工具是否正常 aplay l 可以查看 xff0c 是否已正确安装音频驱动 如果正常 xff0c 能看到你的音频驱动的信息 可能会出现 xf
  • centos 64bit安装arm-none-linux-gnueabi交叉编译工具链

    xfeff xfeff yum install glibc i686在centos中安装arm none Linux gnueabi有两种方法 xff0c 一种是apt get 安装容易但是不易成功 xff0c 一种是下载压缩包或安装程序
  • 旋转矩阵和欧拉角

    欧拉角介绍 旋转可以参考两种坐标系 内部坐标系 XYZ 角度 外部坐标系 xyz 角度 不考虑参考坐标系情况下 按照旋转方式可以分为两种 Proper Euler angles z x z x y x y z y z y z x z x y
  • SIP 鉴权 & HTTP 认证

    sip 鉴权是基于摘要签名认证的 具体来说 每一个用户都有一个用户名和密码 用户名和密码在客户端和SIP 服务器的数据库中都有保存 在认证的过程中 客户端将自己的信息 用户名 密码 url 等信息 做一些复杂的MD5 或者SHA256 SH
  • ROS——TF坐标变换

    TF功能包 创建功能包 cd catkin ws src catkin creat pkg learning tf roscpp rospy tf turtlesim 如果此时依赖包已有tf xff0c 后文中CMakeLists文件中的f
  • Gazebo——仿真平台搭建(基于Ubuntu20.04)

    目录 Gazebo安装配置 创建仿真环境 仿真使用 Rviz查看摄像头采集的信息 Kinect仿真 问题解决 xff1a 1 gazebo SpawnModel Failure model name mrobot already exist
  • 单片机要学多久可以找到工作?能找到哪类的工作

    单片机学多久能工作 单片机学好了能应聘什么工作 xff1f 从事单片机开发10年 xff0c 我见证了这个行业的成长 xff0c 最明显的就是这几年的工资涨幅 大家好 xff0c 我是小哥 xff0c 10年前我还是个对前景充满憧憬的小屌丝
  • 互联网企业部分面试笔试真题以及考察知识点总结(一)

    1 static的作用 1 1用static关键字修饰的静态变量 静态变量属于类 xff0c 在内存中只有一个复制 xff0c 只要静态变量所在的类被加 载 xff0c 这个静态变量就会被分配空间 1 2 static成员方法 Java中提
  • 史上最全网址导航大全,让世上没有找不到的好东西

    收录的导航网址大全 好用和常用的网址几乎都在里面 个人喜欢往浏览器书签收藏夹里塞喜欢的干货和网站 xff0c 以至于收藏夹里有着几千条网址 xff0c 所以比较喜欢导航 xff0c 但是浏览器原生自带的导航又太low 所以一般自己设置打开浏
  • HTTP的认证方式之DIGEST 认证(摘要认证)

    核心步骤 xff1a 步骤 1 xff1a 请求需认证的资源时 xff0c 服务器会随着状态码 401Authorization Required xff0c 返回带WWW Authenticate 首部字段的响应 该字段内包含质问响应方式
  • 相机标定评价标准

    相机标定的实验一般根据图像数据的类型分为两种 xff1a 1 仿真实验 2 实际场景的操作性实验 目前为止 xff0c 还没有形成一套完善的用于评价相机标定方法的标准体系 xff0c 通常采用的评价准则如下 xff1a 1 标定方法是否具有
  • ubuntu下串口工具的安装与使用

    1 概述 作为一个嵌入式开发人员 xff0c 串口是开发过程中不可或缺的工具之一 xff0c window下有各种各样的串口工具 xff0c 使用起来很方便 xff0c 这里不再做过多陈述 xff0c 这里主要介绍Ubuntu 16 04
  • Ubuntu查看文件大小或文件夹大小

    Ubuntu查看文件大小或文件夹大小 一 查看文件大小 查看文件大小的命令 xff1a ls l filename 会在终端输出 xff1a rw r r 1 root root 2147483648 Mar 5 09 39 filetem
  • 结构体数据对齐

    结构体数据对齐 结构体数据对齐 xff0c 是指结构体内的各个数据对齐 在结构体中的第一个成员的首地址等于整个结构体的变量的首地址 xff0c 而后的成员的地址随着它声明的顺序和实际占用的字节数递增 为了总的结构体大小对齐 xff0c 会在
  • 2016你配得上更好地自己

    传统里我一直觉得过完春节才是一年结束的时候 xff0c 但是现在慢慢习惯阳历的计算 xff0c 2017年1月1日 xff0c 看着空间里面新年祝福和期待 xff0c 突然觉得这才是过年 2016年就这样走了 xff0c 以后我再也回不到2
  • 树莓派镜像备份与恢复文章

    在做完下属步骤以后 xff0c 需要考虑分区表 xff0c 将分区表复制到镜像里 xff0c 否则系统无法启动 xff0c 而且还要回利用gparted dev loop0以及fdisk l dev loop0等命令 xff0c 查看分区类