系统备份与恢复说明
⚠️注意 : 本文档仅供部门内部参考!不得外发!
1. 0. 准备
待拷贝硬盘数据的工控机、相同规格的硬盘(如需要拷贝数据的硬盘为128G,则需要准备的硬盘也需要为128G。推荐直接使用相同规格型号的硬盘)、一个用于装载ventoy装机引导与放置Ubuntu安装镜像的U盘(建议8G及以上)、一个用于放置系统备份镜像文件的U盘(需要似乎备份系统当前存储数据量,一般使用64G即可)
2. 1. 安装装机引导驱动
以 Windows 10 家庭中文版系统为例
2.1. 1.1下载 Ventoy
Ventoy 使用简单,支持 Windows 和 Linux,这里以 Windows 版为例。
下载地址:https://aubocdn.aubo-robotics.cn/build_system/ventoy-1.0.73-windows.zip
插入U盘,以ventoy-1.0.73-windows.zip 版本为例,解压后运行 Ventoy2Disk.exe 可执行文件,选择你的U盘设备,如下图所示:


点击安装开始Ventoy的安装,需要注意的是,安装的时候,U 盘将会被格式化,里面所有的数据都会丢失, 所以 U 盘里面的文件记得先备份,不要选错 U 盘。
2.2. 1.2 下载 ubuntu 镜像
Ubuntu-14.04.6下载地址:https://releases.ubuntu.com/trusty/ubuntu-14.04.6-desktop-i386.iso
将 ISO 镜像文件拷贝进 U 盘即可, 可以拷贝到 U 盘根目录下, 也可以拷贝到指定目录下. 需要注意的是 ISO 文件名不要有中文, 目录也不要有中文, 也不要将 ISO 文件放到太深层的目录下, U 盘启动盘制作完毕。

3. 2. 检查硬盘状态
root@aubo:/home/aubo# fdisk -l
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000306ce
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 241840127 120919040 83 Linux
/dev/sda2 241842174 250068991 4113409 5 Extended
/dev/sda5 241842176 250068991 4113408 82 Linux swap / Solaris
Disk /dev/sdb: 62.0 GB, 62002298880 bytes
64 heads, 32 sectors/track, 59130 cylinders, total 121098240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd9f0662f
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 121032703 60515328 7 HPFS/NTFS/exFAT
/dev/sdb2 121032704 121098239 32768 ef EFI (FAT-12/16/32)
Disk /dev/sda 是我们需要复制的硬盘
4. 3. 使用 'dd' 命令复制硬盘数据
4.1. 3.1 拷贝硬盘数据
root@aubo:/home/aubo# dd if=/dev/sda | gzip -9 > /media/aubo/AUBO/aubo_disk_backup.img.gz
"if=/dev/sda" 是拷贝的磁盘目录
"/media/aubo/AUBO" 是备份系统文件的U盘路径,需要替换为自己U盘的实际路径。
"aubo_disk_backup.img.gz"是输出的镜像文件名
4.2. 3.2 等待导出完成
5. 4. 导入硬盘数据
5.1. 4.1 更换硬盘
在断电状态下,将新硬盘从工控机中取出并替换为新硬盘。并插入第一步中制作的系统启动盘。
5.2. 4.2 进入BIOS并设置U盘作为系统系统盘
插上键盘,启动示教器,待示教器出现如下图案时

立即连续点击键盘上 Delete 按键直至进入 BIOS 中(不同设备进入 BIOS 的方式不同)

5.3. 4.3 选择引导盘
切换到 Boot 页面,选择 Hard Drive BBS Priorities 回车。

选择启动项 Boot Option #1 切换为插入的 U 盘名称(这里以我插入的 U 盘 Lenovo 为例),回车。

完成设置后,切换到 Save & Exit 选择 Save Changes and Reset ,回车后选择 Yes 示教器关机


5.4. 4.4 重启系统并进入安装引导界面
选择 Try Ubuntu 进入临时Ubuntu系统。

