2024年运维最全Linux操作系统安装盘的定制_汪伦伟(2),2024年字节跳动74道高级程序员面试

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!




          
          

  
          
          somegroup

  
          
          Sample Group

  
          
          true

  
          
          false

  
          
          This is a silly sample group

  
          
          

    
          
          bash

    
          
          cpio

  




|

下面分别说明组定义中一些参数的含义:

  • id:组的id仅仅是在comps.xml文件中作为该组的一个标识,这是必须的;
  • name:表示用户可以看到的组的名字,它也是必须的;
  • default:它表示在系统安装过程中,当选择定制(custom)安装时,该组是否在缺省情况下被选中。如果没有说明,则缺省情况下为不选中。
  • uservisible:它表示该组在缺省情况下是否在安装时可以看到,如果没有说明,缺省设置为YES,为可以看到。
  • description:它表示对该组进行简短的描述,这是必须的;
  • packagelist:它说明在该组内的一系列安装包,这也是必须的。

packagereq:包名

属性:

+ type:当进行安装时,判定对应的包是否是组的"强制"部分、或"缺省"部分或"可选"部分。它可以是"mandatory"、"default"或"optional"之一。
+ requires:它说明只有当它所需要(依赖)的包也安装情况下,此包才安装进系统。

(2)组层次结构

它描述了组的树状层次结构,组层次结构定义在
和标记之间,由定义的
标记组成类。

一个简单的组层次结构可以如下所述:




          
          

  
          
          

    
          
          Random Groups

    
          
          

      
          
          somegroup

    

  




|

一个类由下面这些属性组成:

  • name: 它表示类名,是必须的;
  • subcategories: 它表示此类的一些子类,由一列表
    和 元素组成
    • subcategory: 前面定义的组的id

(3)RPM包

此部分说明要安装的RPM包,它定义在
和标记之内。一个简单的RPM包部分可以如:




          
          

  
          
          bash

  
          
          

    
          
          mktemp

    
          
          bash

    
          
          glibc

    
          
          libtermcap

  




|

  • name:它指的是RPM包名,是必须的。
  • dependencylist:它说明此包对应的依赖的RPM包。
    • dependency:此包需要的包的名字

4.2 产生完整的comps.xml文件

上述说明的comps.xml文件中的RPM包部分是是自动产生的,为了形成完全的comps.xml文件,需要在系统中安装comps-extras RPM包,然后进行下面的操作:

  • 将comps.xml文件中的原来的RPM包部分删除;
  • 运行:

/usr/share/comps-extras/getfullcomps.py comps.xml /path/to/tree arch >/root/filelist 在此,/path/to/tree是Red Hat Linux操作系统安装盘内容存储的地方,arch指的是体系结构,为i386。注意的是,假定comps.xml已经存放 /path/to/tree/arch/RedHat/base/目录下,将此输出重定向到一个临时文件,如/root/filelist。

  • 将comps.xml文件中最后一行内容(为)删除
  • 将前面生成的临时文件添加到comps.xml中
  • 再将添加到comps.xml文件中

通过新增你的包到comps.xml文件,你可以根据你的需要做你自己的发布盘,确信你的包在缺省情况下会被安装。需要注意的一件事是你更新的包与其它包的依赖关系,这是你需要处理的,要注意你更新的包所应该放置的位置。另外,不要在文件中随意增加或删除其余的空格。在修改comps.xml之前,也最好对最初的comps.xml做个备份,以备恢复使用。

4.3 重新编译安装程序,调整安装阶段

安装程序是不可能一次就加载进来的,必须分阶段进行,通常我们就称为"stage"。第一个阶段所用程序很小,只有这样才能从一张软盘、tftp服务器等等上面加载。通常这个阶段程序包含的只有一个精简过的Linux内核和在后续步骤当中必要的一些驱动程序(比如SCSI)。

要采用一个新的RedHat安装,就会需要很多的映像,最明显的就是引导安装盘本身(从软驱或者光驱安装)的boot.img,但是我们也需要对从硬盘、网络文件系统等安装方式提供支持。

RedHat就此提供了很好的脚本命令,只需一个简单的操作就可以完成所有的操作。这些脚本的工作就是把某些RPM包的内容提取出来,然后用来生成各安装步骤所用程序的映像。

所再强调的是,我们必须保证安装了anaconda-runtime:

#rpm -i anaconda-runtime-xxxxx-i386.rpm

接着进入目录/usr/lib/anaconda-runtime,这里我们会看到一些非常有用的脚本,比如:

  • mk-images.i386:包涵有创建启动磁盘时i386的专门设置(通常情况下,网络和pcmcia)以及辅助磁盘驱动程序。在此您可以改变启动映像中所包含的模块,比如说在网络启动磁盘有:


……

NETWORKMODULES="$COMMONMODULES nfs 3c59x eepro100 tulip pcnet32

ne2k-pci 8139too"

……..


|

  • buildinstall 这是主要的。


#cd  /usr/lib/anaconda-runtime

#./buildinstall ~/disc1/


|

这个脚本命令会在~/disc1/images目录下更新一些的文件。

4.4 生成新的hdlist文件

当安装时,安装程序需要依赖光盘上的Fedora/base/hdlist文件,它包含的是所有可用的RPM包的必要信息,这些信息在安装过程当中是用来显示每一个包的用途以及解决用户选择软件包后的依赖性问题。

用以生成hdlist文件的程序叫做genhdlist,它是由anaconda-runtime这个包产生的。现在的genhdlist多了一个新的参数:–withnumbers,是用来记录hdlist文件中每个RPM包的媒介代号。

分步处理的过程如下:



#rpm -i anaconda-runtime-xxxxx-i386.rpm

#cd /usr/lib/anaconda-runtime

#./genhdlist -- withnumbers ~/disc1  ~/disc2 ~/disc3  ~/disc4


|

整个过程只需要执行一个脚本,见附录一:kernel-update.sh。

如果你在系统中添加了RPM包,那么在生成安装盘之前,最好将这四张盘上的内容复制到一个目录下,然后修改附录一的脚本文件,运行脚本,先网络安装一次,看是否存在包的依赖关系问题。如果没有,则可以生成安装盘。

5 生成iso映象

当前面系统进行网络安装成功后,则可以生成iso映象,然后进行刻盘,执行的操作如下:



# build disk 1

cd  ~/disc1     /*假设我们将第一张盘的内容放置在此外*/

mkisofs -R -J -T -no-emul-boot -boot-load-size 4 -boot-info-table -V 
fedora  -b isolinux/isolinux.bin  -c isolinux/boot.cat -o /iso/exm-disc1.iso  .

/*使用mkisofs工具生成iso映象,将生成的iso映象放在/iso目录中*/

# build disk 2

cd  ~/disc2     /*采用同样的方法,生成第二个iso,依次。*/

mkisofs -R -J -T -V fedora -o /iso/exm-disc2.iso .


|

在生成iso映象之后,需要对它进行测试,你可以将它挂接到某个地方,比如:



mount -o loop /iso/exm1-disc1.iso  /mnt


|

在生成安装iso(exm-disc1.iso)之后,我们可以将它复制到windows系统中,采用刻录程序进行刻录,然后可以从光盘安装,进行安装测试。

附录一:kernel-update.sh



#!/bin/sh



# current working directory

BASE=`pwd`



# generate hdlists

mkdir -p $BASE/SOURCES

echo   

echo Copying disc1 to SOURCES directory, please wait...

cp -Rf $BASE/disc1/* $BASE/SOURCES 

echo Copying disc2 to SOURCES directory, please wait...

cp -Rf $BASE/disc2/* $BASE/SOURCES

echo Copying disc3 to SOURCES directory, please wait...

cp -Rf $BASE/disc3/* $BASE/SOURCES

echo Copying disc4 to SOURCES directory, please wait...

cp -Rf $BASE/disc4/* $BASE/SOURCES

echo   



echo Make sure anaconda, anaconda-runtime is installed...

rpm -U $BASE/SOURCES/Fedora/RPMS/anaconda-*.rpm



# generate hdlists*

cd /usr/lib/anaconda-runtime

./genhdlist --withnumbers $BASE/disc1 $BASE/disc2 $BASE/disc3  $BASE/disc4

# generate the package ordering

./pkgorder $BASE/SOURCES i386 |tee /root/pkgorder.txt



./buildinstall  --pkgorder /root/pkgorder.txt --version 1 --product 
"Fedora" --release "Fedora" $BASE/SOURCES



$BASE/SOURCES

cp -apRf $BASE/SOURCES/images/* $BASE/disc1/images

cp -apRf $BASE/SOURCES/isolinux/* $BASE/disc1/isolinux

cp -apRf $BASE/SOURCES/RedHat/base/* $BASE/disc1/RedHat/base



echo Cleaning up...

rm -rf $BASE/SOURCES


|

(end)
from

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-Y5SPvEAz-1714806618580)]
[外链图片转存中…(img-BMUnVjMH-1714806618581)]
[外链图片转存中…(img-ePyLDw8B-1714806618581)]
[外链图片转存中…(img-ttDXEY80-1714806618581)]
[外链图片转存中…(img-9WTrHLfQ-1714806618581)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值