德才手游网:十大热门手游排行榜2023前十名,十大热门手机应用排行榜2023前十名,让你Get最新手游应用、分享你的热辣点评。
网站地图
你的位置: 首页 > 游戏资讯 > 操作系统

详细介绍网络安装 Linux

  • 2023-04-05 05:29:33
  • 来源:网络
  • 在手机上看

    扫一扫立即进入手机端

Linux经过长时间的发展,很多用户对网络安装 Linux概念,我发表一下个人理解出来和大家深入简述一下。但在现实环境下,很多原因会导致我们无法选择安装一个新的 Linux 发行版本文通过将网卡驱动加入到 initrd.img 中,使 Linux 内核在启动的过程中能识别并加载网卡驱动,从而使网络安装得以进行。如果熟悉 Linux 的启动过程和驱动程序,那么要解决本文的问题,基本上有两条路可走。

网络安装 Linux 并不是一个新鲜的话题,其过程也不是一个轻松的体验。为了让机器能通过网络来安装 Linux,如果还需要配合 kickstart 来自动化网络来安装 Linux过程的话,用户需要做大量的配置工作。众所周知,用户需要挑选一台机器作为服务器,然后在这台机器上配置 DHCP, TFTP, NFS/Http/Ftp, pxelinux, kickstart 等一系列的东西。

学习网络安装 Linux时,你可能会遇到XX问题,这里将介绍XX问题的解决方法,在这里拿出来和大家分享一下。但是所有的这一切能成功运作都至少有一个前提条件:我们所网络安装 Linux 能正确的识别并驱动所有客户机的网卡。如果网卡驱动不了,客户机根本无法通过网络从服务器取到所需要的东西,网络安装 Linux 就无从谈起了。

本文通过将网卡驱动加入到 initrd.img 中,使 网络安装 Linux 内核在启动的过程中能正确识别并加载网卡驱动,从而使网络安装得以进行。本文并不讲述网络安装 Linux 的背景知识(如为什么需要网络安装,网络安装的好处等)、具体配置和操作步骤(也就是配置 DHCP,TFTP,pxelinux 等内容)。此外,本文需要读者有熟练的 网络安装 Linux 操作经验和 Shell 编程的基本知识,而且对 Linux 启动过程和驱动程序有基本的了解。
注:所有被安装的机器我们称之为客户机,提供网络安装服务的机器我们称之为服务器

开始之前的建议

建议:如果您碰到了前言中所描述的问题的话,最好的解决方法是 – 找一个能驱动客户机网卡的 Linux Distribution,这样能省却很多麻烦。
但在现实环境下,很多原因会导致我们无法选择安装一个新的 Linux 发行版。原因有很多,比如:
客户不同意我们选用其他的 网络安装 Linux 版本,因为客户有大量的应用程序已经在某个Linux 版本上编译,运行良好了,更换 Linux 发行版会带来应用的移植问题
客户拥有一些特殊的硬件,而这些硬件只有基于某个 Linux 发行版的驱动。更换 Linux 发行版,会导致这些硬件无法正常工作
没有一个 Linux 发行版能驱动客户机的网卡。网卡厂商只给我们提供了某个 Linux 发行版上的驱动,一切都要 DIY
您有着强烈的DIY情感,面对问题不是寻求别人的解决方案而是一切都要自己克服 – 毫无疑问,您就是本文最适合的读者

解决思路

如果熟悉 Linux 的启动过程和驱动程序,那么要解决本文的问题,基本上有两条路可走。第一就是将网卡驱动编译进内核(静态链接进内核),第二种方法就是将网卡驱动做成模块,然后想办法在网络安装 Linux 启动的时候让 Linux 内核能找到并挂载该驱动。面对这两种方案,第二种方法有更好的可行性和扩展性。因为首先有些网卡驱动本身就不能被静态链接进入内核,而只能被编译成一个模块,例如下文要举的例子 - e1000 网卡驱动;其次,驱动做成模块的方式,可以适应多个内核版本,用方法 1,更换一个内核版本就要重新编译一次内核;最后,等会会看到,相比编译内核,方法 2 更简单和可操作。

