我正在尝试了解Linux发行版的ISO映像文件的内容以及安装过程如何进行。在这里,我特别谈论最小版本的CentOS 6.4。
因此触发了ISOLINUX,并显示了菜单。然后我点击安装。
它加载内核和initrd文件系统。
我的问题是:
Anaconda怎么称呼?
images / install.img文件的作用是什么?(谁打电话/安装?)
Anaconda是否安装Packages / *。rpm?如果我想在其中添加一个,可以安装吗?
我正在尝试了解Linux发行版的ISO映像文件的内容以及安装过程如何进行。在这里,我特别谈论最小版本的CentOS 6.4。
因此触发了ISOLINUX,并显示了菜单。然后我点击安装。
它加载内核和initrd文件系统。
我的问题是:
Anaconda怎么称呼?
images / install.img文件的作用是什么?(谁打电话/安装?)
Anaconda是否安装Packages / *。rpm?如果我想在其中添加一个,可以安装吗?
Answers:
我是Anaconda的作者/维护者之一。关于安装程序的启动方式,我可能会涉及太多细节,但我会尽量简短。
(请注意,这仅适用于RHEL / CentOS 6.x或Fedora 14及更低版本;安装程序在Fedora 15、16和17之间几乎完全被重写,因此现在情况大不相同了。)
- Anaconda如何打电话?
- images / install.img文件的作用是什么?(谁打电话/安装?)
在initrd.img
上安装介质就是我们所说的stage1的图像。它包含一个名为的程序loader
,其唯一的工作就是查找和加载images/install.img
。
install.img
是stage2图像。这是Anaconda 实际居住的地方-这是一个squashfs映像,其中包含安装程序的根文件系统。
loader 有
很多不同的查找方法install.img
,但是当您从DVD引导时很简单:loader会注意到安装程序DVD,将其安装,并将images/install.img
其安装为根文件系统。
挂载stage2映像后,加载程序将启动Anaconda,然后启动Xorg并放上一个外壳tty2
以及所有这些好东西,然后安装程序就会真正启动。
3. Anaconda是否安装Packages / *。rpm?如果要在其中添加一个,可以安装它吗?
不,它不仅可以在此处安装所有内容。它使用comps.xml
文件(中的repodata/
)来确定可用的软件包组(以及那些分组中的软件包)-这就是填充软件包选择UI的方式。
如果您将任何内容添加到Packages/
目录中(例如,尝试创建自定义DVD映像),并且希望其可安装,则需要使用createrepo
来重新生成repodata/
目录。至少,这将使您可以通过kickstart安装软件包。
如果需要它们显示在UI中,则也需要进行编辑comps.xml
。
从CD引导时,您将获得ISOLINUX引导加载程序,该加载程序将加载Linux内核和初始ramdisk。这将启动Anaconda,并加载其各种组件,例如install.img。然后,Anaconda将负责安装各种软件包等。
使Anaconda安装其他软件包(或进行其他配置)的最简单方法是编写kickstart脚本。kickstart脚本会告诉Anaconda安装哪些软件包,如何配置操作系统等等。要告诉anaconda使用特定的kickstart脚本,可以在ISOLINUX提示符下键入“ install ks = http://example.com/my_kickstart.ks ”。然后,它将下载该kickstart文件(在此示例中是从Web服务器),并使用它来知道要安装哪些软件包。
有关kickstart脚本的更多详细信息,请参见http://fedoraproject.org/wiki/Anaconda/Kickstart