发布新日志

  • SELinux

    2013-03-27 11:19:13

      • ls -Z查看SELinux信息
      • identify:role:type(身份识别:角色:类型)
      • 身份识别(Identify):相当于账号方面的身份识别
        • root:表示root的账号身份
        • system_u:表示系统程序方面的识别
        • user_u:代表的是一般使用者账号相关的身份
      • 角色(Role):透过角色字段,我们可以知道这个暑假时属于程序、文件资源还是代表使用者
        • object_r:代表的是文档或目录等资源
        • system_r:代表就是程序
      • 类型(Type):在预设的targeted政策中,Identify与role字段基本上市不重要的,重要的在于type字段。基本上一个主体程序能不能读取到这个文件,与type有关,domain需要与type搭配,则该程序才能够顺利读取文件资源
        • type
        • domain
      • SELinux的启动与关闭
        • 查看SELinux模式 getenforce
        • 设置SELinux模式 setenforce
        • 执行restorecon -Rv 重新还原所有SElinux的类型
        • SELinux配置文件 /etc/selinux/config
        • 如果由enforcing或permissive改成disabled,或由disabled改成其他两个,必须要重新启动。这是因为SELinux是整合到内核里面去的
        • 你可以在SELinux运作下切换成enforcing或permissive模式,不能直接关闭SELinux
        • 如果熔disable转到启动SELinux的模式时,由于系统必须要针对文件写入安全性文本的信息,因此开机过程会花费不少时间在等待重新写入SElinux安全性文本,等到下次开机成功后再使用getenforce来观察是否成功启动到Enforcing的模式
        • 当你单纯的复制文件,SELinux的type字段是会继承目标的目录的
        • 当你移动文件,SELinux的type字段也会被移动过去
        • chcon 修改文件或目录的SELinux信息
        • semanage(需要安装yum install policycoreutils-python)
        • SE政策查阅 (需要安装yum install setools-console)
          • seinfo
          • sesearch
          • getsebool查看哪个布尔值是否启动
          • setsebool
        • 通过setroubleshootd 记录se错误信息
          • Centos6对setroubleshoot的运作方式
            • 先由auditd去活校audispd服务
            • 然后audispd服务去启动sedispath程序
            • sedispatch再将原本的auditd讯息转成setroubleshootd的信息,进一步存储下来

  • SRPM

    2013-03-25 11:50:25

    • SRPM是SOURCE PRM的意思,也就是这个RPM文件里含有源代码,也就是说,这个SRPM所提供的软件内容并没有经过编译过,他提供的原始代码。通常SRPM的扩展名是以***.src.rpm这种格式来命名。SRPM虽然内容是源码,但是他仍然含有该软件所需要的依赖软件说明,以及所有RPM文件所提供的数据。
    • 如果我们下载的是SRPM,就必须要
      • 现将该软件以RPM管理的方式编译,此时SRPM会编译成RPM文件
      • 然后将编译完成的RPM安装到linux系统中(SRPM使用的是rpmbuild命令)
        • rpm -i xxx.src.rpm 将SRPM文件解开,放置到/usr/src/redhat
        • 修改配置文件 /usr/src/redhat/SPECS/*.spec
        • rpmbuild -ba xxx.spec  编译并同时产生RPM于SRPM
  • 如何将动态函数库加载到高速缓存中

    2013-03-25 10:01:35

    在某些时候,你可能想让某些动态函数被快速读取,这个时候可以将动态函数写入cache中
      • 在/etc/ld.so.conf里面记录想要读入高速缓存当中的动态函数库所在的目录,注意是记录的是目录名而不是文件名
      • 利用ldconfig将/etc/ld.so.conf读取高速缓存中
      • 会将配置文件中的动态函数汇总成/etc/ldo.so.cache文件供系统cache用
  • Linux rc.sysinit

    2013-03-22 14:10:30

    • /etc/rc.d/rc.sysinit
      • 取得网络环境与主机类型:读取网络配置文件/etc/sysconfig/network,取得主机名与默认网关等网络环境
      • 测试与挂载内存装置/proc及USB装置/sys:除挂载内存装置/proc之外,还会主动侦测系统上是否具有usb的装置,如果有则会主动加载usb的驱动程序,并且尝试挂载usb的文件系统
      • 决定是否启动selinux
      • 启动系统的随机生成器:随机数生成器可以帮助系统进行一些密码加密演算的功能,在此需要启动两次随机数生成器
      • 设定终端机字形
      • 设定显示于开机过程中的欢迎画面
      • 设定系统时间与时区设定
      • 接口设备的侦测PNP参数的测试
      • 用户自定义模块的加载:使用者可以在/etc/sysconfig/modules/*.modules加入自定义的模块,则此时会被加载到系统中
      • 加载内核的相关设定:系统会主动读取/etc/sysctl.conf这个档案的设定值,使内核功能成为我们想要的样子
      • 设定主机名与初始化电源管理模块
      • 初始化软件磁盘阵列:主要透过/etc/mdadmin.conf来设定好的
      • 初始化LVM的文件系统功能
      • 以fsck检验磁盘文件系统
      • 进行磁盘配额quota的转换
      • 重新以可读写默写挂载系统磁盘
      • 启动quota功能
      • 启动系统虚拟随机数生成器
      • 清除开机过程中的临时文件
      • 将开机相关信息加载/var/log/dmesg日志中
  • 如果我有一个新的网卡驱动程序

    2013-03-22 14:09:15

    • 如果我有一个新的网卡驱动程序,文件名为a.ko如何更新内核信息
      • cp a.ko /lib/modules/$(uname -r)/kernel/drivers/net
      • depmod 

    • 操作模块常用命令
      • depmod 重建moudules.dep
      •  lsmod显示出目前已经存在于内核当中的模块
      • modinfo查看模块信息
      • insmod 手动指定加载模块
      • rmmod
      • modprobe 加载moudules.dep中的模块

  • Linux日志系统

    2013-03-22 10:50:57

    • /var/log/cron
    • /var/log/dmesg
    • /var/log/lastlog
    • /var/log/maillog 或 /var/log/mail/*:记录sendmail与dovecot所产生的信息。smtp是发信所使用的通信协议,pop3是收信使用的通信协议
    • /var/log/messages 几乎系统发生的错误信息都会记录在这个文档中,如果系统发生莫名的错误时,这个文档是一定要查看的
    • /var/log/secure 基本上只要涉及到需要输入账号密码的软件,当登录时都会被记录在此文档中(包括 login su sudo ssh telnet等)
    • /var/log/wtmp /var/log/faillog:记录正确登录系统者的账号信息(wtmp)与错误登录时所使用的账号信息
    • 日志是怎么产生的
      • 一种是由软件开发商自行定义写入的日志与相关格式 例如apache httpd
      • 另一种是由Linux提供的日志管理服务来统一管理,你只要将信息丢给这个服务后,他就会自己分门别类的将各种信息放置到先关的日志中去,Centos提供syslogd这个服务来统一管理日志。系统还提供klogd服务专门记录内核信息的日志
    • logrotate:就是将旧的日志更改名称,然后建立一个空的日志,如此一来,新的日志将重新开始记录。
    • /etc/syslog.conf
      • 服务名称
        • auth 主要与认证机制有关,例如login ssh sh等需要账号密码的
        • cron 主要是cron at等产生日志
        • daemon 与各个daemon有关
        • kern 就是核心产生的信息
        • lpr 打印机相关的信息
        • mail 与邮件收发有关
        • news 与新闻组有关
        • syslog  就是syslogd程序本身有关的信息
        • user uucp local0~local7 与unix like机器本身有关
      • 日志等级
        • info 仅是一些基本3的信息说明
        • notice 比info还需要被注意到的一些信息
        • warn 警告信息,可能有问题,但还不至于影响到某个daemon运作的信息。基本上info notice warn这三个信息都是在告知一些基本信息而已,应该还不至于造成系统运行问题
        • err 一些重大的错误信息,例如配置文件的某些设定值造成服务无法启动的信息说明,通常通过err的错误告知,应该可以了解到服务无法启动的原因
        • crit 比err还要严重的错误信息
        • alert 比crit还要严重的问题
        • emerg 最高级别,指系统已经几乎要当机的状态
        • none 不需要记录级
        • debug 错误侦测级
      • 链接符号
        • .      代表比后面还要高的等级都被记录下来,mail.info代表只要是是mail的信息,而且该信息等级高于info(含info本身)时,就会被记录下来
        • .=    代表所需要的等级就是后面接的等级而已,其他的不要
        • .!     代表不等于,也就是除了该等级外的其他等级都记录
      • 日志记录目标
        • 日志文件的绝对路径
        • 打印机: /dev/lp0
        • 使用者名称: 显示给用户看
        • 远程主机: @demo01-192-168-1-58
        • * : 代表目前在线的所有人 类似wall命令
      • -/var/log/maillog :由于邮件所产生的信息比较多,因此我们希望邮件产生的信息先存储在速度较快的内存中(buffer),等到数据量够大了才一次性的将所有数据都填入磁盘内,这样有助于日志的存取性能,不过带来的问题是如果不正常关机导致日志信息未写回到日志中,可能会造成buffer数据的遗失
      • local7.* 将本机开机时应该显示到屏幕的信息写入到/var/log/boot.log中
    • 如何将日志送到远程主机上
      • 服务器端:
        • 修改/etc/sysconfig/syslog 的 SYSLOGD_OPTION="-m 0 -r"
        • 重启syslogd服务
      • 客户端:
  • logrotate语法

    2013-03-22 10:50:05

    • 执行脚本:可以执行外部指令,这个设定需要在sharedscripts ... endscript中
    • prerotate:在启动logrotate之前执行的指令,例如修改日志的属性
    • postrotate:在昨晚logrotate之后启动的指令,例如重新启动(kill -HUP)某个服务
  • Linux PAM

    2013-03-19 09:05:03

    • PAM模块
      • 在过去,我们想要对一个使用者进行认证,得要要求用户输入账号密码,然后透过自行编写的程序来判断该账号密码是否正确,因此,我们常常得用不同的机制来判断账号密码,所以搞的一部主机上面拥有多个级别的认证系统,页造成账号密码可能不同步验证问题,PAM提供了一连串的验证机制,只要使用者将验证阶段的需求告知PAM后,PAM就能够回报使用者验证的结果。由于PAM仅是一套验证的机制,又可以提供给其他程序所呼叫使用,因此不论你使用什么程序,都可以使用PAM来进行验证,如此一来,就能让账号密码或者是其他方式的验证具有一致的结果
      • 验证类别
        • auth:这种类别主要用来检验使用者的身份验证,这种类别通常需要密码来检验,所以后续的模块使用来检验用户的身份
        • account:这种类别主要检验使用者是否具有正确的权限
        • session:这个类别通常用在记录用户登录与注销时的信息
        • password:这种类别主要提供验证的修订工作
        • 一般顺序是 auth account session password
      • 控制标准
        • required:验证成功返回success的标志,若失败返回failure,但是不论成功失败都会继续后续的验证流程,因此相当有利于资料的登录(常用)
        • requisite:验证失败返回failure,并终止后续验证流程,验证成功则继续执行
        • sufficient:验证成功返回success,并终止后续验证流程,验证失败则继续执行
        • optional:用来显示信息
      • /etc/pam.d/*  :每个程序的PAM配置文件
      • /lib/security/*:PAM模块文件实际放置目录
      • /etc/security/*:其他PAM环节的配置文件
      • /usr/share/doc/pam-*/:详细的PAM说明文件
      • PAM常用模块
        • pam_securetty.so 限制系统管理员只能从安全的终端机登录
        • pam_nologin.so限制一般用户是否能够登录主机
        • pam_selinux.so针对SELinux来进行细部管理权限
        • pam_console.so当系统出现问题,或者某些时刻你需要特殊的终端接口登录主机时,这个模块可以帮助处理一些文件权限的问题
        • pam_loginuid.so为了验证使用者的uid真的是我吗所需要的数值,可以使用这个模块来进行规范
        • pam_env.so用来设定环境变量的一个模块
        • pam_unix.so这个模块可以用在验证阶段的认证功能,可以用在授权阶段的账号许可证管理,可以用在会话阶段的登录文件记录等,甚至也可以用在密码更新阶段的检验
        • pam_cracklib.so可以用来检验密码的强度,包括密码是否在字典中,密码输入几次都失败就断掉此次联机等功能
        • pam_limits.so提供类似ulimit命令的功能
      • 如果发生任何无法登陆或者是产生一些你无法预期的错误时,由于PAM模块都会记录在/var/log/secure当中,所以发生了问题应当到该文件中去查询一下问题
      • 查询使用者 w who last lastlog
      • 与使用者对谈 write mesg wall
      • 检查工具
        • pwck检查账号与实际家目录是否存在,以及passwd内的数据字段错误
        • pwconv检查passwd中的账号是否有对应的密码
        • pwuconv
        • chpasswd
  • Linux ACL

    2013-03-19 09:03:31

    ACL(Access Control List)主要的目的是提供传统的owner,group,otrequiredhers的read,write,execute权限之外的细部权限设定。ACL可以针对单一使用者,单一档案或目录来进行rwx的权限规范,对于需要特殊权限的使用状况非常有帮助
      • 使用dumpe2fs查看文件系统是否启动acl
      • getfacl setfacl
    • sudo 执行日志保存在/var/log/secure
  • Linux账号管理

    2013-03-18 08:59:41

    • useradd 重要参数
      • -M 强制,不要建立用户家目录
      • -r 建立一个系统账号,这个账号的uid会有限制
      • -f  指定密码是否会失效
      • -D  查看useradd默认值
    • /etc/skel 用户家目录参考基准目录
      • 这个目录就是指定用户家目录的参考基准目录,如果通过useradd新增一个用户,这个用户的家目录都是由/etc/skel所复制过去的,所以未来如果我们想新增使用者时,该用户的环境变量~/.bashrc就设定妥当的话,可以到/etc/skel/.bashrc去编辑一下,也可以建立/etc/skel/www这个目录,那么未来新增使用者后,在他的家目录下就会有www那个目录了
    • /etc/login.defs 用来存储新增用户时默认的一些参数
    • useradd在建立linux上的账号时,至少会参考
      • /etc/default/useradd
      • /etc/login.defs
      • /etc/skel/*
    • useradd在建立linux上的账号时,至少会修改的文件
      • /etc/passwd
      • /etc/shadow
      • /etc/group
      • /etc/gshadow
    • 账号管理常用命令
      • useradd usermod userdel ,passwd chage ,groupadd groupmod chgrp groupdel newgrp gpasswd, id groups ,finger chfn,chsh

  • shell scripts

    2013-03-15 10:25:27

    • script的执行方式差异
      • 利用直接执行的方式来执行script:该script都会使用一个新的bash环境来执行执行脚本内的指令
      • 利用source来执行脚本:在父程序中执行(source,sh,.)
    • $#:脚本参数数量
    • $@ $*:表示脚本所有参数
    • $0:执行的脚本文件名
    • 脚本调试

  • Linux用户登录过程

    2013-03-13 10:18:50


    • login shell:取得bash时需要完整的登录流程
      • 调用/etc/profile
        • PATH:会依据UID决定PATH变量要不要含有sbin的系统指令目录
        • MAIL:依据账号设定好使用者mailbox到/var/spool/mail/账号名
        • USER:根据用户的账号设定此一变量内容
        • HOSTNAME:依据主机的hostname指令决定此一变量内容
        • HISTSIZE:历史命令记录笔数
        • 调用/etc/inputrc
        • 调用/etc/profile.d/*.sh
        • 调用/etc/sysconfig/i18n
      • 读取个人偏好配置文件(bash的login shell只会按照次序读取其中一个)
        • ~/.bash_profile
          • ~/.bashrc
          • /etc/bashrc
        • ~/.bash_login(该文件默认不存在)
        • ~/.profile(该文件默认不存在)
      • 调用/etc/man.config
      • 调用~/.bash_history
      • 调用~/.bash_logout(退出时执行)
    • non-login shell:取得bash借口的方法不需要重复登录的举动inputrc
      • 调用 ~/.bashrc
      • 调用/etc/bashrc
      • 调用/etc/profile.d/*.sh
      • 调用/etc/man.config
      • 调用~/.bash_history
      • 调用~/.bash_logout(退出时执行)
  • Linux磁盘管理常用命令

    2013-03-12 09:43:26

    • dumpe2fs :可以查看superblock里面的信息
    • df du
    • 磁盘分区:fdisk parted
    • 磁盘格式化:mkfs mke2fs(可以设定block和inode大小)
    • 磁盘检验:fsck e2fsck badblocks
    • 磁盘挂载:mount
    • 磁盘参数修订:mknod
    • 设定文件系统标头:e2label
    • 将ext2转换为ext3:tune2fs
    • partprobe:告知核心必须要读取新的分割表
    • hdparm:测试硬盘实际存取效能( hdparm -Tt /dev/sda2 性能测试的时候应该可以做参考)
  • Linux 磁盘与文件系统管理

    2013-03-11 17:48:18

    • super block:记录整个文件系统的整体信息,包括inode和block的总量、使用量、剩余量,以及文件系统的格式与相关信息等(大小为1024bytes)
    • inode:记录档案的属性,一个档案占用一个inode,同事记录此档案数据所在的block号码
    • block:实际记录档案的内容,若档案太大时,会占用多个block
    • inode的数量和大小也是在格式化时就已经固定了
      • 每个inode大小均固定为128bytes
      • 每个档案都仅会占用一个inode
      • 因此文件系统能够简历的档案数量与inode的数量有关
      • 系统读取档案时需要先找到inode,病分析inode所积累的权限与用户是否符合,若符合才能够开始实际读取block的内容
      • inode记录一个block号码要花掉4byte
      • inode记录block号码的区域定义为12个直接,一个间接,一个双间接与一个三间接记录
    • block bitmap记录的是使用与未使用的block号码
    • inode bitmap记录的是使用与未使用的inode号码
    • 目录:当我们在Linux下的ext2文件系统建立一个目录时,ext2会分配一个inode与至少一块block给该目录,其中inode记录该目录的相关权限与数学,并可记录分配到的那块block号码,而block则是记录在这个目录下的文件名与该文件名占用的inode号码数据
    • 文件:当我们在Linux下的ext2建立一个文件时,ext2会分配一个inode与相对于该文件大小的block数量给该文件
    • inode本身并不记录文件名,文件名的记录是在目录的block当中。因此当我们要读取某个文件时,就务必会经过目录的inode与block,然后才能够找到那个待读取的文件的inode号码,最终才会读到正确的文件的block内的数据
    • 我们想要新增一个文档,此时文件系统的行为是
      • 先确定用户对于欲新增档案的目录是否具有w与x的权限,若有的话才能新增
      • 根据inode bitmap找到没有使用的inode号码,并将新文件的权限/属性写入
      • 根据block bitmap找到没有使用的block号码,并将实际的数据写入block中,且更新inode的block指向数据
      • 将刚刚写入的inode与block数据同步更新inode bitmap与block bitmap,并更新superblock的内容

  • 下载文件后md5校验

    2013-02-26 11:22:42

    最近在学mysql,其中下载安装程序后你可以拿官网提供的md5对下载后的文件进行校验防止下载后的文件被别人做手脚

    首先要下载一个mysql的安装程序 mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz
    1. 在windows平台做md5校验
    • 通过http://www.nullriver.com/downloads/Install-winMd5Sum.exe 下载一个windows平台的md5校验程序
    • 安装并打开程序
    • 在FileName中选择mysql安装程序,在Compare输入mysql官方网站获得的md5码
    • 点击Compare

    2.在Linux平台做md5校验
    • 基本上md5sum命令默认会安装



  • 多台Linux服务器SSH相互访问无需密码

    2013-02-22 12:07:41

    1.在踏板机上生成远程登录的密钥对,并且取回私钥,实现客户机和踏板机的无密码登录
    注意事项:
    a.踏板机上尽量只处理登录服务,不做其他的事情
    b.踏板机控制只能认可的ip才能进行远程登录
    c.更改sshd的默认端口22

    操作方法:
    当前用户为A
    1.ssh-keygen -t rsa   //生成A用户的踏板机远程登录的密钥对
    2.ssh-copy-id -i id_rsa.pub "127.0.0.1" //将公钥转换到A用户的~/.ssh/authorized_keys中
    3.chmod 700 /home/A/.ssh //将A用户的/home/A/.ssh设置为700权限
    4.chmod 600 /home/A/.ssh/authorized_keys   //将authorized_keys设置为600权限,权限不对会导致密钥登录失败
    5.从踏板机中取回私钥
    6.su - //切换成root用户
    7.vim /etc/ssh/sshd_config //修改sshd的配置文件只允许密钥登录,并且修改ssh服务端口默认值
    PasswordAuthentication no //禁止使用基于口令认证的方式登陆
    PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆
    Port 10022
    8.service sshd restart   //更新配置文件后重启sshd服务


    2.在踏板机上生成局域网访问的密钥对,私钥保存在踏板机上,公钥赋给服务器
    注意事项:
    a.最好要为服务器之间相互访问创建一个新的用户组和用户,不要默认客户机登录的远程用户


    操作方法:
    //以下操作是在踏板机端
    1.groupadd administrators //创建administrators用户组
    2.useradd admin01 -g administrators;passwd //创建属于administrators用户组的一个用户admin01
    3.su admin01 //由于admin01没有登录密码,所以先su成root,再通过root su成admin01这样会绕过密码环节
    4.mkdir ~/.ssh;chmod 700 ~/.ssh //将admin01用户的/home/admin01/.ssh设置为700权限
    5.ssh-keygen -t rsa //生成admin01用户的踏板机远程登录的密钥对,主要不要输入密码否则踏板机远程登录服务器的话还是需要输入密码的
    //以下操作是在服务端
    6.groupadd administrators;useradd admin01 -g administrators;passwd //在服务器端也建立属于administrators组的admin01 账号
    7.mkdir /home/admin01/.ssh;chmod 700 /home/admin01/.ssh //将admin01用户的/home/admin01/.ssh设置为700权限\
    //以下操作是在踏板机端并且以admin01用户登录
    8.ssh-copy-id -i id_rsa.pub "-p 22 admin01@192.168.1.44" //将公钥传到服务器的admin01用户的~/.ssh/authorized_keys中
    //以下操作是在服务端并且以root身份登录
    9.chmod 600 /home/admin01/.ssh/authorized_keys   //将authorized_keys设置为600权限,权限不对会导致密钥登录失败
    10.vim /etc/ssh/sshd_config //修改sshd的配置文件只允许密钥登录
    PasswordAuthentication no //禁止使用基于口令认证的方式登陆
    PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆

    11.service sshd restart   //更新配置文件后重启sshd服务
  • 时钟同步

    2013-02-21 15:40:33

      linux的时钟
                               硬件时钟:hwclock
                               系统时钟:date
                          同步系统时钟命令:hwclock --hctosys
                                                        hwclock --systohc
        网络时钟同步
            • NTP主要用于调节系统时钟从而与外部时间源达到同步
            • 建议管理员在自己管理的网络中至少建立一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易。此外如果用户使用集群服务器,一般会在内网配置本地NTP服务器
            • 如果无法与Internet连接,可以指定内部的一些主机作为时间服务器,虽然这种方案无法与标准时间严格同步,但是却可以保证内部主机之间时间同步
            • 客户端可以通过ntpdate命令与远程ntp服务器进行同步(需要yum install ntp)
      • Centos系统出现启动异常时

        2013-02-21 13:38:52

        Centos系统出现启动异常时,就需要进入单用户模式或修复模式对系统进行管理了。

        使用单用户模式有一个前提,就是你的系统引导器GRUB能正常工作,否则要进行系统维护就要使用修复模式

        单用户模式
        • 当系统进入单用户模式,不需要输入用户名和口令,系统启动完成后将直接获得管理员root的权限,控制台的提示符为“#”
        • 只有根文件系统是可读写的,系统管理员才能对系统进行维护
        • 单用户模式的一个典型应用是root用户的“口令设置”,可以进入单用户模式更改root用户的口令
        • 维护系统的分区、LVM和文件系统、进行系统备份和恢复 都可以进入单用户模式
              操作方法:按“e”键编辑“kernel”菜单项,在行末输入single,告诉linux内核后续的启动过程需要进入单用户模式

        修复模式

        步骤1:在BIOS中,设置首个启动启动器为cdrom
        步骤2:使用CentOS安装光盘启动
        骤3:选择进入修复模式 (linux rescue)
        步骤4:选择语言和键盘类型
        步骤5:配置网络连接
        步骤6:挂载硬盘上的文件系统
        1. 由于修复模式常用于对不能正常启动的硬盘进行修复,需要更新硬盘文件系统中的文件内容,隐藏通常选择以“可读可写”的方式挂载硬盘
        2. 以只读方式挂载硬盘文件系统常用于对硬盘数据进行备份,并可避免硬盘中的现有数据被更改
        步骤7:进入修复模式
        1. 当用户进入修复模式后,会获得root用户权限,硬盘中的整个根文件系统已经被挂载到目录/mnt/sysimage中
        2. 执行相应的命令对硬盘中的系统进行修复
        3. 修改系统不能正确启动的错误,例如误编辑了与启动相关的配置脚本(/etc/inittab、/etc/rc.d/rc.sysinit等)
        4. 在单用户模式下实施的系统维护工作在修复模式下也能做

      • Centos系统启动过程

        2013-02-21 11:34:59

        第一步:BIOS自检

        第二步:引导装载程序:装载第一块硬盘的前512字节的物理数据扇区MBR到内存中,位于此扇区开始位置的应道装载程序GRUB接管系统

        第三步:加载RAM盘

        第四步:在RAM盘中运行init:这个程序执行装入真正的根文件系统所需要的所有操作
        1. 装载内核模块
        2. 管理RAID和LVM
        3. 加载最终的根文件系统
        第五步:运行根文件系统上的init
        A./etc/rc.d/rc.sysinit--系统初始化脚本
        1. 挂载/proc文件系统
        2. 设置系统时钟
        3. 系统一般的环境变量设置(如主机名)
        4. 初始化USB和HID设备
        5. 设置PnP
        6. 加载键盘映射
        7. 加载系统字体
        8. 加载系统模块(如声音模块)
        9. 初始化RAID
        10. 初始化卷映射
        11. 检查文件系统
        12. 挂载文件系统
        13. 激活磁盘限额
        14. 激活swap分区
        15. 初始化串口设备
        16. 生成系统启动信息的log文件
        B./etc/rc.d/rcX.d/[KS]*--根据运行级别X配置服务
        1. 终止以“K”开头的服务
        2. 启动以“S”开头的服务
        C./etc/rc.d/rc.local--执行本地特殊配置
        D.其他--不同运行级别的特殊服务
        1. mingetty
        2. xdm gdm kdm
      • Centos安装完毕后必须要做的事情

        2013-02-20 19:41:45

        通常刚安装完成的Centos是无法访问互联网的,原因是有些配置还未完成

        1.设置固定ip,如果一台Linux服务器没有设置固定ip也太不专业了吧
        通过修改/etc/sysconfig/network-scripts/ifcfg-ethX实现
        DEVICE=eth0#物理设备名
        IPADDR=192.168.10.8#IP地址
        NETMASK=255.255.255.0#子网掩码
        GATEWAY=192.168.0.1#网关地址
        ONBOOT=yes#[yes|no]引导时是否激活设备
        USERCTL=no#[yes|no]非root用户是否可以控制该设备
        BOOTPROTO=static#[none|static|bootp|dhcp]引导时不使用协议|静态分配|BOOTP协议|DHCP协议
        DNS1=8.8.8.8
        DNS2=202.96.209.5


        2.设置主机名
        通过修改/etc/sysconfig/network实现

        3.设置DNS
        通过修改/etc/resolv.conf实现

        4.修改网关配置
        通过修改/etc/sysconfig/network实现

        5.网络测试
        通过ping互联网上任何一台服务器检验之前的配置是否正确

        注意事项
        Centos5.8以上版本开始直接修改/etc/resolv.conf中的dns信息,等到重新启动机器会被一个叫做/sbin/dhclient-script的脚本覆盖掉,所以不能直接修改该文件而是要增加/etc/sysconfig/network-scripts/ifcfg-ethX文件中的DNS配置项来实现。汗!!花了好久才明白此中道理

      271/212>
      Open Toolbar