本节书摘来自华章出版社《构建高可用Linux服务器 第3版》一 书中的第2章,第2.2节,作者:余洪春 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.2 安装系统时容易发生的错误描述与处理方法
如果购买了新服务器,我们最先做的事情肯定是检测硬件和安装服务器系统,不过,在安装过程或调试过程中有可能会出现一些小问题,我们应该怎样正确地处理它们呢?本节将集中讨论如何处理这一类问题,希望能帮助大家进一步了解系统相关知识。
2.2.1 忘记CentOS 5.8的root密码怎么办
我的线上机器一般会设置28位密码,就算是内网开发的机器,所设置的密码也比较长,有时候就会出现忘记root密码的情况。忘了CentOS 5.8的root密码怎么办?别着急,按下面的流程一步步操作,很容易解决问题。
1)在开机启动的时候按空格键能看到CentOS 5.8目录(3秒后将进入默认设置中),用上下键选中你要进入的那个内核,选中后按键盘上的E键,进入图2-1所示的界面;虽然图中只有一个CentOS 5.8引导菜单,不过如果你升级了系统或安装了XEN虚拟化后,就会显示多个。
2)看到图2-1所示画面后,继续按E键选择内核,进入图2-2所示的画面。
3)图2-3所示的画面可以编辑,在信息的最后加“空格”,然后输入“single”或“S”,或者直接输入数字“1”并按回车键,确定进入下一步(均可以进入单用户模式)。
4)进入图2-4所示界面,然后我们可以按B键启动系统了。
5)进入如图2-5所示的单用户界面后(即CentOS 5.8单用户模式),在这个画面中的“#”后输入“passwd root”,重新设置root的密码,然后再确认输入一遍,即重设了root密码,如图2-6所示。
2.2.2 正确重设root密码
有时候因为工作的需要,我们需要重新配置root密码,这个时候我们肯定会输入一个复杂的长密码,有些比较性急的系统管理员在输入新密码后就退出当前终端,回公司工作了。回到公司却突然发现:新root密码无法进入系统了。虽然能够回机房重设root密码,但这样严重影响工作效率,怎么办?其实这里面也有个小技巧,特推荐给大家。我们在当前终端下重设了root的新密码后,不要急着退出,这时候我们可以用ALT+F2~ALT+F6组合键进入另一终端,尝试使用新的root密码登录。如果确认无误,再退出所有终端,这样失误的几率就非常低了。公网机器因为安全要求,服务器上除了root以外不能保留其他具有sudo权限的用户,这时候更改root密码就要慎之又慎了,建议大家按照以上操作流程来正确更改root密码。
2.2.3 安装FreeBSD 8.1时不要设置/boot分区
用惯了Linux系统的朋友都知道系统下面有/boot分区,我第一次安装FreeBSD 8.1时也跟安装Linux一样分配了/boot分区,结果机器启动不了,需要手动引导,相信很多人都遇到过类似的情况。分配了/boot分区后,在系统安装完成重启后便出现如图2-7所示的故障。
后来通过在网上查资料,了解了FreeBSD 8.1手动引导的全过程,下面简单描述一下此错误产生的原因:由于独立分区/boot造成了FreeBSD 8.1在引导过程中无法正确找到内核引导的位置,所以才会产生上述问题,通过以下命令可以解决此问题:
boot:0:da(0,c)/loader
注意 这个引导盘符根据da0s1x的x得来,因此FreeBSD 8.1系统的/boot所在的分区区号才是真正的x字母,如果不知道就从x字母开始往后逐个尝试。
解决了引导问题后,就进入了FreeBSD 8.1的loader界面,由于默认的kernel位置是/boot/kernel,所以依然需要手动加载,输入如下命令:
ok load kernel/kernel
获得kernel信息后,输入如下命令:
ok boot
这样就可以正常引导了,但是随后还需要在磁盘挂载的时候输入以下命令:
mount root>ufs:/dev/da0s1a
然后便顺利进入系统了。可是,不能每次重启都手动启动吧?所以,这里强烈建议大家安装FreeBSD 8.1时不要分配/boot分区。我在安装FreeBSD 8.1时,会严格遵守公司的工作流程来分区,即只安装三个分区:根分区、/data分区及swap分区,这样出错的几率会小很多。
2.2.4 安装CentOS 5.8时忘了关闭iptalbes和SELinux
有些朋友安装CentOS 5.8时,忘了关闭iptables和SELinux选项,结果导致系统出现了许多莫名其妙的问题,特别是在进行一些流量转发时,例如LVS、Nginx。所以我们在进入系统后,可先用命令关闭它们,然后根据实际需求决定是否打开它们,命令如下:
system-config-securitylevel
此命令输入后,就会进入防火墙配置界面,如图2-8所示。
配置完成后我们可以用命令分别查看一下,查看iptables规则可以用如下命令:
iptables -nv –L
此命令显示结果如下:
Chain INPUT(policy ACCEPT 279 packets, 21732 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD(policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT(policy ACCEPT 756 packets, 60241 bytes)
pkts bytes target prot opt in out source destination
查看当前SELinux状态,可以用如下命令:
getenforce
此命令显示结果如下:
Disabled
上面是图形化的操作,推荐使用;如果是用命令行的方法操作,也会比较方便。
关闭iptables的命令如下所示:
service iptables stop
chkconfig iptables off
要关闭SELinux,可使用以下命令行临时关闭。SELinux由开启状态转为关闭状态后,最好重启一下服务器。
setenforce 0
如果要永久关闭SELinux,执行以下命令:
sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config
然后重启服务器,命令如下:
reboot