ECS镜像导出还原
阿里云服务器镜像数据的格式为raw,是一种磁盘镜像格式,包括完整的磁盘逻辑分区数据和磁盘数据。
格式转换
我们使用qemu-img讲raw格式转换为VMware Workstation(以下简称VM)可以识别的格式。
1、 首先进入官网下载软件(下载地址https://www.qemu.org/download/)并安装。
2、 进入qemu-img安装的所在目录,打开CMD或者Windows Power Shell,执行:
qemu-img convert -f raw xxxx.raw -O vmdk xxxx.vmdk
虚拟化工具还原
vmware
1、 首先我们需要确认该系统镜像是Windows还是Linux,使用DiskGenius打开raw或者vmdk,观察目录结构,确认服务器镜像系统。下文将用Linux举例,Windows类似。
2、 打开VM,选择创建虚拟机,选择自定义/高级选项,点击下一步,选择“稍后安装操作系统”,选择下一步,选择Linux选项,选择下一步,选择保存位置,一路下一步,在“选择磁盘”选项时,选择“使用现有磁盘,选择刚刚转换完的VMDK文件,选择保持现有格式,调整需要的硬件参数,点击完成后就可以开机了。
3、 警告:如服务器镜像为CentOS7,请使用Oracle VM VirtualBox进行如上操作。
密码破解
下面将以CentOS7举例破解密码,Windows可使用WinPE破解密码,其余Linux同理。
CentOS 7&RHEL 7与之前的5,6不同的是,当忘记root密码,并采用GRUB2为启动器时,将无法通过单用户模式重置root密码。下面将介绍如何重置CentOS7的root密码。

- 挂载文件系统为可写模式:mount -o remount,rw /
- 运行passwd,并按提示修改root密码。
- 如何之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统:touch /.autorelabel
- 运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启。
附:密码破解的两种方法
CentOS 7&RHEL 7进入单用户方式和重置密码方式发生了较大变化,GRUB由b引导变成了ctrl+x引导。
重置密码主要有rd.break和init两种方法。
rd.break方法:
1、启动的时候,在启动界面,相应启动项,内核名称上按“e”;
2、进入后,找到linux16开头的地方,按“end”键到最后,linux16 只保留 vmlinuz & root=UUID;输入rd.break,按ctrl+x进入;
3、进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;
4、mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限;
5、chroot /sysroot/ 改变根;
(1)echo RedHat|passwd –stdin root 修改root密码为redhat,或者输入passwd,交互修改;
(2)还有就是先cp一份,然后修改/etc/shadow文件;
6、touch /.autorelabel 这句是为了selinux生效;
7、ctrl+d 退出;
8、然后reboot。
至此,密码修改完成
init方法:
1. 启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式;
2. 在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh;
3. 按Ctrl+x启动到shell。
4. 挂载文件系统为可写模式:mount –o remount,rw /;
5. 运行passwd,并按提示修改root密码;
6. 如何之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统:touch /.autorelabel;
7. 运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启。
RDS for mysql 导出还原
使用开源软件Percona Xtrabackup进行备份,所以我们必须使用该软件进行恢复。由于该软件仅提供Linux版本,故我们推荐使用VMware Workstation安装虚拟机进行恢复。安装虚拟机的步骤我们不在赘述。
安装MySQL
在进行恢复RDS数据的时候,我们需要使用对应RDS数据库版本的MySQL版本。
我们解压xxxx.tar.gz,查看文件夹中的xtrabackup_info,中的配置项server_version项写明了版本,我们必须要保证大版本一致才可以正确恢复数据库。安装MySQL步骤不在赘述。
安装Percona XtraBackup
参照https://www.percona.com/doc/percona-xtrabackup 进行安装,此处不在赘述。
使用Percona XtraBackup恢复数据库
对于 tar 压缩包(.tar.gz),使用命令:
tar -izxvf <数据备份文件名>.tar.gz -C /home/mysql/data
对于 xbstream 压缩包(.xb.gz),使用命令:
gzip -d -c <数据备份文件名>.xb.gz | xbstream -x -v -C /home/mysql/data
(说明 -C:指定文件要解压到的目录。可选参数,若不指定就解压到当前目录。)
执行如下命令,查询解压后生成的文件。
ls -l /home/mysql/data
命令执行成功后,系统会返回如下结果,其中蓝色字体为生成备份文件时RDS实例所包含的数据库。
执行如下命令,恢复解压好的备份文件。
Innobackupex —defaults-file=/home/mysql/data/backup-my.cnf —apply-log /home/mysql/data
若系统返回如下类似结果,则说明备份文件已成功恢复到本地数据库。
为避免版本问题,需修改backup-my.cnf参数,具体操作步骤如下。
破解mysql密码
执行如下命令,以文本方式编辑backup-my.cnf文件。
vi /home/mysql/data/backup-my.cnf
执行如下命令,注释掉如下参数。
#innodb_fast_checksum
#innodb_page_size
#innodb_log_block_size
说明 如果本地使用的是MyISAM引擎,和阿里云的InnoDB不兼容,需要多注释掉如下参数并增加skip-grant-tables参数:
#innodb_log_checksum_algorithm=strict_crc32
#redo_log_version=1
skip-grant-tables
按Esc键,然后输入:wq并回车进行保存。
执行如下命令,修改文件属主,并确定文件所属为MySQL用户。
chown -R mysql:mysql /home/mysql/data
执行如下命令,启动MySQL进程。
mysqld_safe —defaults-file=/home/mysql/data/backup-my.cnf —user=mysql —datadir=/home/mysql/data &
执行如下命令,登录MySQL数据库以验证进程启动成功。
mysql -uroot -p<数据库密码>
若系统返回如下结果,进程启动成功,则说明已成功执行参数注释和修改文件属主。
手动配置my.cnf启动方法
RDS备份文件下载完毕后,我们需要对其进行解压。按照阿里云官方文档,我们需要下载阿里云专门的脚本进行解压。
必须说明:RDS的备份文件只能在linux OS上进行的。在windows OS上使用第三方软件解压的话,你会发现看不到任何的文件。
下载RDS解压脚本,使用如下命令:
wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh
使用RDS解压脚本,解压RDS备份文件,如下:
sh rds_backup_extract.sh -f /root/XXX.tar.gz -C /data
**
破解mysql密码
现在我们在/data目录下创建mysql的配置文件my.cnf,如下:
vim /data/my.cnf
[mysqld]
datadir = /data/
port = 3306
server_id = 3
socket = /data/mysqld.sock
max_allowed_packet=32M
log-error = /data/error.log
default-storage-engine=INNODB
skip-grant-tables
my.cnf文件创建完毕后,我们现在来启动mysql。
启动命令如下:
/usr/bin/mysqld_safe —defaults-file=/data/my.cnf &
现在我们可以采用任何方法连接数据库了。
Ubuntu16.04开机进入单用户模式,破解root密码
1.开机按ESC
2.选择ubuntu 高级选项,按enter键进入,移动上下箭头到第三个recovery mode
3.按e 进入编辑模式,删除 recovery nomodeset,在之后添加 quiet splash rw init=/bin/sh
quiet:内核启动时,简化提示信息
splash:加载的时候启动进度条提示,代替init的字符 提示过程
rw init=/bin/bash init进程设为bash
2.ctrl+x启动
3.passwd 修改root密码或者 passwd + 用户名,修改其他用户的密码
4.reboot -f 强制重启,这样你的root密码就已经更改了


