马哥教育第十四天内核编译、lftp、内核编译安装

  1. 内核参数配置

    /proc: 内核映像:许多参数(读写,只读),/proc:把内核参数net.ipv4.ip_forward虚拟成文件系统:net/ipv4/ip_forward

    只读文件:输出统计信息

    读写文件:设定内核工作特性,不允许使用文本编辑器打开进行编写,而只能使用重定向的方式或使用专用的工具

    几个常用参数:

    kernel.hostname:设定主机名

    vm.drop_caches:回收虚拟内存中buffers、cache中的空间。例如: echo 1 > /proc/sys/vm/drop_caches

    net.ipv4.icmp_echo_ignore_all:禁止其他主机ping该主机。echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

    net.ipv4.ip_forward:定义本机路由器功能是否开启。echo 1 >/proc/sys/net/ipv4/ip_forward

    sysctl:配置内核参数专用工具,读取配置文件/etc/sysctl.conf,常用选项如下:

    -w:VARAIABLE=VALUE指定内核参数修改值例如:sysctl -w net.ipv4.ip_forward=1

    -a:显示sysctl可修改所有内核参数

    -p:重读配置文件/etc/sysctl.conf并立即生效例如:sysctl -p

    sys:kernel在初始化硬件时,根文件系统尚未挂载,内核会把所有探测到的硬件信息全部映射到/sys目录中,用户空间udev程序就可根据/sys中信息来为每个设备按需创建设备文件。

    udev通过udevadmin命令读取sys目录下硬件信息,检查该硬件设备是否存在,没有就添加并创建设备文件,hotplug会实时监测sys目录,如有设备加入或减去就会通知udev创建或移除设备文件。例如,插入或移除u盘

    udev创建设备文件是根据udev规则进行,规则文件在/etc/udev/rules.d/

    dracut创建虚拟根文件例如:dracut /boot/initramfs-$(uname -r).img  $(uname -r)

    展开initramfs文件:之前需要查看压缩类型file initramfs-RELEASE.img

    # cp /boot/initramfs-RELEASE.img /tmp/initramfs.img.gz

    # gzip -d /tmp/initramfs.img.gz

    # mkdir /tmp/initramfs

    # cd /tmp/initramfs

    # cpio -id < /tmp/initramfs.img.gz

    exec COMMAND :能启动command为一个进程,此进程会取代当前shell进程;

    screen工具:启动新屏幕:screen、exit, 关闭屏幕、Ctrl+a, d:切换屏幕、

    screen -ls: 查看所有被隐藏的屏幕SID、screen -r SID打开屏幕

    lftp: ftp客户端工具

    -u USERNAME,PASSWORD:指定用户名和密码。

    -p PORT:指定端口。

    -e ‘CMD‘:执行一个命令 :例如 lftp -u root,root -p 123 192.17.54.1

    lftp: 命令:

    help: 获取帮助

    cd: 切换远程服务器上的文件系统目录

    lcd: 切换本地文件系统目录

    get FILE: 下载、mget FILE1...: 下载多个文件,支持使用通配符

    !COMMAND: 执行本地shell命令,而非ftp服务器上命令

    mirror DIR: 镜像目录至本地

    put FILE:上传文件、mput FILE1...:上传多个文件

    lftpget类似于wget: 下载指定URL

  2. Linux内核编译安装,

    在编译前需要先收集硬件信息,也可以根据系统收集的硬件信息进行编译/boot/config文件中

    查看CPU信息:cat /proc/cpuinfo、lscpu

    查看PCI:lspci -v

    查看USB:lsusb

    查看块设备:lsblk

    编译:linux支持交叉编译,在本机上根据需要运行的主机平台和硬件信息进行编译。

    编译内核的步骤:(必须安装好开发环境,c6: Development Tools, Server Platform Development, ncurses-devel),先检查包是否安装完毕:yumgrouplist,之后安装所需包:yum groupinstall “Development Tools”

    第一步:配置内核

    make config:手动指定功能开启或关闭

    make allyesconfig:开启内核中所有功能编译

    make allnoconfig:不开启任何功能编译

    make menuconfig:打开文本控制界面,让用户手动选择开启或关闭那些功能

    make gconfig:依赖GNome桌面环境及GNome的图形开发环境,gtk2

    make kconfig :依赖KDE桌面环境及KDE的图形开发环境,qt

    第二步:编译

    make -j 2 :-j指定用几颗cpu进行编译,编译速度可以提升。

    第三步:安装内核模块

    make modules_install

    安装位置:/lib/modules/VERSION/,分析模块间依赖关系并成dep文件

    第四步:安装内核

    make install,安装是否成功检查grub.conf中是否添加新的启动项。

    安装内核:/boot/vmlinuz-VERSION,编辑grub.conf,添加一新的title

    获取内核源代码,展开指定目录下:tar xf linux-version.tar.xz -C /usr/src

    在已有的内核上进行二次编译前需做清理操作:

    make clean:清理编译的文件,但保留配置文件

    make mrproper:移除所有编译生成的文件、配置文件和备份文件

    make distclea:完全清理

    将编译生成的文件保存至别处:

    mkdir /path/to/somewhere

    cd /path/to/somewhere

    ./configure --ksource=/usr/src/linux

    如何只编译内核的部分代码:

    只编译某子目录中的相关代码:cd /usr/src/linux、make  path/to/dir/

    只编译部分模块:make M=path/to/dir。例如:make M=drivers/net/

    只编译一个模块: make path/to/dir/MOD_NAME.ko。例如:make drivers/net/ethernet/intel/e1000/e1000.ko

    将编译生成的文件保存至别处:make O=/path/to/somewhere

    交叉编译:

    make ARCH=arch,

    获取某ARCH的可用的默认配置:make ARCH=arch help。例如:make ARCH=arm acs5k_defconfig

