缘起
这一天,朋友A 跑来跟我哭诉 Linode VPS 崩溃了,数据还没备份下来,这可怎么办是好。
万事皆有解决之道,何况是以口碑著称的 Linode 呢。我安抚下A后,静静的翻出珍藏多年的秘技:欲练此功,。。。,额不对,应该是 Linode Library 中的《救援和重建》一章。
以下是中译简版:
拿什么来拯救我的 Linode
一、如何进入救援模式
Linode 提供了 Finnix 恢复盘,相当于 Windows 的安全模式,具体进入 Linode 恢复模式的方法:
1. 打开后台管理面板:https://manager.linode.com/, 选择 Rescue (救援).
2. 点击 Reboot into Rescue Mode, 启动救援模式
3. 这时候会跳转到 Dashboard 页面, 等待机器启动救援模式完成. 这时你将发现旧的 IP 无法 ping 通, 当然也无法 SSH 登陆了.
莫急莫急. 救援模式中 VPS, 需要使用 Lish (通过 Linode 跳板机中转) 登陆. 见下图:
4. 终于进来了, 这时出现下面图案, 说明已经登陆成功.
以上步骤完成了, 救援模式的启动和登陆, 不知道大家记住了没有呢. 下面接着挂载那个系统挂掉的分区, 以做修复.
二、如何挂载分区
何谓挂载, 就是在 Finnix 系统中可以访问待挂载的分区内容. 呵呵, 是不是比较绕. 简单来说, 挂载分区后, 就可以读写数据了. 一条命令足矣:
mount -o barrier=0 /dev/xvda
三、如何备份数据
系统起不来, 又需要备份数据, 那怎么办?
进入 Finnix 救援模式并不能直接 ssh, 所以需要首先启动 SSH 服务, 这就需要获得分区系统的 root 权限了.
1. 这也不难, 祭出 “chroot” 大法.
mount -o exec,barrier=0 /dev/xvda
cd /media/xvda mount -t proc proc proc/ mount -t sysfs sys sys/ mount -o bind /dev dev/ mount -t devpts pts dev/pts/
chroot /media/xvda /bin/bash
OK, 这样你就进入了分区的系统.
2. 依次修改 root 密码, 命令启动 ssh 服务.
passwd
输入新的 root 密码
/etc/init.d/ssh start
完成了, 这样你就可以用 scp 命令把数据迁移走了.
尾声
一阵捣鼓, 系统终于被我恢复原状了, 那么, 问题来了, 怎么恢复正常模式呢?
A: 喂, 当我是白痴呐? 直接管理页面 Reboot 重启呗.
L: 不错, 难得难得….
A: #@$!%!&!@#&
今天突然发现VPS已经无法PING通了…只能挂代理上去,你们有这种情况么?我申请更换IP了,但是还是无济于事。