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