• RHEL6: 设置GRUB密码

    机器启动时,用户可以通过修改GRUB的启动选项,启用单用户模式,或者干些更加丧心病狂的事情。
    设置GRUB密码,用户如果要在GRUB引导时编辑引导信息,就要先输入GRUB密码。

    # grub-md5-crypt
    

    回车,输入密码,再次输入密码。
    会自动生成一串密码,如,

    $1$/xxxxx$xxxxxxxxxxxxx
    

    上面以$作为分隔,第一个参数表示加密方式,1是MD5,第二个参数是加密的Salt,最后一长串是密文。

    将上面整串东西加到 /boot/grub/grub.conf 中。

    # vim /boot/grub/grub.conf
    
    password --md5 $1$/xxxxx$xxxxxxxxxxxxx
    
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/sda3
    #          initrd /initrd-[generic-]version.img
    #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    password --md5 $1$/xxxxx$xxxxxxxxxxxxx
    hiddenmenu
    title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=8f8608d3-c941-4092-a9c5-b5aa9221515f rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
            initrd /initramfs-2.6.32-431.el6.x86_64.img
    
    重启,进入GRUB菜单,嗯,现在需要先按p输入密码之后才能按e编辑选项了。
    
  • RHEL6:创建并自动挂载加密分区

    给硬盘加密,让别人偷了硬盘也拿不到种。

    期望结果

    1. 给某一硬盘分区加密,需要密码才能挂载访问;
    2. 实现加密分区的自动挂载;

    测试方法

    1. 给加密分区安装好文件系统后,手动挂载分区;
    2. 在分区中创建几个文件(如aaa,bbb,ccc);
    3. 重启虚拟机,如果分区能正常挂载,应该能看到里面的aaa,bbb,ccc文件;
    4. 删掉/etc/password (后面会创建),分区应该无法挂载,连/dev/mapper里的都不会出现该分区的入口。

    实验环境

    在虚拟机中进行测试。

    增加一块硬盘

    1
    查看是否安装上硬盘

    # ls /dev/ | grep vda
    

    成功的话能显示vda。

    (更多…)

  • RHEL6:安装图形界面

    安装图形界面相关的package

    # yum groupinstall 'X Window System' 'Desktop Platform' 'Desktop'
    

    安装的东西比较多,需要耗费一定时间。
    (更多…)

  • RHEL6:配置yum本地安装源

    有时候需要从光盘里安装packages.
    这就需要先配置yum的repos,让它从本地光盘里找packages.

    挂载RHEL6系统光盘

    首先挂载RHEL6光盘。
    如果是硬盘上的iso文件,比如光盘路径是/tmp/rhel6.iso 那么执行下面命令将iso挂载到/mnt

    # mount -o loop /tmp/rhel6.iso /mnt
    

    如果是光盘(或者是从虚拟机插入),执行下面命令将光盘挂载到/mnt

    # mount /dev/sr0 /mnt
    

    挂载后,应该能看到/mnt下有光盘的内容。

    # ls /mnt/
    EFI      EULA_pt           README                    RELEASE-NOTES-it-IT.html  RELEASE-NOTES-ru-RU.html  RPM-GPG-KEY-redhat-release
    EULA     EULA_zh           RELEASE-NOTES-as-IN.html  RELEASE-NOTES-ja-JP.html  RELEASE-NOTES-si-LK.html  ScalableFileSystem
    EULA_de  GPL               RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-kn-IN.html  RELEASE-NOTES-ta-IN.html  Server
    EULA_en  HighAvailability  RELEASE-NOTES-de-DE.html  RELEASE-NOTES-ko-KR.html  RELEASE-NOTES-te-IN.html  TRANS.TBL
    EULA_es  images            RELEASE-NOTES-en-US.html  RELEASE-NOTES-ml-IN.html  RELEASE-NOTES-zh-CN.html
    EULA_fr  isolinux          RELEASE-NOTES-es-ES.html  RELEASE-NOTES-mr-IN.html  RELEASE-NOTES-zh-TW.html
    EULA_it  LoadBalancer      RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-or-IN.html  repodata
    EULA_ja  media.repo        RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-pa-IN.html  ResilientStorage
    EULA_ko  Packages          RELEASE-NOTES-hi-IN.html  RELEASE-NOTES-pt-BR.html  RPM-GPG-KEY-redhat-beta
    

    (更多…)

  • RHEL6: PXE+Kickstart自动安装系统

    用PXE+Kickstart实现大批量自动安装系统,鸟哥的Linux私房菜有很详细的讲解 http://linux.vbird.org/linux_enterprise/0120installation.php
    本文讲述如何用虚拟机搭建实验环境,以自动安装系统。

    实验环境

    实验需要建立两台虚拟机,一台用作提供安装文件的服务器(暂称它为Server),一台空白的用来尝试自动安装系统的机器(暂时称它为VM)。
    Server中要安装(提供) DHCP, TFTP, NFS服务;VM开启PXE引导即可;
    (更多…)

  • RHEL6:修复启动过程

    以下是几种系统无法启动的情况以及相应的解决方法。

    查看系统启动信息

    如果启动能进入GRUB引导,但是系统启动的时候出现问题,可以通过修改GRUB的配置来查看启动的调试信息,定位到问题再进行解决。
    1.系统启动时进入GRUB菜单;
    0-grub-menu
    2.按键盘上的’e’键,进入编辑模式;
    1-grub-menu
    3.选中kernel一项,按e编辑,删除最后的“rhgb quiet”,按enter保存,最后按b启动。
    2-grub-menu-kernel
    4.于是就看到系统启动过程中的调试信息了。(貌似直接启动系统,然后按Esc也能看到,不用搞这么复杂。)
    3-grub-booting
    (更多…)

  • 6 – 输入/输出:DMA

    DMA, Direct Memory Access. 设定后,无需CPU干预即可将外设数据读到RAM中去。
    摄像头组需要不断读取图像到内存,DMA可以分担图像读取的操作,大大减少了CPU的负担,于是我们可以有更多资源处理其他事情。
    DMA另一个好处是可以跟着摄像头的PCLK读取数据,图像不会有噪点。
    坏消息是,XS128不带DMA功能,呵呵。

    通过DMA读取图像的方法:
    1. 初始化摄像头管脚输入方向,初始化DMA;
    2. 场中断到来,允许行中断;
    3. 行中断到来,开启DMA,让DMA读取一行的数据;
    4. 关闭DMA,等待下一次行中断。

    (更多…)

  • 5 – 输入/输出:I2C

    I2C是一种串行通信总线,维基百科有比较详细的介绍 http://zh.wikipedia.org/zh-cn/I%C2%B2C

    它需要SDA和SCL两个接口来进行与外部硬件的通信。
    我们用到的数字加速度计用的就I2C通信的,用I2C的好处是,它只占用2个管脚就可以读14bit精度的数据,且外部的电路自带了各种滤波,而AD转换要读取8bit就用掉8个管脚。
    对I2C的工作方式,我的理解是,要用I2C读取外部硬件(比如数字加速度计),首先要向外部硬件发送“请求”,把要读取的寄存器地址请求过去,然后能得到相应的数据反馈。

  • 4 – 输入/输出:FTM(PWM输出,脉冲计数)

    本文将介绍K60(Freescale Kinetis K60)和XS128(Freescale S12XS128)的ADC用法。
    K60使用了野火的12年版底层库,请参考《三天入门 Cortex-M4—Kinetis 系列 野火 Kinetics 开发板教程》。
    XS128请参考飞思卡尔提供的Datasheet.

    PWM模块产生脉冲,用于控制电机。通过改变其占空比,可以控制电机输出的大小。
    脉冲计数(XS128的TIM)模块相当于一个计数器,可以对脉冲输入进行计数,用于测速编码器。
    PWM输出和输入模块都不占用运算资源,只要配置好,它们就能自己工作。
    K60的脉冲计数我忘了怎么做了,所以这里只提供XS128的方法。

    (更多…)

  • 3 – 输入/输出:ADC(模数转换)

    本文将介绍K60(Freescale Kinetis K60)和XS128(Freescale S12XS128)的ADC用法。
    K60使用了野火的12年版底层库,请参考《三天入门 Cortex-M4—Kinetis 系列 野火 Kinetics 开发板教程》。
    XS128请参考飞思卡尔提供的Datasheet.

    ADC可以将电压信号转换成数字信号。
    你可以配置它的读取精度,我这里用10bits或12bits。
    以K60为例,如果配置精度为10bits,那么它就将3.3V电压平均分成1024份,数字输出为0则代表0V,输出1024则代表5V,输出512则代表2.5V。
    同样,使用ADC之前,要对它进行初始化。

    (更多…)