编译一个内核及分区格式化

                                                       编译一个内核
首先,配置好编译环境:用yum装几个软件包yum groupinstall "Development Libraise" "Development Tools"这是文本字符界面,装上这两组包就能够完成编译环境;若想用图形界面还可装"X software Development" "KDE software Development"这两组包;还须要知道一些硬件信息,可用cat /proc/cpuinfo显示CPU的信息,用cat /proc/interrupts显示中断号,用hal-device列出搜有硬件信息,用hal-device-manager在图形化界面看硬件平台。下面只介绍用文本字符界面的环境:
环境配置好了,就要开始编译源码包:
1.)从网上下载Linux的内核压缩包(以linux-2.6.28.10tar.gz为例),并把它放到/usr/src内,并用tar解压缩包。
2.)建立一个连接文件ln -sv linux-2.6.28.10    linux,而后ls -al肯定linux是linux-2.6.28.10的软连接文件,在cd linux进入目录linux中。
3.)执行命令make menuconfig进入文本字符编辑界面,可对内核进行编辑,
具体编辑内容可参考: http://lamp.linux.gov.cn/Linux/kernel_options.html,编辑完成后保存后退出,保存文件为.config。
4.)执行make命令开始编译(大约40多分钟)。
5.)编译后输入make modules_install和make install安装。
最后,待安装结束,重启Linux,选择linux-2.6.28.10可正常启动Linux操做系统,由此一个源码的内核包就被编译为一个二进制包,内核编译完成。
 

                                                       内核的职责
1.)系统初始化
2.)进程调度
3.)内存管理
4.)安全方面,selinux和防火墙
5.)缓冲预缓存
6.)支持标准网络协议
 

                                                        uname命令
uname:打印系统信息
      -a          显示全部系统信息
      -s          显示内核的名字
      -n          显示nodename(主机名)
      -r          显示内核的发行版本号
      -v          显示内核的版本号
      -m          显示硬件平台
      -p          显示处理器类型
      -i          显示硬件平台架构
      -o          现实操做系统
 

                                                       主分区的类型
5           Extended            扩展分区
82          Linux swap          交换分区
83          Linux               ext2,ext3分区
8e          Linux LVM           LVM分区
fd          Linux RAID auto     RAID分区
 

                                                          分区命令
fdisk -l                                显示硬盘分区表状况
fdisk   /dev/sda(设备名称)
      p          列出当前分区表
      n          建立一个新分区
      d          删除一个分区
      t          改变分区change system id
      u          显示分区大小时,用扇区表示大小
      q          推出不保存
      w          保存并退出
partprobe        内核重读硬盘分区表
mkfs  -t ext3 /dev/sda1  ==  mkfs.ext3  把/dev/sda1分区以ext3形式格式化
mkfs  -t ext3 /dev/sda2  ==  mkfs.ext2  把/dev/sda2分区以ext2形式格式化
mkswap    /dev/sda3                     建立交换分区       
mke2fs  [options]  device
         -b                             指定块的大小
         -c                             在格式化系统时检查是否有坏块
         -i                             指定字节与Inode的比率,比率越大,inode号越小,但不能小于块的大小
         -m                             指定了为管理员用户(以维护数据)预留的空间占整个空间的比率,默认为5%
         -n                             作测试,看格式化以后会出现什么状况
         -N                             指定Inodes的数目,你能够创多个Inode号,但有上线
         -L                             指定卷标
         -E                             引用扩展选项,指定调带大小,加速RAM
         -j                             可以使ext2文件系统升级为ext3文件系统,可升级但不可降级
         -J                             记录日志,对忽然断电的状况可检查日志已恢复数据
e2lable  /dev/sda1                              查看ext2/ext3的卷标
e2lable  /dev/sda1  root                改变设备/dev/sda1的卷标为root
blkid                                   查看设备卷标,UUID等信息
fsck                                    检查并修复一个Linux文件系统
         -t                             指定文件系统的类型
         -a                             检查是不是自动修复系统的
         -i                             交互式的说明是否要修复系统
tune2fs                                 只能对ext2修改
tune2fs  -m  10    /dev/sda1            把为管理员用户(以维护数据)预留的空间占整个空间的比率调整为10%
tune2fs  -o  acl,user_xattr  /dev/sda1  为设备设定默认的选项
tune2fs  -i0 -c0     /dev/sda1          -i表示调整时间间隔自检,默认180天在自检,0表示关闭;-c表示挂载多少此后自检,0表示关闭
 
                                                     mount命令
mount [options]  -o [options]  /dev/device /path to mount_point
       -r                               只读挂载          
       -w                               读写挂载
       -a                               表示挂载/etc/fstab中的每个文件系统
       -t                               表示文件系统类型
       --bind                           再是绑定到挂载点
                      ro                只读挂载
                      rw                读写挂载      
                      sync              同步写入
                      async             异步写入(暂存与内存)
                      defaults          默认选项
                      auto              是否容许自动挂载
                      dev               支持特殊设备文件
                      exec              是否执行二进制文件
                      nouser            禁止普通用户挂载文件系统
                      netdev            表示网络设备,判断服务是否在线
                      remount           从新挂载
                      suid              是否支持带suid位的文件系统
                      acl               是否启动acl列表
                       
fuser -v  /mount_point                  看谁在使用此设备     
fuser -km /mount_point                  强行剔除使用此设备的用户和进程
/etc/fstab是在系统启动时自动挂载文件系统的列表;文件由6段组成:设备:挂载点:文件系统类型:挂在选项:转储频率:开始时检查文件的次序
/etc/mtab是当前系统已经挂载的文件系统的信息
                          内核模块(.ko) 内核模块的优点:他能够减小内核的体积;增长弹性;提升运行时间。 每个内核都会有一个内核模块与之对应,存放内核模块的目录在/lib/modules/$(uname -r)/内。 与内核模块有关的命令: lsmod                显示以加载模块的详细信息 modprobe             加载模块(后跟模块名)    modprobe -l          列出加载的模块 modprobe -s          错误信息记录到日志中去 modprobe -r          卸载模块 modinfo              显示模块的摘要信息 insmod               加载模块(后跟模块的全路径) AN initrd RAM disk的重建:mkinitrd /boot/initrd-$(uname -r).img $(uname -r)
相关文章
相关标签/搜索