树莓派 系统备份。IMG.

因工作需要,要用PI 做gitlab 服务器做相关工作。gitlab 数据已经做了间隙的备份。但系统还没有做备份。这几天做了N多尝试。

验证了一种可靠的方式 。

系统 为32 的系统 ,超速卡,写50M/S 因为以前16G的卡 速度没有那么 快 10M/S 。因为用gitlab 服务器要有一定相应速度 。

网络备份操作如下。

先行在根目录 建立 jj 文件夹。然后把脚本放到一个位置。这个生成的img 大小是自己定的要根据系统占用空间

自己定义。

       我定义的是8g 目前,因为系统 已经用了7.1.G  不知道怎么用这么多。已经清理垃圾了,虽然用了1g 的交换空间。

#!/bin/sh
sudo dd if=/dev/zero of=raspberrypi.img bs=1k count=8388608
sleep 2
sudo parted raspberrypi.img --script -- mklabel msdos
sleep 2
sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 92159s
sleep 2
sudo parted raspberrypi.img --script -- mkpart primary ext4 92160s -1

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

#jump raspberrypi.img
sleep 2
sudo mount -t ext4 $partRoot /jj/
sleep 2
cd /jj
sudo rsync -aP --exclude="raspberrypi.img"   --exclude=/media/* --exclude=/jj/* --exclude=/sys/*  --exclude=/proc/* --exclude=/tmp/* / ./
cd
sudo umount /jj
sudo kpartx -d $loopdevice
sudo losetup -d $loopdevice

在备份中可能最后一个VAR 可能会中断 ,但好像是好的可能用的。

如果不能用重新把脚本更改下,只挂载,复制 系统文件就好。BOOT 文件一般都是好的。

这个IMG 烧录到别的卡,比如16g卡后,先挂在LINUX 系统下,确认

【相应修改PARTUUID设定】

【相应修改PARTUUID设定】  以下为引用的。

 

这时候整个备份就已经完成了。不过此时的img文件即使写入到空白SD卡里面也是无法启动的,因为Raspbian启动要对应分区的PARTUUID,所以我们还要修改目标img文件里的如下两个文件:

./tgt_boot/cmdline.txt ./tgt_Root/etc/fstab

首先查看img文件对应的loop device的两个分区的PARTUUID

pi@raspberrypi:~/backupimg $ sudo blkid

/dev/mmcblk0p1: LABEL="boot" UUID="E5B7-FEA1" TYPE="vfat" PARTUUID="ddffe93a-01"

/dev/mmcblk0p2: UUID="b4ea8e46-fe87-4ddd-9e94-506c37005ac5" TYPE="ext4" PARTUUID="ddffe93a-02"

/dev/sda2: UUID="9a7608bd-5bff-4dfc-ac1d-63a956744162" TYPE="ext4" PARTUUID="ec04fe79-02pipi"

/dev/loop0: PTUUID="af2f8761" PTTYPE="dos"

/dev/mmcblk0: PTUUID="ddffe93a" PTTYPE="dos"

/dev/sda1: LABEL="boot" UUID="B60A-B262" TYPE="vfat" PARTUUID="ec04fe79-01"

/dev/mapper/loop0p1: SEC_TYPE="msdos" LABEL="boot" UUID="755C-C29C" TYPE="vfat" PARTUUID="af2f8761-01"

/dev/mapper/loop0p2: UUID="a174c97e-049f-4fbd-abb7-0b9098dae24a" TYPE="ext4" PARTUUID="af2f8761-02"

 

这里可以看到/boot对应的是af2f8761-01 , / 对应的是af2f8761-02

 

修改 cmdline.txt 文件

 

pi@raspberrypi:~/backupimg $ sudo vi ./tgt_boot/cmdline.txt

pi@raspberrypi:~/backupimg $ cat ./tgt_boot/cmdline.txt

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af2f8761-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

修改 fstab 文件

pi@raspberrypi:~/backupimg $ sudo vi ./tgt_Root/etc/fstab

pi@raspberrypi:~/backupimg $ cat ./tgt_Root/etc/fstab

proc /proc proc defaults 0 0

PARTUUID=af2f8761-01 /boot vfat defaults 0 2

PARTUUID=af2f8761-02 / ext4 defaults,noatime 0 1

# a swapfile is not a swap partition, no line here

# use dphys-swapfile swap[on|off] for that

 

引用如下

 

以下可做参考 的

 

https://toutiao.io/posts/ivrbq2/preview

树莓派 Raspberry Pi 系统备份 Image 的制作

https://github.com/raspberrypi-ui/piclone

notsure

 

https://blog.csdn.net/u012865381/article/details/77506397

Rsync详解

这个可能管用 。

https://www.cnblogs.com/haochuang/p/6380839.html 最小系统 的再加上手动一步一步最后一步就可以做IMG

 

解释原好【树莓派】制作树莓派最小镜像:img裁剪瘦身

sudo rsync -aP --exclude="raspberrypi.img" --exclude=/media/* --exclude=/jj/* --exclude=/sys/* --exclude=/proc/* --exclude=/tmp/* / ./ cd

no --exclude=/proc/*

 

/proc/sys和/sys目录的区别

https://blog.csdn.net/t0nsha/article/details/8569954?utm_source=blogxgwz1

 

 

https://www.jianshu.com/p/b3ce0d945c7a

制作树苺派SD卡备份镜像——树苺派系统备份与还原指南

可以是用DD命令来做的

 

https://www.jianshu.com/p/c6055f9545fd

backup_system.sh

work .i不过这个文件要在linux 下建立才能正常执行,不然在WIN下建立,不能正常执行。

??????

http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/

那个BOOT相关文件可以支持,但/root目录下没有正常复制结束。不清楚为什么。。

 

为树莓派做系统备份镜像

https://blog.csdn.net/lzjsqn/article/details/58156463

 

最好只按流程做,也就是只复制外部SD 卡系统。

 

http://www.cnblogs.com/haochuang/p/6066532.html

经过以上六步树莓派中的数据文件就全部备份到raspberrypi.img中

 

以上两个试着手动的下命令,看看当时的反应。

http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/

 

https://blog.csdn.net/zhufu86/article/details/78821056

一步一步做。

【相应修改PARTUUID设定】

这时候整个备份就已经完成了。不过此时的img文件即使写入到空白SD卡里面也是无法启动的,因为Raspbian启动要对应分区的PARTUUID,所以我们还要修改目标img文件里的如下两个文件:

./tgt_boot/cmdline.txt ./tgt_Root/etc/fstab

 

首先查看img文件对应的loop device的两个分区的PARTUUID

 

 

pi@raspberrypi:~/backupimg $ sudo blkid

/dev/mmcblk0p1: LABEL="boot" UUID="E5B7-FEA1" TYPE="vfat" PARTUUID="ddffe93a-01"

/dev/mmcblk0p2: UUID="b4ea8e46-fe87-4ddd-9e94-506c37005ac5" TYPE="ext4" PARTUUID="ddffe93a-02"

/dev/sda2: UUID="9a7608bd-5bff-4dfc-ac1d-63a956744162" TYPE="ext4" PARTUUID="ec04fe79-02pipi"

/dev/loop0: PTUUID="af2f8761" PTTYPE="dos"

/dev/mmcblk0: PTUUID="ddffe93a" PTTYPE="dos"

/dev/sda1: LABEL="boot" UUID="B60A-B262" TYPE="vfat" PARTUUID="ec04fe79-01"

/dev/mapper/loop0p1: SEC_TYPE="msdos" LABEL="boot" UUID="755C-C29C" TYPE="vfat" PARTUUID="af2f8761-01"

/dev/mapper/loop0p2: UUID="a174c97e-049f-4fbd-abb7-0b9098dae24a" TYPE="ext4" PARTUUID="af2f8761-02"

 

这里可以看到/boot对应的是af2f8761-01 , / 对应的是af2f8761-02

 

修改 cmdline.txt 文件

 

pi@raspberrypi:~/backupimg $ sudo vi ./tgt_boot/cmdline.txt

pi@raspberrypi:~/backupimg $ cat ./tgt_boot/cmdline.txt

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=af2f8761-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

 

修改 fstab 文件

pi@raspberrypi:~/backupimg $ sudo vi ./tgt_Root/etc/fstab

pi@raspberrypi:~/backupimg $ cat ./tgt_Root/etc/fstab

proc /proc proc defaults 0 0

PARTUUID=af2f8761-01 /boot vfat defaults 0 2

PARTUUID=af2f8761-02 / ext4 defaults,noatime 0 1

# a swapfile is not a swap partition, no line here

# use dphys-swapfile swap[on|off] for that

 

卸载各个挂载的分区

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

作者:zhufu86

来源:CSDN

原文:https://blog.csdn.net/zhufu86/article/details/78821056

版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

为什么都是复制好的。但BOOG目录下就是缺少4.3M空间。

resize2fs

http://www.tyrantek.com/archives/508/

手动。

https://blog.csdn.net/u014645605/article/details/52212622

eMMC 分区管理

 

https://www.zhihu.com/question/55406328

raspberry pi 3 model b(树莓派3b)raspbian系统如何做系统备份

 

http://www.52pi.net/archives/468

完全抛弃TF卡,从USB启动树莓派.

 

Linux系统备份与还原

在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。

在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZIP文件里去呢。这在Windows下是不可能的,因为在Windows中有很多文件在它们运行时是不允许拷贝或覆盖的,因此你需要专门的备份工具对Windows系统进行特殊处理。

和 备份Windows系统不同,如果你要备份Ubuntu系统(或者其它任何Linux系统),你不再需要像Ghost这类备份工具。事实上,Ghost 这类备份工具对于Linux文件系统的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系统,如果你用它来备份Ext3文件系统,你可能会 丢失一些宝贵的数据。

1. 备份系统

我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!

首先成为root用户:

$ sudo su

然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):

# cd /

下面是我用来备份系统的完整命令:

# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /

jiajia

# tar cvpzf backup.tgz –exclude=/backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /

 

jiajia

让我们来简单看一下这个命令:

“tar”当然就是我们备份系统所使用的程序了。

“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。

“backup.gz”是我们将要得到的档案文件的文件名。

“/”是我们要备份的目录,在这里是整个文件系统。

在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。

有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。

执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。

备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。

在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。

你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:

# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /

2. 恢复系统

在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!

接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。

在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!

使用下面的命令来恢复系统:

# tar xvpfz backup.tgz -C /

如果你的档案文件是使用Bzip2压缩的,应该用:

# tar xvpfj backup.tar.bz2 -C /

注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。

执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:

# mkdir proc # mkdir lost+found # mkdir mnt # mkdir sys

等等

当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值