SDB:Upgrade Aliyun ECS
更换系统盘
在您的 ECS 处于停止状态时,您可以选择“更换系统盘”,目前可以选择的 openSUSE 只有 openSUSE 13.1 32/64 版本。我们建议更换系统盘到 openSUSE 13.1 64 位版本。
升级系统
在阿里云控制台页面,选择“远程连接”,会 vnc 进入到您新更换的 openSUSE 13.1 64 位版本。
在升级系统前,我们需要先备份以下几样东西(可以用手机拍照):
- ifconfig -a 里面 eth0 的 IP 地址和 netmask。ip 地址一般是你的私有 IP 也就是内网 IP。而阿里云的 netmask 是 255.255.240.0。
- /etc/resolv.conf 里面的 dns。
- route -n 的结果。(重要!)
如果这些没有备份的话,恐怕您就要重新来过了。
然后运行 zypper lr 列出全部软件源,然后再 zypper rr 一个一个删除掉。
接着添加软件源,可以去 http://download.opensuse.org 查找,我用的是 tumbleweed 的源:
http://download.opensuse.org/tumbleweed/repo/oss http://download.opensuse.org/tumbleweed/repo/non-oss
然后运行 zypper dup 升级。
升级后先****不要重启****,运行一下 yast, 选择 network settings 进去,会提示你安装 SUSEFirewall2,选择安装。
然后就可以去控制台重启了。
网络设置
重启之后,我们需要进入 yast - network settings,把之前的 dhcp4 删除掉,然后选择编辑网卡,使用静态地址,IP 为你的内网 IP,网关是你之前备份的那个。
接着 vi /etc/resolv.conf, 按下 i 键进入编辑模式,在里面写入:
nameserver 100.100.2.138 nameserver 100.100.2.136
按下 ESC,然后输入 :wq! 保存。
接着我们就要根据我们之前备份的路由表来更新路由了。
route add -net 0.0.0.0 netmask 0.0.0.0 gw <GATEWAY> <DEVICE> route add -net 127.0.0.0 netmask 255.0.0.0 lo route add -net 169.254.0.0 netmask 255.255.0.0 <DEVICE> route add -net 172.19.224.0 netmask 255.255.240.0 <DEVICE>
其中 GATEWAY 是你备份的路由表里面 FLAGS 是 GW 的那个 IP 地址。DEVICE 是你升级完运行 “ip a” 命令得到的网卡名。对比一下你备份的路由表,就可以大体知道上面命令应该怎么替换了。
持久化路由
上面使用 route 命令添加的路由在系统重启后会消失,这时你会发现在外网又 ssh 不进去了。
我们需要使用 yast 把它持久化一下:
在 YaST - Network Settings 里面,切换到 Routing 选项卡(终端 yast 使用 TAB 键和方向键操作,Return 键是确认):
在 Default IPv4 Gateway 里输入你的 Gateway,后面设备选你用 “ip a” 命令查看到的网卡名,ens3 这种。
在 Routing Table 里点 Add,添加三条,Destination 对应上面 -net 后面的值,Netmask 对应 -netmask 的值,设备同上。网关是 0.0.0.0。(注意输入 Netmask 和 Gateway 的时候,把前面的 “-” 按 Backspace 键删掉。
保存即可。下次重启就会自动添加这些路由信息。