方法 2 的实现手段就是定制 initrd.img,将我们的网卡驱动加进去。initrd.img 是一个小型的根文件系统,在 Linux 内核没有挂载硬盘上的根分区的时候,initrd.img 将在内存中展开。一般情况下,initrd.img 中将包含一些必需的命令和驱动,如 insmod 命令和磁盘驱动。有了 insmod,才能将磁盘驱动挂载进内核,有了磁盘驱动,内核才能挂载位于磁盘上的根文件系统。

大部分的 Linux 发行版都提供了用于网络安装 Linux 的 initrd.img,一般位于第一张安装光盘的 images/pxeboot 目录下。在一台已经装好 Linux 的机器中,在 /boot 目录下我们也能找到 initrd.img,比较一下这两个 initrd.img,会发现 pxeboot 目录下的 initrd.img 会比 /boot 下的大很多,这是因为在网络安装的情况下,Linux 不会尝试去挂载位于磁盘上的根分区(事实上,在没有安装Linux的机器上,此时磁盘中可能什么数据都没有),所以此时的 initrd.img 需要包含大量的驱动,使网络安装 Linux 能识别大量的硬件。位于 /boot 下的 initrd.img,基本上唯一需要的东西就是磁盘驱动,只要内核能访问磁盘,那么其余所需的东西都可以从磁盘取得而不需要依赖 initrd.img。

具体操作和实例

从安装光盘中取得 initrd.img 之后,就可以开始对其进行定制。这里要感谢 Jeremy Mates,他写的 initrd-util.sh 能很好的解开和生成一个 initrd.img。脚本可以在https://img.lengguim.com/images/20221208/p1ldetf51lg /> 下面我们以RedHat Enterprise Linux Advance Server 4 Update 2 x86_64,Intel e1000网卡驱动为例,讲述具体的操作过程(在本例中,服务器和客户机拥有相同的Intel e1000网卡,而且我们已经手动在服务器上安装完成了正确的e1000驱动):
首先从光盘取到initrd.img,登录到服务器,然后用initrd-util.sh解开:

命令输出 1. 解开initrd.img
[root@ericvm ~]# cd `./initrd-util.sh unpack initrd.img |tail -1`
info: initrd unpack expanded into: /var/tmp/initrd-util.workdir.DA29317
[root@ericvm initrd-util.workdir.DA29317]# pwd
/var/tmp/initrd-util.workdir.DA29317
[root@ericvm initrd-util.workdir.DA29317]# ls
2.6.9-22.EL bin dev etc linuxrc lost+found modules
proc sbin selinux sys tmp var

initrd-util.sh很简单,利用gunzip, mount和cpio这些工具将initrd.img解开,其中驱动包位于modules目录下,名为modules.cgz,将这个文件解开后,生成了2.6.9-22.EL目录,进入该目录,就能找到包含在initrd.img中的驱动。本例中,RedHat已经包含了一个e1000的驱动,但是这个驱动不能驱动我们新的Intel e1000网卡。为此,我们在e1000网站下载新版的驱动,然后在服务器上编译完成,生成ko模块文件,然后拷贝到2.6.9-22.EL目录下,覆盖原文件即可。

驱动更新完毕后,现在我们需要将2.6.9-22.EL这个目录重新制作成modules.cgz,这个功能initrd-util.sh不能为我们完成,所以我们手动操作:

命令输出 2. 加入驱动并重新打包
[root@ericvm initrd-util.workdir.DA29317]# find 2.6.9-22.EL | cpio -o -H crc > newmodules
16582 blocks
[root@ericvm initrd-util.workdir.DA29317]# gzip -n -9 newmodules
[root@ericvm initrd-util.workdir.DA29317]# mv newmodules.gz modules
[root@ericvm initrd-util.workdir.DA29317]# cd modules
[root@ericvm modules]# rm -f modules.cgz
[root@ericvm modules]# mv newmodules.gz modules.cgz
[root@ericvm modules]# pwd
/var/tmp/initrd-util.workdir.DA29317/modules

