linux内核文件分区表,编译一个内核及分区格式化

编译一个内核

首先,配置好编译环境:用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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值