码迷,mamicode.com
首页 > 系统相关 > 详细

ubuntu系统备份与还原

时间:2016-06-26 01:46:20      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:

http://xing.rocks/2015/03/06/ubuntu%E7%B3%BB%E7%BB%9F%E5%A4%87%E4%BB%BD%E4%B8%8E%E8%BF%98%E5%8E%9F/

前段时间电脑出了问题,要换台电脑工作,要在Ubuntu系统上搭建一个完善的工作环境挺费劲的,而且上面还有正在做的一个网站。因此,需要备份整个系统。
Ubuntu系统备份现在还没有一个很好的软件,但是由于Linux中一切皆是文件,所以直接用tar打包个系统即可。在网上有一些比较好的例子,例如落花往事的博客.如果在备份中tar报错,自己根据提示信息排除特定文件夹即可。另外,备份前可以先关闭mysql之类的服务,防止程序运行导致备份时出差错。本篇记录的是自己在还原过程中出现的错误以及解决方法。

一、备份系统

1
2
sudo -s
tar cpzPf ubuntu.tgz --exclude=/proc --exclude=/lost+found --exclude=ubuntu.tgz --exclude=/mnt --exclude=/sys --exclude=/home/xing/VirtualBox\ VMs/ --exclude=/home/xing/.cache /

参数:                                

  • -c :建立一个压缩文件的参数指令(create 的意思)
  • -p :使用原文件的原来属性(属性不会依据使用者而变)
  • -z :同时具有gzip的属性,即使用gzip压缩
  • -v :压缩的过程中显示文件
  • -f :使用档名
  • -P :使用绝对路径来压缩
  • —exclude FILE:排除的文件目录
    记得在打包过程中出现错误的文件目录要自行排除

二、还原系统

安装新系统后,先先备份/boot和/etc/fstab,前者是记录了开机boot选择的信息,后者记录了
分区挂载信息,变了就无法进入系统了。
然后将ubuntu.tgz拷贝到根目录,运行命令:

1
2
sudo -s
tar xvpfz ubuntu.tgz -C /

最后将备份的/boot和/etc/fstab复原

三、分区挂载

第一次没有经验,还原时没有备份fstab文件,导致开机后无法以原来的用户的挂载点消失,无法
进入系统,因此要重新改写fstab文件。 开机后进入登陆界面,按Ctrl+Alt+F1进入后台,然后就
可以用root权限操作了。

1. 首先,查看分区信息和磁盘类型:
1
2
sudo fdisk -l
sudo blkid

技术分享

2. 然后,根据/etc/fstab格式修改

配置文件包含以下几项:

file system、 mount point、 type、options、dump、pass

  • system:分区定位,UUID 例如:/dev/sda5的是UUID=f00318bf-f572-4b9d-adcf-5d583c449b08
  • mount point : 具体挂载点的位置,例如:/boot
  • type : 磁盘类型,linux分区一般为ext4,windows分区一般为ntfs
  • options : 挂载参数,一般为defaults
  • dump : 磁盘备份,默认为0,不备份
  • pass : 磁盘检查,默认为0,不检查
3. 最后,检查挂载是否成功
1
sudo mount -a

如果没有问题,就大告成功了,再次登陆即可进入桌面了。

四、mysql重置密码

用了几天下来,apache、gbrowse、甚至QQ国际版都能很好的运行,目前只发现mysql在终端登陆时出错:
Access denied for user ‘root’@’localhost’ (using password:YES).可能是备份的时候mysql一直在运行,导致一些文件发生了丢失或错误。
使用mysqladmin也无法修改密码。最后找到了一种方法,参考mysql Access denied for user root@localhost错误解决方法总结
方法如下:

1
2
3
4
5
6
7
8
9
service mysql stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;
mysql> FLUSH PRIVILEGES;
mysql> quit
service restart
mysql -uroot -p
Enter password: <输入新设的密码newpassword>

其中核心的一点就就是参数—skip-grant-tables,即不使用密码也可以登陆mysql;—user
=mysql是以mysql用户身份运行,—skip-networking是只在本地运行,不必监听网络端口。然后就可以在
mysql表中更改用户密码了,最后成功登陆。

ubuntu系统备份与还原

标签:

原文地址:http://www.cnblogs.com/sinceyou/p/5617194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!