ubuntu系统备份还原(迁移)到另外一台电脑上
ubuntu系统备份还原(迁移)到另外一台电脑上
主要参考如下博客:
https://blog.csdn.net/zeg635702733/article/details/53992224
https://blog.csdn.net/qq_35523593/article/details/78545530
系统:ubuntu16.04.4LTS
1.首先用U盘制作一个Ubuntu16.04.4LTS的系统启动盘。
2.备份原理就是将系统文件压缩打包,还原就是解压压缩包。
由于Linux系统所有都是文件,只需要将系统打包即可。有些文件是系统运行中所产生的文件以及临时文件,可以不用打包。第一种打包方式,直接在Linux系统下压缩打包(发现tar在打包最后会报错,不会有影响)。
在新电脑上使用Live USB,其实就是刚刚用U盘做的系统启动盘,进入使用ubuntu。进入试用Ubuntu后,先获取root权限,sudopasswd root,更改root密码后,然后切换root用户。su root。
第二种打包方式(推荐使用),使用Live USB,其实就是刚刚用U盘做的系统镜像,进入试用,跟上面操作一样,然后再进行打包。
这两种都是亲自测试过,都可以。
挂载备份的系统硬盘.可以使用fdisk -l(比如root权限)查看硬盘号,确认那个是作为还原系统的硬盘。
3.对新硬盘先进行分区,如果未对硬盘进行分区过,硬盘是不会被挂载的。可通过sudo blkid,会告诉你有一块无法识别文件类型的硬盘。把新硬盘进行分区,建议分区要跟备份的那台电脑分区一致,也可不一致。(跟第五步有关系)
备注:通过LiveUSB只进行分区,发现把后面的步骤做完,电脑会提示找不到这块硬盘,这个没找到原因,希望看完这篇博客,并尝试解决的,欢迎在下面留言。不过本人是通过彻底装完系统后,将它的所有的分区文件全部替换掉。
4.备份系统(内容来源:https://blog.csdn.net/qq_35523593/article/details/78545530
)linux秉承一切皆文件的思想,系统备份就相当于把整个/(根目录)所有文件打包压缩保存。
备份前先切换到root用户,避免权限问题,然后切换到/(根目录)。
tar -cvpzf /media/zx/KINGSTON/ubuntu_backup@`date+%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot--exclude=/home --exclude=/lost+found --exclude=/media --exclude=/mnt--exclude=/run /
下面解释一下上面这条命令。tar就是一个打包命令。
打包文件放在的目录及打包文件名字。
* /media/zx/KINGSTON/ubuntu_backup@date+%Y-%m+%d.tar.gz
这里用了一个shell命令date+%Y-%m+%d用于获取当前时间,因为备份嘛,注明时间戳还是有必要的,然后.tar.gz是说明这个文件是用tar进行打包,gzip进行压缩的。所以要根据你自己情况换为你自己的备份文件目录和文件名。
参数:
-c: 新建一个备份文档
-v: 显示详细信息
-p: 保存权限,并应用到所有文件
-z: 用gzip压缩备份文档,减小空间
-f: 指定备份文件的路径
–exclude: 排除指定目录,不进行备份
Note: 注意–exclude参数,接下来谈谈那些目录没有备份,以及为什么不备份。
我的ubuntu系统,共有四个分区,分别是:/、/home、/boot、swap。
- 非常建议系统备份的时候按照分区进行分别备份,并且也不建议安装系统的时候只给系统分一个分区。有四个分区的好处是,一般系统坏了都是/分区的问题,/home没什么关系,所以这种情况,我可以只还原/分区,其他分区完全可以不用动,系统就可以恢复,会节省很多时间。
- 另外,为了保险起见,也可以对/home和/boot备份,但是备份频率完全没必要和/分区一样高。比如/分区每周备份一次,那/home和/boot完全可以一个月备份一次,因为这两个分区出问题的概率真的很小,而且变动也不会太频繁。
- 请注意,如果没有把/home或者/boot目录单独分一个区,一定不要加–exclude=/home或–exclude=/boot参数!!!
/proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。既然是系统自动创建,也就没必要备份的必要了。
/tmp:一个临时文件夹,系统的一些临时文件会放在这里。
/lost+found:系统发生错误时(比如非法关机),可以在这里找回一些丢失文件。
/media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
/mnt:临时挂载点,你可以自己挂载一些文件系统到这里。
/run:系统从启动以来产生的一些信息文件。
/home:用户家目录,存放用户个人文件和应用程序。
/boot:和系统启动相关的文件,像grub相关文件都放在这里,这个目录很重要!
我再次强调一次,/home和/boot目录我实际也是做了备份的,备份命令和上面差不多,当然你也可以排除一些目录不进行备份,像我/home下面的虚拟机文件,太占空间了。
tar -cvpzf /media/zx/KINGSTON/ubuntu_home_backup@`date+%Y-%m-%d`.tar.gz /home
tar -cvpzf /media/zx/KINGSTON/ubuntu_boot_backup@`date+%Y-%m-%d`.tar.gz /boot
5.替换备份系统配置文件,以及修改启动文件中的UUID:
这一步很重要。如果你的boot,是单独分区,那么你要注意了!!!,你通过live USB,在一台安装好的ubuntu电脑上,进入试用,你看/boot下里面是没有文件的。如果是单独分区的,你通过sudo blkid,并且记住/ /boot /home swap的uuid,并且可以在/etc下的fstab文件里面找到这四个uuid值,文件的信息可自行百度,不在此说明。如果/boot没有单独挂载,那么fstab里面没有/boot的uuid信息。可以看到找到boot的uuid,他是单独挂载,通过uuid值找到挂载点进入单独挂载的boot下,原来启动文件在单独挂载的boot文件目录下。
在新电脑上通过liveUSB,进入试用,将之前备份的压缩包通过U盘拷贝过来,也可直接解压。开始解压
tar -xvpzf /media/zx/KINGSTON/ubuntu_boot_backup@2018-6-30.tar.gz-C
10da9d77-10c2-4978-9065-ed8194f23545(新硬盘的/挂载的uuid值)
mkdir proc tmp lost+found media mnt run
这个 /不是live USB的/ ,而是上面新硬盘的/,他是有uuid的,是单独挂载的。
# It is automatically generated by grub-mkconfig usingtemplates
# from /etc/grub.d and settings from /etc/default/grub
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
if [ x"${feature_menuentry_id}" = xy ]; then
if [ "${prev_saved_entry}" ]; then
setsaved_entry="${prev_saved_entry}"
if [ -n"${have_grubenv}" ]; then if [ -z "${boot_once}" ]; thensave_env recordfail; fi; fi
if [x$feature_all_video_module = xy ]; then
if [ x$feature_default_font_path = xy ] ; then
if [ x$feature_platform_search_hint = xy ]; then
search--no-floppy --fs-uuid --set=root c7f7a223-c4aa-47f7-8f87-70e5c07de8c1
font="/share/grub/unicode.pf2"
if [ "${recordfail}" = 1 ] ; then
if [x$feature_timeout_style = xy ] ; then
# Fallbackhidden-timeout code in case the timeout_style feature is
elif sleep--interruptible 0 ; then
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30,0; then
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ "${recordfail}" != 1 ]; then
if [ -e${prefix}/gfxblacklist.txt ]; then
if hwmatch${prefix}/gfxblacklist.txt 3; then
if [x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 18c7c7d4-062a-4fde-86bc-c14c3d15199b
initrd /initrd.img-4.4.0-31-generic
if [x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 18c7c7d4-062a-4fde-86bc-c14c3d15199b
echo '载入 Linux 4.4.0-31-generic ...'
initrd /initrd.img-4.4.0-31-generic
if [x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 18c7c7d4-062a-4fde-86bc-c14c3d15199b
echo '载入 Linux 4.4.0-31-generic ...'
initrd /initrd.img-4.4.0-31-generic
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry 'Memory test (memtest86+)' {
if [x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 18c7c7d4-062a-4fde-86bc-c14c3d15199b
menuentry 'Memory test (memtest86+, serial console115200)' {
if [x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 18c7c7d4-062a-4fde-86bc-c14c3d15199b
linux16 /memtest86+.bin console=ttyS0,115200n8
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menuentries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
### END /etc/grub.d/41_custom ###
红色为/usr的uuid值,蓝色为/的uuid值,黄色为boot的uuid值。
提醒:如果对grub.cfg这个文件不了解,建议对着备份系统的grub.cfg文件修改,此过程很重要!!!!!!!!!!!!!!
接下来改掉新硬盘的/etc/fstab下面的/,/boot,/home,swap,的uuid值(新硬盘的四个单独挂载uiid值)。
/dev/sda1:UUID="22dc6da0-1ec0-4634-8691-cc83af2aa8f3" TYPE="swap"
/dev/sda2:UUID="e763fea9-65c8-4985-956a-e835125e2ed0" TYPE="ext4"
/dev/sda5:UUID="18c7c7d4-062a-4fde-86bc-c14c3d15199b" TYPE="ext4"
/dev/sda6:UUID="7165cd11-fb03-422c-8fd5-1215d96b1806" TYPE="ext4"
/dev/sda7:UUID="c7f7a223-c4aa-47f7-8f87-70e5c07de8c1" TYPE="ext4"
还有一个分区是/usr的(/dev/sda7:UUID="c7f7a223-c4aa-47f7-8f87-70e5c07de8c1" TYPE="ext4")。
Tar打包方式没有文件权限及其大小局限性,就是耗时间。
这两种方法都是可以的,都是测试过,可以根据自己的具体情况选取。
如有不懂,或者有错误欢迎指出来。本人邮箱:972839018@qq.com
ubuntu系统备份还原(迁移)到另外一台电脑上相关推荐
- mysql数据库迁移到另一台电脑上
解决办法 mysql要转换到另一台机器上面,最重要的要考虑以下几个问题 1.数据库使用什么存储引擎,如果是myisam的话,可以把data目录复制移走.但如果是innodb的话,千万不要用这种方法,会 ...
- mysql从一台电脑迁移_mysql数据库迁移到另一台电脑上
解决办法 mysql要转换到另一台机器上面,最重要的要考虑以下几个问题 1.数据库使用什么存储引擎,如果是myisam的话,可以把data目录复制移走.但如果是innodb的话,千万不要用这种方法,会 ...
- ubuntu下的linux怎样备份文件,Ubuntu系统如何备份还原?Ubuntu系统备份还原教程
Ubuntu系统如何备份还原?Ubuntu系统是一个以桌面应用为主的开源操作系统,专为开发团队而打造!无论你使用的是什么操作系统,都有可能出现电脑无法修复的故障,这时候备份还原功能就显得非常重要了.今 ...
- 360桌面助手待办事项同步/迁移的方法(从一台电脑迁移到另外一台电脑上)
自己的电脑升级,需要把各种数据迁移过来,最难办的是迁移 各种软件的配置,数据信息,例如搜狗输入法用户词库等.这个搜狗输入法提供了导出词库,再导入的功能.360的桌面助手很好用,作者添加了很多待办事项, ...
- Ubuntu系统备份还原教程
一.备份 很多人有备份系统的习惯,以防系统挂.Windows下可以用DISM创建一个系统镜像,在Ubuntu下,我们可以使用squashfs-tools创建系统镜像. 准备工作 可启动LiveCD一份 ...
- 将mysql数据库拷贝到另一台机器_mysql数据库迁移到另一台电脑上
解决办法 mysql要转换到另一台机器上面,最重要的要考虑以下几个问题 1.数据库使用什么存储引擎,如果是myisam的话,可以把data目录复制移走.但如果是innodb的话,千万不要用这种方法,会 ...
- mysql 自动备份数据库数据到另一台电脑上(u盘或者移动硬盘上)
下载MySQL Tools for 5.0这个工具,连接服务器上的mysql生产数据库,然后进入界面,选择backup,设置基本的配置,选择一个保存路径,就可以实现备份,创建过程如图过程:
- python迁移到另一台电脑上_如何将一个Jupyter笔记本导入到另一个笔记本
是的,如果你想的话,你可以把这些代码添加到笔记本上.在 是的,你不应该这样做作为一个普遍的解决方案.在 笔记本是一个复杂的结构,正如在文本细节中所暗示的那样(我认为它是JSON).它可以包含pytho ...
- ubuntu系统备份和还原_如何使用Aptik在Ubuntu中备份和还原您的应用程序和PPA
ubuntu系统备份和还原 If you need to reinstall Ubuntu or if you just want to install a new version from scra ...
最新文章
- 这几本豆瓣高分设计好书,人人都应该读!
- 初学python还是swift-Swift 势必取代 Python?
- C# 笔记 .net与C#简单说明
- linux中postscript如何生成,【转载】如何为Linux生成和打上patch
- java servlet接口开发_servlet三种实现方式之一实现servlet接口
- 智能会议系统(7)---实时音视频技术难点及解决方案
- popstate_详解HTML5之pushstate、popstate操作history,无刷新改变当前url
- 200 300的完数 c语言,C语言求完数(完全数)(详解版)
- 整理了一个目录,督促自己写文章
- python游戏编程讲解之凯撒密码
- Android setLayoutparams失效几个原因
- 硬核拆台!宏彦获水,一脸懵逼:百度李彦宏遭当众泼水,一开始肇事者就在全程直播!!
- 解决d3dx9_35.dll丢失找不到
- Python+Pgzrun制作打飞机游戏(附源码)
- html scale属性,scale() | CSS属性参考
- 【安骑士】配置不进行基线检测方法
- python是什么邮箱_python发邮件详解,smtplib和email模块详解
- 获取本地json文件
- 量纲对回归结果的影响_应用回归分析-第3章课后习题参考 答案.doc
- JAVA8 十大新特性详解