Linux系统备份与还原
linux下如何制作ext4文件系统镜像
- 生成一个空的2MiB文件
dd if=/dev/zero of=rootfs.ext4 bs=1024 count=2048 (指定每一块大小为1024字节,一共又2048块,那么就是2048 * 1024 B = 2MiB) dd if=/dev/zero of=rootfs.ext4 bs=1024 count=4096000
- 对生成的文件进行格式化
mkfs.ext4 rootfs.ext4
- 挂载此空镜像
mount -o loop rootfs.ext4 /mnt
- 向挂载好的文件系统中写入需要加入的文件
cp everyfile /mnt
- 卸载根文件系统(意味着镜像已经制作完成)
umount /mnt
- 将镜像写入sd卡的某个分区中
dd if=rootfs.ext4 of=/dev/mmcblk0p3
7.此时挂载一下sd卡的某分区即可在发现刚才复制进去的文件
tar备份还原
# 下面是我用来备份系统的完整命令:
tar cvpzf backup.tgz –exclude=/backup.tgz –exclude=/proc/* –exclude=/sys/* –exclude=/dev/* –exclude=/tmp/* –exclude=/lost+found –exclude=/mnt /
# 也可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:
tar cvpjf backup.tar.bz2 –exclude=/backup.bz2 –exclude=/proc/* –exclude=/sys/* –exclude=/dev/* –exclude=/tmp/* –exclude=/lost+found –exclude=/mnt /
# 恢复系统
tar xvpfz backup.tgz -C /
tar xvpfj backup.tar.bz2 -C /
rsync备份还原
注意目标分区的格式最好是NTFS、FAT、EXT之类的格式,避免遇到大于4G的文件无法备份的问题。
#最好有其他分区或外接存储设备,挂载好,df -lh看挂载点。
#备份
rsync -Pa / /media/usb/backup_20170410 --exclude=/media/* --exclude=/sys/* --exclude=/proc/* --exclude=/mnt/* --exclude=/tmp/*
#恢复
rsync -Pa /media/usb/backup_20170410 /
sudo rsync -avz --delete /mnt/backup/ --exclude=/mnt/disk0 --exclude=/mnt/backup --exclude=/dev --exclude=/proc --exclude=/tmp --exclude=/sys --exclude=/lost+found /
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。