驱动包重新生成了并不意味着Linux就可以识别网卡了,因为网络安装 Linux必须依靠一种逻辑,将硬件设备和驱动模块文件对应起来。这个逻辑就被定义在modules目录下的除modules.cgz之外的文件中:

命令输出 3. 设备驱动识别信息文件

[root@ericvm modules]# ls
module-info modules.cgz modules.dep modules.pcimap modules.usbmap pci.ids pcitable

如上所示,pcitable, modules.pcimap中定义了PCI设备和驱动模块之间的对应关系,modules.dep中定义了模块和模块之间的依赖关系(比如,各种SCSI设备都会依赖一个基础的SCSI驱动模块),module-info中定义了驱动的静态描述信息......

要填写这些文本文件,也很简单,首先我们必须要知道这块e1000网卡的PCI设备信息,由于在服务器上e1000这块网卡已经安装完成了,所以我们可以在服务器上取到我们想要的信息:

命令输出 4. 查看网卡硬件信息
[root@ericvm ~]# lspci
............ ignore some outputs
04:00.0 Ethernet controller: Intel Corporation Enterprise Southbridge DPT LAN Copper
04:00.1 Ethernet controller: Intel Corporation Enterprise Southbridge DPT LAN Copper
............ ignore some outputs
lspci列出了服务器上两块网卡的设备信息,根据网卡设备的ID号码(04:00.0, 04:00.1),我们就可以在lspci –n的输出中找到设备的vendor code和device code(请参考lspci的manual了解lspci):

命令输出 5. 查看网卡code
[root@ericvm ~]# lspci –n
............ ignore some outputs
04:00.0 Class 0200: 8086:1096 (rev 01)
04:00.1 Class 0200: 8086:1096 (rev 01)
............ ignore some outputs

在lspci –n的输出中,我们找到了两块网卡的vendor code和device code – 8086和1096。得到了vendor code和device code之后,就可以更新initrd.img中modules目录下的pcitable, modules.pcimap等这些文件了。举例来说,在pcitable中查找e1000,能发现很多设备和e1000这个驱动关联,但是唯独没有8086:1096的组合,这就是为什么Linux无法驱动这块e1000网卡的原因了

游戏推荐

