因工作需要,要用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
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
等等
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!