Ubuntu16系统的备份与迁移

前言

关于ubuntu系统的备份与恢复,网上资料很多,但多是错误或者不全的。这里介绍一下正确的系统备份与恢复的步骤,也可以在不同的电脑上拷贝自己的系统。

值得注意的是,为了系统恢复的方便,自己系统的分区为:主分区(/),home分区(/home),交换空间,以及boot分区(boot)。这里进行了分别备份,以供不同的恢复需求。采用的是livecd的恢复方式,因为自己用tar方式备份,直接删除文件有错误,所以直接用livdcd的方式。

PS:这里没有考虑efi系统分区,实际步骤类似,但是对不支持efi分区的电脑就会出错。

ubuntu和windows双系统的安装请参照 Ubuntu16.04+Win10双系统的安装

硬件需求

Ubuntu系统U盘(livecd)

备份数据的移动硬盘

备份过程

启动过程中从U盘启动,采用试用Ubuntu系统的方式,进入livecd模式

Ubuntu16系统的备份与迁移_第1张图片

进入root模式:

$sudo su

#fdisk -l

显示分区情况:

Ubuntu16系统的备份与迁移_第2张图片

其中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模式,查看分区情况:

Ubuntu16系统的备份与迁移_第3张图片

假设分区情况如上:/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:

Ubuntu16系统的备份与迁移_第4张图片

对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

重启即可

 

你可能感兴趣的:(工具,#,环境配置)