关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
服务器运维:Ubuntu系统备份还原教程
[复制链接]
作者:
二马三水
版块:
›
嵌入式操作系统
›
linux
发布时间:
2020-5-19 20:06:06
1232
0
返回列表
二马三水
当前离线
中级会员
中级会员, 积分 316, 距离下一级还需 184 积分
中级会员
中级会员, 积分 316, 距离下一级还需 184 积分
积分
316
发消息
楼主
电梯直达
二马三水
发表于 2020-5-19 20:06:06
|
只看该作者
|
倒序浏览
|
阅读模式
一、备份
很多人有备份系统的习惯,以防系统挂。Windows下可以用DISM创建一个系统镜像,在Ubuntu下,我们可以使用squashfs-tools创建系统镜像。
服务器运维
准备工作
可启动LiveCD一份,这个类似于你备份Windows需要WinRE/PE一样。
一个Linux可以访问分区(相信大部分文件系统都可以),但不可以是系统所需要的分区,比如/ /home /var /usr /tmp,这就好比你不能将你的Windows系统镜像放在C盘一样。
重新启动计算机,进入LiveCD,启动菜单选择试用Ubuntu(Try Ubuntu)。locale=zh_CN.UTF-8。
按Ctrl+Alt+T打开终端。
输入sudo -s获得root权限。
输入fdisk -l查看当前分区状况。
在这里,我的分区设定是:
/dev/sda1是EFI系统分区,因为我这是EFI+GPT引导。(有人会奇怪为什么没有Microsoft Reserved微软保留分区,这是因为我的磁盘不是在Windows下进行分区的,故没有)。
/dev/sda2是根文件系统(/)
/dev/sda3是/home分区。
/dev/sda4是额外的数据盘,我们将会把系统镜像文件保存在这个分区上。
服务器运维:
挂载分区
终端输入mount /dev/sda2 /mnt,挂载根分区。
如果您在分区的时候单独分了/boot分区的话,请接着输入mount /dev/xxx (你的boot分区标识)/boot。
在这里,我分了efi分区,即/boot/efi(大部分状况下是这个),所以我要输入mount /dev/sda1 /boot/efi(如果您既分了/boot又有/boot/efi,请一定先挂载boot后挂载efi,顺序千万不能反)。
然后挂载home分区mount /dev/sda3 /home(如果您没有设定单独的home分区不需要挂载,如果您不想保存home的内容也可以不挂载)。
如果您还设置了别的分区,比如/var /usr /tmp之类,请模仿上面的方法挂载。(/tmp可以选择不挂载,但是/usr必须挂载,不挂载还原后系统出现问题本人不负责,/var最好也要挂载,不挂载还原后系统也有可能会出问题)。
终端窗口不要关,现在,我们打开文件管理器nautilus。
选择「其他位置」,点击数据盘进行挂载。
好了我们现在已经挂载了。
右击分区名称(「28GB卷」那个),选择属性。
记住它的路径(这里是/media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02)。
服务器运维:正式备份系统
在极少数情况下,一些LiveCD会没有squashfs-tools,这就需要您手动安装。
终端输入mksquashfs/mnt
/media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs(文件名任意)
备份好了之后,最好输入一下sync,让系统保存数据。
卸载分区(按照其他分区(homevarusr之类)——efi分区——boot分区——根文件系
统的顺序来卸载,每个人的情况都不太一样)
umount/mnt/home
umount/mnt/boot/efi
mount/mnt
最后卸载数据盘,就是保存镜像文件的那个。
大功告成。
重启之前还是建议再sync一下,养成好习惯(毕竟Linux有延迟写入功能)。
二、还原
先说一下,你在Windows下还原系统,大部分情况下直接还原然后重启就OK了,但是在
Linux下,你还原之后还需要处理一下系统,不然会无法启动。
获得root权限(sudo-s),查看分区状况。(如果您已熟知可以不用)
分区状况sda1是efi,sda2是根,sda3是home,sda4是数据盘。
格式化
第二步和备份不一样,现在不需要挂载。
因为我根分区和home都是ext4分区,所以我输入
mkfs.ext4/dev/sda2
mkfs.ext4/dev/sda3
先格式化,如果你想保留home的内容可以选择不格式化。如果你有varusr之类请也格式
化。
(如果你采用了其他格式格式化分区,请使用别的命令,比如xfs是mkfs.xfs)
数据盘别格式化,不然就23333了。
建立临时目录
mkdir/recovery(命名可以随意,只要你后面能对的上)
挂载数据盘
挂载方式请参考上文。
同样记住它的编号。
挂载镜像文件
mount-oloop
/media/ubuntu/1cbd9938-ef7a-42ff-a788-213c30db4f02/backup.sfs/recovery
挂载镜像并创建必要文件夹。
挂载根分区mount/dev/sda2/mnt
根据需要建立文件夹:
mkdir/mnt/boot
mkdir/mnt/boot/efi
mkdir/mnt/home
修改权限
确保所创建的文件夹权限是这样。
复制文件
cp-a/recovery/*/mnt
复制好之后输入umount/recovery,这是为了卸载squashfs镜像。
有人会问为什么不用unsquashfs,这是因为unsquashfs解压之后会把文件解压到
squashfs-root文件夹。
挂载虚拟文件系统,这是为了后面修复引导做准备。
mount--obind/dev/mnt/dev
mount--obind/proc/mnt/proc
mount--obind/sys/mnt/sys
mount--obind/run/mnt/run(这一步可以省略)
chroot进入已经还原的操作系统。
chroot/mnt
查看当前UUID
由于我们格式化了分区,所以UUID发生了变化,若不修改,系统将无法正常挂载分区,导
致启动异常。故我们需要修改本机系统的UUID设置。
当前终端不要关闭,新建一个终端,输入blkid。
上面已经说过,sda1是efi,sda2是根分区,sd3是home。
记下他们的UUID。如果您分了别的分区比如bootvarusr,也需要记下,等会要用。
修改本机UUID设置
返回原来的终端(已经chroot/mnt的那个),输入nano/etc/fstab。
如果nano没有安装,那么请输入vi/etc/fstab。
如果您用的是vi,那么需要按i进入编辑模式。
修改UUID(最新UUID在另一个窗口有)。我这里需要修改/和/home的,你的状况可能
会和我不一样,如果您只分了根分区,那么只需要修改根分区的UUID就行。如果分了var
usr之类,这些也要更改。
修改后按Ctrl+x退出。vi是先按esc,再输入:wq(冒号不能少!),然后回车。
更新GRUB
因为UUID被改动,所以我们需要更新GRUB。
输入grub-install/dev/sda(sda是你主硬盘的位置)
再输入update-grub。
退出chroot并卸载文件系统。
输入exit退出chroot。
然后输入:
umount/mnt/dev
umount/mnt/sys
umount/proc
umount/run
输入sync存盘。
还原结束。
重启。
更多的IT技巧信息尽在艾锑无限
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
超详细的PyCharm教程,必须收藏!
•
说说鸿蒙操作系统
•
Linux操作系统应用试题
•
LinuxPC登陆天河二号基础操作
•
缅怀那些年盗版XP系统:不仅埋葬了我的青春,还弄坏了我的电脑
•
INTEWELL案例为智慧风电保驾护航
•
怎样参与鸿蒙?
•
风河正在引领RTOS进入“现代化”创新期
•
Android面试必备:System、App、Activity启动过程
•
麒麟操作系统什么来头?为什么可随中国航天“上天”
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表