时间: 2024-08-08 06:17:05

马哥教育第十四天内核编译、lftp、内核编译安装的相关文章

马哥教育第二十四ftp协议、vsftpd的高级应用、rpc概念及nfs的基本应用、samba及其基本应用

1.ftp协议及vsftpd的基本应用         文件共享服务:                 工作在应用层:ftp(file transfer protocol)                          应用层协议:tcp,                  工作在内核:nfs                 跨平台:samba           ftp工作在221号端口,传输数据:                  命令连接:文件管理类命令,始终在线的连接       

马哥教育第十一天、rpm、yum、源程序安装

1.ldd显示共享库依赖关系(print shared library dependencies)可以显示命令所依赖于的库文件.例如:ldd /bin/ls 2.程序包管理器rpm(redhat package manager),程序包管理器包含(数据库:(明确指明程序名和版本,程序包之间的依赖关系,功能性说明,各文件安装路径及校验码).程序组成清单:(文件清单,安装卸载时运行的脚步)),管理器功能(打包.安装.卸载.升级.校验.数据库管理) 1.rpm包的命名格式:name-version-r

马哥教育第十六天至十九天学习总结

第十七天 raid raid 0 条带化 chunk size nmin(size) 读写的提升 至少2块盘raid 1 镜像 min(size) 写性能略降低,读性能提升 至少2块盘raid 5 奇偶校验 (n-1)min(size) 至少3块盘raid 6 奇偶校验 (n-2)*min(size) 至少4块盘raid 10 先做多个raid1,再组成raid0 安全性优于raid01raid 01 先做多个raid0,再组成raid1 raid 50 先做多个raid5,再组成raid0,安

马哥教育第四十一至四十三学习总结

第四十一天 cobbler1.安装包yum install cobbler dhcpsystemctl enable cobblerdsystemctl start cobblerdsystemctl enable tftp.socketsystemctl start tftp.socketsystemctl enable httpdsystemclt start httpd 2.根据cobbler check提示 1) vim /etc/cobbler/settings default_pas

马哥教育第二十一天httpd高级配置详解、编译安装

1.httpd.conf配置文件                 ★设置默认字符集                         AddDefaultCharset ★CGI脚本路径                         ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"指定cgi路径别名                               bash写CGI脚本:                                  所有

马哥教育M28-第5-7天的学习总结

马哥M28-第五天. linux安全的上下文: 进程的发起者       命令       对象 root           ping        127.0.0.1 root           touch       testfile1 primary group :主要组.私有组 supplementary  group : 辅助组.附加组.公有组 /etc/passwd:(里面记录的用户的密码映射到了/etc/shadow) pwconv :将passwd当中的密码映射到了/etc/

【挨踢人物传】马永亮:感悟学习三境界 引领马哥教育的崛起(第19期)

[编者有话]        本期的嘉宾马永亮,一次误以为是"擅长"的选择,开始结缘计算机,然而当真正接触后才发现犹如"井底之蛙",此前的擅长根本不值一提,从天堂到地狱的落差,没有挫败他的信心和追求,反而激起了他更加强烈的求知欲望,在IT的道路上不断的成长感悟-- [本期人物档案] 个人信息: 51CTO账号:马哥教育 姓名:马永亮 性别:男 所在地:河南郑州 教育信息:研究生 关键词:马哥教育创办人 Linux系统运维专家 51CTO专家博主 51CTO学院签约讲师

使用kubeadm快速部署Kubernetes(v1.12.1)集群---来源:马哥教育马哥原创

使用kubeadm快速部署Kubernetes(v1.12.1)集群------来源:马哥教育马哥原创 Kubernetes技术已经成为了原生云技术的事实标准,它是目前基础软件领域最为热门的分布式调度和管理平台.于是,Kubernetes也几乎成了时下开发工程师和运维工程师必备的技能之一. 一.主机环境预设 1.测试环境说明 测试使用的Kubernetes集群可由一个master主机及一个以上(建议至少两个)node主机组成,这些主机可以是物理服务器,也可以运行于vmware.virtualbo

2019{马哥教育2019年5月8号 M37 开班典礼}

来马哥教育好几天了,昨天算是正式开始在昨天早上举行了开班典礼,班主任老师首先给我们介绍了在马哥教育的讲师们和马哥教育的创始人,其次张sir为我们介绍了网络的发展趋势和linux初学者的见解,然后讲师王晓春王老师给我们讲解我们以后的课程. 我在这介绍我的讲师们:马哥创始人 马哥: 计算机安全专业硕士,Linux核心专家.51CTO专家博主.多年Linux及数据库实战和教学经验,擅长讲授Linux运维.企业级运维自动化.系统架构和优化.hadoop海量数据.IaaS云技术等相关的课程,马哥Linux