ubuntu系统备份与还原

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表中更改用户密码了,最后成功登陆。

转载于:https://www.cnblogs.com/sinceyou/p/5617194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值