前言
关于ubuntu系统的备份与恢复,网上资料很多,但多是错误或者不全的。这里介绍一下正确的系统备份与恢复的步骤,也可以在不同的电脑上拷贝自己的系统。
值得注意的是,为了系统恢复的方便,自己系统的分区为:主分区(/),home分区(/home),交换空间,以及boot分区(boot)。这里进行了分别备份,以供不同的恢复需求。采用的是livecd的恢复方式,因为自己用tar方式备份,直接删除文件有错误,所以直接用livdcd的方式。
PS:这里没有考虑efi系统分区,实际步骤类似,但是对不支持efi分区的电脑就会出错。
ubuntu和windows双系统的安装请参照 Ubuntu16.04+Win10双系统的安装
硬件需求
Ubuntu系统U盘(livecd)
备份数据的移动硬盘
备份过程
启动过程中从U盘启动,采用试用Ubuntu系统的方式,进入livecd模式
进入root模式:
$sudo su
#fdisk -l
显示分区情况:
其中boot分区为/dev/sda5,home分区为/dev/sda7,主分区/为/dev/sda8。
分别进行挂载:
#mount /dev/sda5 /boot
#mount /dev/sda7 /home
#mount /dev/sda8 /mnt
再对移动硬盘进行挂载:
#mount /media/ubuntu/移动硬盘对应盘符 /data
进行备份:
#mksquashfs /mnt /data/ubuntu_main.sfs(文件名任意)
#mksquashfs /home /data/ubuntu_home.sfs(文件名任意)
#mksquashfs /boot /data/ubuntu_boot.sfs(文件名任意)
#sync(让系统保存一下数据)
卸载硬盘:
#umount /data
#umount /mnt
#umount /home
#umount /boot
到此备份成功。
恢复系统
恢复系统指的是将一个系统完全恢复成之前的状态,采用tar命令恢复系统只能覆盖原有文件,无法删除文件,而采用livecd的方式则可以完全恢复成指定的系统。
先要对之前的启动文件和分区文件做一个备份,分别为/etc/fstab,/etc/fstab.d(可能没有),/boot/grub/grub.cfg:
#cp /etc/fstab /media/用户名/移动硬盘对应盘符/
#cp /boot/grub/grub.cfg /media/用户名/移动硬盘对应盘符/
接下来进行恢复系统,同样利用系统u盘进入livecd模式。同样进入root模式,查看分区情况:
假设分区情况如上:/dev/sda1为boot分区,/dev/sda2为主分区,/dev/sda3为home分区。对home分区和主分区进行格式化:
#sudo su
#mkfs.ext4 /dev/sda2
#mkfs.ext4 /dev/sda3
然后分别进行挂载:
#mount /dev/sda2 /mnt
新建home和boot文件:
#mkdir /mnt/home
#mkdir /mnt/boot
挂载其他两个盘:
#mount /dev/sda1 /mnt/boot
#mount /dev/sda3 /mnt/home
挂载数据盘:
#mkdir /rescovery/mnt
#mkdir /rescovery/home
#mkdir /rescovery/boot
#mount -o loop /media/ubuntu/移动硬盘盘符/ubuntu_main.sfs /rescovery/mnt
#mount -o loop /media/ubuntu/移动硬盘盘符/ubuntu_home.sfs /rescovery/home
#mount -o loop /media/ubuntu/移动硬盘盘符/ubuntu_boot.sfs /rescovery/boot
复制文件:
#cp -a /recovery/mnt/* /mnt
#cp -a /recovery/home/* /mnt/home
#cp -a /recovery/boot/* /mnt/boot
然后拷贝之前的fstab和grub.cfg文件到硬盘:
#cp /media/ubuntu/移动硬盘盘符/fstab /mnt/etc/
#cp /media/ubuntu/移动硬盘盘符/grub.cfg /mnt/boot/grub/
挂载虚拟文件系统,这是为了后面修复引导做准备。
#mount --o bind /dev /mnt/dev
#mount --o bind /proc /mnt/proc
#mount --o bind /sys /mnt/sys
chroot进入已经还原的操作系统。
#chroot /mnt
查看当前UUID
由于我们格式化了分区,所以UUID发生了变化,若不修改,系统将无法正常挂载分区,导致启动异常。故需要修改本机系统的UUID设置,当前终端不要关闭,新建一个终端,输入blkid:
对fstab文件进行格式化两个盘的UUID的更改,在chroot过的端口输入:
#nano /etc/fstab
更改两个UUID,ctrl+x退出,Y保存。进行grub的更新:
#grub-install /dev/sda
#update-grub
退出并卸载盘:
#exit
#umount /mnt/dev
#umount /mnt/sys
#umount /proc
#sync
重启即可