当前位置:  建站>运营/SEO
本页文章导读:
    ▪认识Linux(三)——引导流程           LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.      使.........
    ▪Zimbra服务无法正常启动      1. 问题描述 1) zimbra服务状态: zimbra@mail:~$ zmcontrol status Host mail.example.com antispam Running antivirus Running ldap Running logger Runnin.........
    ▪又一个Linux的双向stateless NAT      如果看一下iproute2的help,就会发现在route section中有一个nat action,其中via的参数给出了转换的地址。具体的配置就不说了,只提出两点,第一,iproute2的stateless nat需要policy routing的参与,第二.........

[1]认识Linux(三)——引导流程
    来源: 互联网  发布时间: 2013-10-31

     LINUX是自由开源软件,在LINUX里一切都是文件,不管是命令,操作等等都是以文件形式保存,这篇博客来记录LINUX启动时的引导流程是通过哪写文件来完成的.

     使用的LINUX版本是CentOS5,CentOS和Ubuntu都是自己联系使用时的较理想版本.

     下面以CentOS5.5版本为例,介绍LINUX的引导流程,具体流程如下:


    下面详细介绍每一步:

 

    1)第一步firmware固件自检,主要是进行CMOS/BIOS对硬件进行POST加电自检,在物理层次上对硬件进行检测是否正常。例如检查硬盘是否插好等。

    2)第二步读取硬盘中MBR的BootLoader,自启动程序,Linux下常用的自启动程序是GRUB。这一步主要的功能是载入内核。内核存放在/boot目录下

   3)第三步就是载入的内核Kernel的过程,

        主要功能是:1、驱动硬件,Kernel中含有大量驱动程序。2、启动init进程。

    4)init进程,主要是读取/etc/inittab文件,执行缺省运行级别,从而继续引导。需要注意的是init京城的PID恒为1,是所有进程的父进程,而init进程的负景程是0,为内核调度器Kernel scheduler。

    5)/etc/inittab 定义了初始化的操作。 

               inittab文件内容:


      

    命令主要格式是:id: runlevels : action : process

    其中,如上图红框中所示

    1、run-levels运行级别有7个,0—6分别如下:

   0 —— halt 关机

   1 —— Single user mode 单用户模式

   2 —— Multiuser,withoutNFS 多用户模式但不带网络(text模式)

   3 —— Full multiuser mode 完整功能的多用户模式(text模式)

   4 —— unused 预留

   5 —— X11 图形化多用户模式

   6 —— reboot 重启

可以根据这7个运行级别来进行切换

命令为:查看当前运行级别 #runlevel、 切换运行级别 #init[0 |1 |2 |3 |4 |5 |6]

     2、而acion中也有几个比较重要的取值:

   1 initdefault:指定系统缺省启动的运行级别,如上图中标出,通常用于修复,比如我们要进入单用户模式,则可以将其设置为1,不可将默认设置为0或6,否则无法启动.

 

   2sysinit:系统启动执行process中指定的命令


        由inittab文件内容可以看出,没有设置运行级别,即为无论是哪个运行级别,都会执行/etc/rc.d/rc.sysinit


   6)initdefault,如第五步所说到的,主要是读取/etc/inittab中的信息,判断缺省的运行级别是什么。

    7)/etc/rc.d/rc.sysinit

    在inittab文件中运行到第21行,变是启动这个脚本。完成系统服务程序的启动,如系统环境变量的设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。由于是基础服务,因为其run-level设置为空::即任何级别,action设置为sysinit。即该脚本在任何运行级别下都要启动,以完成基础服务的启动

   8)基础服务启动后,会执行/etc/rc.d/rc这个脚本


    
[2]Zimbra服务无法正常启动
    来源: 互联网  发布时间: 2013-10-31

1. 问题描述

