Posts Ubuntu16系统的备份与迁移
Post
Cancel

Ubuntu16系统的备份与迁移

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

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

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

部分图片引自IT之家,侵删。

硬件需求

Ubuntu系统U盘(livecd

备份数据的移动硬盘

备份过程

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

1
2
sudo su
fdisk -l

显示分区情况: 图片2 其中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模式,查看分区情况: 图片3 假设分区情况如上:/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

新建homeboot文件:

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

然后拷贝之前的fstabgrub.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

更改两个UUIDctrl+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

重启即可

This post is licensed under CC BY 4.0 by the author.