5.5. 4.5 进入纯命令终端
按下 Alt + Ctrl + F1 进入纯命令终端
5.6. 4.6 查询并找到我们需要导入数据的硬盘
输入 sudo fdisk -l 查询工控机上所有的硬盘状态

Disk /dev/sda 是我们需要导入数据的硬盘
5.7. 4.7 解压并导入硬盘数据
注意不要选择其他存储设备,该指令会直接覆盖所有的数据信息!
sudo gizp -c -d /media/ubuntu/AUBO/aubo_disk_backup.img.gz | sudo dd bs=4M of=/dev/sda
"/media/ubuntu/AUBO" 为系统备份文件的存储路径
"/dev/sda" 为我们需要导入数据的硬盘路径
5.8. 4.8 等待导入完成
250068992+0 records in
250068992+0 records out
128035323904 bytes(128 B)copied,4169.43 s,30.7 MB/S
ubuntu@ubuntu:~#
5.9. 4.9 关机并拔出系统引导U盘
输入命令sudo shutdown now,待控制柜准备就绪后重新执行开机流程。
6. 5. 其他
6.1. 5.1 监视拷贝或导入进度
打开新的终端(如按下 Alt + Ctrl + F2)输入下列命令:
sudo watch -n 5 killall -USR1 dd
意为每5秒发出一个信号,此时正在执行拷贝或导入的命令窗口则会输出执行状态。
6.2. 5.2 检查 AuboRobotWorkSpace 拷贝情况
5.2.1 在tryUbuntu中初始化root密码,并进入root模式
输入指令sudo passwd root,系统弹出输入密码提示,键入user + 回车 ;系统要求确认密码,重新键入user + 回车 ,即可完成root密码初始化,此root密码仅在本次tryUbuntu中有效。
然后在命令窗口中键入su+回车,系统要求验证root用户密码,键入user + 回车,即可登陆root用户。

6.3. 5.2.2 挂载硬盘
进入/media/ubuntu/目录下此时系统硬盘并未被挂载至本系统中,此时我们需要通过命令行手动挂载硬盘

输入命令 fdisk -l 获取硬盘信息。通过输出信息我们可以看到 /dev/sdb1 为我们存储文件的硬盘分区路径
输入命令 mkdir /mnt/disk 以创建目录挂载点,然后输入 mount /dev/sdb1 /mnt/disk 将/dev/sdb1这个硬盘分区挂载至/mnt/disk下。
输入指令 cd /mnt/disk/root 进入到硬盘的root文件目录中.
输入find AuboRobotWorkSpace -type f -exec md5sum {} + | md5sum ,将计算结果与给定的文件值进行校验,如一致即可证明 AuboRobotWorkSpace 中文件与备份文件一致。

6.4. 5.3 系统无法正确引导启动
当工控机启动时,显示界面弹出如下报错,则需要修改硬盘uuid以使得系统能够正确引导系统启动。
error: no such device: c1b9d5a2-f162-11cf-9ece-0020afc76f16.
Press any key to continue.
5.3.1 方案一:将新硬盘uuid修改为原硬盘的uuid
sudo tune2fs -U c1b9d5a2-f162-11cf-9ece-0020afc76f16 /dev/sda1
c1b9d5a2-f162-11cf-9ece-0020afc76f16为原硬盘UUID
5.3.2 方案二:修改系统启动文件为新硬盘UUID
root@ubuntu:~# blkid
/dev/sda1: UUID="247709d3-f5ab-4df4-bd10-4a73bd1adf23" TYPE="ext4" PARTUUID="2e731cb7-01"
/dev/sda5: UUID="acb52e0a-456b-42d5-bd1b-3bf3ce12cab3" TYPE="swap" PARTUUID="2e731cb7-05"
然后分别通过命令终端分别打开下面配置文件
sudo gedit /etc/fstab
sudo gedit /boot/grub/grub.cfg
将 c1b9d5a2-f162-11cf-9ece-0020afc76f16 修改为 /dev/sda1 中的”UUID“的值。