1) zimbra服务状态:

 zimbra@mail:~$ zmcontrol status
 Host mail.example.com
       antispam                Running
       antivirus               Running
       ldap                    Running
       logger                  Running
       mailbox                 Stopped
               zmmailboxdctl is not running.
       mta                     Running
       snmp                    Running
       spell                   Running
       stats                   Running
       zmconfigd               Running
 zimbra@mail:~$

2) zimbra的/var/log/mail.log日志信息如下:

 Mar  7 20:12:20 mail zimbramon[10875]: 10875:info: Starting snmp via zmcontrol
 Mar  7 20:12:20 mail zimbramon[10875]: 10875:info: Starting spell via zmcontrol
 Mar  7 20:12:20 mail zimbramon[10875]: 10875:info: Starting mta via zmcontrol
 Mar  7 20:12:21 mail postfix/postfix-script[12799]: warning: not owned by root: /opt/zimbra/postfix-2.7.7.3z/conf/main.cf
 Mar  7 20:12:21 mail postfix/postfix-script[12800]: warning: not owned by root: /opt/zimbra/postfix-2.7.7.3z/conf/master.cf
 Mar  7 20:12:21 mail postfix/postfix-script[12801]: warning: not owned by root: /opt/zimbra/postfix-2.7.7.3z/conf/master.cf.in
 Mar  7 20:12:21 mail postfix/postfix-script[12817]: starting the Postfix mail system
 Mar  7 20:12:21 mail postfix/master[12818]: daemon started -- version 2.7.7, configuration /opt/zimbra/postfix-2.7.7.3z/conf
 Mar  7 20:12:21 mail saslauthd[12826]: detach_tty      : master pid is: 12826
 Mar  7 20:12:21 mail saslauthd[12826]: ipc_init        : listening on socket: /opt/zimbra/cyrus-sasl-2.1.23.3z/state/mux
 Mar  7 20:12:21 mail zimbramon[10875]: 10875:info: Starting stats via zmcontrol
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: status requested
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: assuming no other instance is running
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: assuming no other instance is running
 Mar  7 20:12:37 mail zmmailboxdmgr[13978]: no manager process is running
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: status requested
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: assuming no other instance is running
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: assuming no other instance is running
 Mar  7 20:12:37 mail zmmailboxdmgr[13986]: no manager process is running
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: status requested
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process  
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: assuming no other instance is running
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: assuming no other instance is running
 Mar  7 20:12:38 mail zmmailboxdmgr[14215]: no manager process is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: status requested
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: assuming no other instance is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: assuming no other instance is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14460]: no manager process is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: status requested
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: assuming no other instance is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: assuming no other instance is running
 Mar  7 20:13:39 mail zmmailboxdmgr[14468]: no manager process is running
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: status requested
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: stale pid 12479 found in /opt/zimbra/log/zmmailboxd_manager.pid: No such process
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: assuming no other instance is running
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: file /opt/zimbra/log/zmmailboxd.pid does not exist
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: assuming no other instance is running
 Mar  7 20:14:04 mail zmmailboxdmgr[14923]: no manager process is running

2.解决方法

 1) As root - # mv /opt/zimbra/mailboxd/etc/keystore /root/keystore.old
 2) As root - # /opt/zimbra/bin/zmcertmgr deploycrt self
 3) As root - /opt/zimbra/libexec/zmfixperms --verbose --extended
 4) Login as the zimbra and restart all of zimbra
 修复后的zimbra服务状态如下:
 
 zimbra服务启动后,若还不能正常访问,出现如下图所示现象:
 
 需要更新文件/opt/zimbra/conf/localconfig.xml中zimbra的UIDs,然后重新执行上述步骤进行修复就可以了
 注:zimbra的UID可以在 /etc/passwd文件查询
作者:zzban 发表于2013-5-30 16:09:06 原文链接
阅读:68 评论:0 查看评论

    
[3]又一个Linux的双向stateless NAT
    来源: 互联网  发布时间: 2013-10-31