apex英雄安装不成功(apex英雄游戏安装遇到问题) 《轩辕剑7》銮魃boss详细打法介绍大全(轩辕剑7銮魃) 《破晓传说》战斗系统详细分析(破晓传说战斗系统详解) 阿比斯的宝藏详细攻略(阿比斯的宝藏攻略) 《帝国时代4》皇家骑士详细介绍(帝国时代4王朝) 《使命召唤》游戏安装失败怎么解决(《使命召唤》游戏安装失败怎么解决视频) dnf阿拉德谋略战第二期加点大全(dnf阿拉德谋略战第二季加点详细介绍) epic购买过游戏更改地区详细方法(epic怎么改地区) lol手游为啥安装失败(lol手游安装失败其他原因) ps2樱花大战炽热之血中文版(ps2樱花大战炽热之血中文版下载安装) 暗黑三魔法师维尔棒棒糖(暗黑3法师维尔棒棒糖输出详细视频讲解) 《原神》迷城战线玩法详细图解说明书(元神迷城战线) 2077巫毒帮和网络监察都杀(赛博朋克2077网络监察和巫毒帮) 《真女神转生5》游戏详细解析大全(《真女神转生5》游戏详细解析大全攻略) 《绝地求生》s686详细参数介绍(s686绝地求生) v2rayng应用未安装(v2ray无法安装) 《剑士》挖矿流程详细攻略(《剑士》挖矿流程详细攻略图) 《绝地求生》win94详细参数介绍(绝地求生win94狙击步枪) 《绝地求生》mp5k详细参数介绍大全(《绝地求生》mp5k详细参数介绍大全) 《帝国时代4》加农炮详细解析(帝国时代4农田) 《鬼谷八荒》水剑详细培养攻略大全(鬼谷八荒水剑流功法搭配) lakeshore游戏引擎(lakeshore游戏引擎安装) 《帝国时代4》僧侣详细解析攻略(帝国时代4xgp) 《帝国时代4》僧侣详细解析攻略(《帝国时代4》僧侣详细解析攻略) 《帝国时代4》射击军详细介绍(《帝国时代4》射击军详细介绍) 《天谕》手游安装包多大内存(《天谕》手游安装包多大内存够用) picoparksteam(picoparksteam无法安装) 《骑马与砍杀2》好用mod安装推荐教程(《骑马与砍杀2》好用mod安装推荐教程视频) chattr(安装chattr) 暗黑3牧牛杖制作攻略牧牛杖材料详细说明(暗黑3牧牛杖图纸什么难度掉) 《无主之地2》新dlc无敌boss打法详细介绍大全(无主之地2所有无敌boss位置) 《剑士》挖矿流程详细攻略(剑士怎么刷钱) apex英雄怎么看网络延迟(apex怎么看延迟) psv灾厄逆刃(psv灾厄逆刃安装失败) 艾兰岛中文版(艾兰岛中文版下载安装) 《生化危机8:村庄》完整剧情详细梳理攻略(《生化危机8:村庄》完整剧情详细梳理攻略图) 《咒语破碎》萌新主流玩法指南(咒语破碎下载,安装) 《鬼谷八荒》一拳超人配置推荐(鬼谷八荒一拳超人的详细教学) 《枪火重生》武器系统详细介绍大全(枪火重生武器推荐) hmcl启动器常见问题(hmcl启动器下载安装) 《帝国时代4》骑射手详细解析攻略(《帝国时代4》骑射手详细解析攻略) punkbuster需要安装吗(punkbuster下载) steam安装不了什么原因(steam安装不起来) 《明日方舟》怎么安装模组教程(明日方舟模组使用方法) 矮人要塞linux(矮人要塞linux安装) 《帝国时代4》骑射手详细解析攻略(帝国时代4打法) apex离线包安装方法(apex离线包最新) lol手游安卓教程(lol手游安卓安装教程) x4基奠mod安装在哪里(x4基奠是单机嘛) 《帝国时代4》僧侣战士详细介绍(《帝国时代4》僧侣战士详细介绍视频) 《喵咪斗恶龙2》游戏详细介绍(喵咪斗恶龙2喵之挑战) 《王国之心3》游戏系统详细介绍大全(王国之心3视频攻略解说) v2rayng应用未安装(v2rayng无法安装) ios软件wifi许可开不了(ios无线网络app允许) 《帝国时代4》长弓兵详细介绍攻略(帝国时代4武器) 《第七史诗》在哪安装(《第七史诗》在哪安装游戏) 《鬼谷八荒》水剑详细培养攻略大全(鬼谷八荒水剑技能搭配) 《蓝月传奇2》游戏无法安装怎么办啊(《蓝月传奇2》游戏无法安装怎么办啊视频) apex英雄离线包怎么用(apex离线包安装方法) 《恶果之地》全武器详细介绍(恶果之地武器推荐) 《饥荒》萤火虫详细介绍(饥荒萤火虫放在哪儿才不会不见) 《剑侠情缘网络版3》(《剑侠情缘·网络版叁》) 《原神》覆雪之国任务解密流程攻略(《原神》世界任务覆雪之国详细攻略) 《人类黎明》基础操作教程攻略全集(人类黎明详细攻略) steam泰拉瑞亚安装不了(泰拉瑞亚1.4安装不了) 矮人要塞自己造的墙怎么拆掉(矮人要塞怎么安装) 《原神》射手丘丘人详细位置怎么打(原神射手丘丘人在哪里) 暗黑破坏神2详细地图(暗黑破坏神2详细地图怎么打开) 《永劫无间》不同段位阵容推荐一览(永劫无间段位详细介绍) lol手游符文讲解(lol手游符文介绍详细图解) 暗黑3猎魔人掠夺者装备搭配(暗黑3猎魔人掠夺套玩法详细配装选择介绍) 《枪火重生》狗子新手玩法指南攻略(枪火重生狗子详细教程) ns联机看速度还是上传(ns联机网络质量) ps4暗黑破坏神2连不上网(ps4暗黑破坏神2连不上网络怎么办) 暗黑不朽安装包(暗黑破坏神不朽安装包) 《王国之心3》游戏系统详细介绍大全(王国之心3gamespot) apex安装失败(apex安装失败vc) epic消费过如何改区(epic购买过游戏更改地区详细方法) wordclock(wordclock安装包) 《lol手游》安装失败怎么办解决(为什么我的英雄联盟手游安装失败) 《疯狂游戏大亨2》网络游戏和免费游戏的区别(疯狂游戏大亨2网络游戏) fifa20怎么降低延迟(fifa21网络延迟设置) 100个隐藏包裹地图(100个隐藏包裹详细地点) 《帝国时代4》长弓兵详细解析(帝国时代长弓兵) openroadsdesigner安装教程(openroadsdesigner中文界面) 《帝国时代4》战象详细解析攻略(帝国时代4中国战役) 《这就是警察》实用技巧分享(这就是警察详细图文攻略) forza地平线5(forza地平线5安装慢) uplay不能联网(uplay网络连接不可用) csgo计分板挡住雷达(csgo计分板详细数据怎么显示) 薄暮传说详细攻略(薄暮传说攻略书) 《鬼谷八荒》水剑详细培养攻略(《鬼谷八荒》水剑详细培养攻略大全) 《史前王国》游戏配置高吗(史前王国下载安装) apex英雄离线包最新(apex最新离线安装包) nba2k21网络延迟(nba2k21网络很慢) x4基石mod安装(x4基石4.0更新) apex安装很久(apex英雄显示安装失败怎么办) steam游戏装在哪个盘(steam的游戏安装在哪个盘) 《lol手游》安装失败怎么办啊(《lol手游》安装失败怎么办啊怎么解决) 《剑士》销赃方法详细介绍(剑士卖东西) steam光环致远星进不去(光环致远星安装了却玩不了) lol手游韦鲁斯技能连招(lol手游韦鲁斯w技能详细介绍) 《帝国时代4》三桅战船详细解析图(帝国时代4战役) 《帝国时代4》骆驼射手详细解析攻略(帝国时代骆驼骑兵) 阿达拉是什么意思(阿达拉是什么意思网络用语) 《无主之地2》新dlc无敌boss打法详细介绍(《无主之地2》新dlc无敌boss打法详细介绍视频) Linux Linux中应用讲解GNULinux系统安装 我的世界地狱堡垒怎么找-地狱堡垒详细攻略 Ubuntu安装NVIDIA全新Linux驱动 网络安全知识:独门秘籍阻止网络病毒的自动执行 Windows7安装 常见Windows7安装失败原因分析 江南百景图保安堂药铺获得方法-保安堂药铺效果与详细获取方法介绍 无线网络安全 如何保护无线网络安全连接 windows服务器详细安全设置 从异常系统进程检查企业网络安全 安装Kloxo面板和中文语言包 DHCP服务的安装和停止 网络 七招破解WinXP访问网络慢的故障 保障隐私请不要把秘密留在网络上 原神层岩巨渊铁门怎么开-原神层岩巨渊攻略详细通关 MKV文件用什么播放器播放?MKV是什么格式的详细介绍
更多

手机游戏排行榜