如果看一下iproute2的help,就会发现在route section中有一个nat action,其中via的参数给出了转换的地址。具体的配置就不说了,只提出两点,第一,iproute2的stateless nat需要policy routing的参与,第二,它在2.6内核中被去除了;具体信息可以参见文档。在2.6内核中,内核协议栈将一切的扩展都留给了Netfilter来实现,自己只实现标准的最小集。
       为什么要提到2.4内核的nat route呢?既然已经被扫除了,既然在Netfilter中实现NAT具有哲学意义,既然我自己也基于Netfilter实现了一个双向的stateless nat,那旧事重提又有什么意义呢?我对老婆说,我说出的任何话,做出的任何事,背后都有一套可以自圆其说的理论,不管它多么荒谬,但是可以自圆!因此我现在又想实现一个stateless nat时,也需要一个理论支撑,就是:将NAT塞入路由表中是合理的,因为NAT受影响的就是路由(不管是本地路由还是远程的路由),直接在路由中做掉会更好。由于PRE/POST-ROUTING的中间点就是路由,何不把NAT统一合并在路由中来呢?虽然这不太符合Netfilter的哲学,然而对于实用主义来说,这太好不过了!2.4内核实现的nat route之所以不好,除了哲学原因之外还有代码的原因,那段实现代码太乱了!
       如果按照上述的思路来实现nat route,根本不用policy routing,不需要配置ip rule,不需要配置两条规则,它的流程图如下,代码也比较好修改:

可以看出,这个实现使用了递归路由查询这个Linux根本就没有实现的东西。因此需要修改路由插入的部分代码,而我使用了几个flag来识别该条路由是做NAT用的,由于是stateless的双向NAT,因此当你插入一条NAT路由的时候,另外一个方向的就必须自动生成,比如你插入了一条以下的路由:
ip route add dnat x via y
指示所有的目标是x的都要转换成y,那么以下的路由必须自动生成:
ip route add snat y via x
指示所有源地址为y的都要转换为x。当然以下的这一条不应该手工配置,应该用auto标号指名它是自动生成的。
       以上的需要说明是snat,原则上snat是在路由之后进行的,否则可能会做无用功,那流程图为何在路由前snat呢?这是为了最小化查询,否则也会做很多无用的查询,将要对所有的数据包都进行是否需要snat的查询,这里用到的一个技巧就是路由查询是基于最长前缀匹配的,如果有需要snat的,那么肯定会有一条明细的32位前缀的snat路由,如果没有,那就说明没有需要snat的。当然上面的流程图还可以优化,因为我们认识到,由于是双向的nat,那么只要有一个dnat,就会有一个snat,反过来也一样,都是成对出现的,基于这点是否能做点优化呢?
       提到了递归查询,不得不多说一点,既然已经引入了SNAT,DNAT标志,那么能否再引入一个Recursion标志用于指示常规的递归路由呢?我觉得是可以的,这样实现的递归路由更加简单了,一切都在插入时决定,由于NAT是递归的一种,那么可以如下定义:
#define RTN_RECU  RTN_SNAT|RTN_DNAT|RTN_XXX
递归路由的插入算法流程如下:
 
2.4内核还在的nat route如今不在了,想实现一个还要重新编译内核,不过还好,还是实现了!这种nat route不需要Netfilter支持,不需要在内核中引入其它的map,在非路由查找层面不需要对每一个数据包进行匹配,完全是一条路由表项,可以借助于内核中的各种路由查找算法来优化。不过Cisco的官方CCIE教程中说,使用递归路由查找需要权衡,并且明确指名,递归查询无疑会消耗更多的CPU!
       然而这个基于递归路由查询实现的NAT是多么的简单又多么的对称,虽然将NAT塞入路由表比较有争议,但是试试看之后,结果还是不错的。Linux本来就是逐渐试出来的,根本就没有什么背后的哲学,和学院派的BSD相比,Linux的特点和优势不就是不拘一格么?
作者:dog250 发表于2013-5-30 21:27:53 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3