设为首页 收藏本站
查看: 756|回复: 0

[经验分享] CentOS系统安装(上):图形/文本界面安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-14 13:57:15 | 显示全部楼层 |阅读模式
1. 安装程序:anaconda
    anaconda是RedHat Enterprise Linux、CentOS、Fedora等系统的安装程序,它支持两种安装方式:图形界面(GUI)方式安装基于curses图形函数库的文本配置方式安装。这里以安装CentOS为例。



    之前在"CentOS系统启动流程"博客中提到,CentOS系统的启动流程大致路线为:POST --> BIOS --> bootloader --> Kernel(有可能借助ramdisk加载驱动) --> 加载rootfs --> switchroot(这一步并非必须) --> /sbin/init。


    一般使用U盘、光盘或网络引导等方式来安装CentOS系统。这里以光盘为例,如果使用光盘安装CentOS,那么首先需要有一个专门用于安装CentOS操作系统的操作系统,这个操作系统上包括了Linux内核及ramdisk等文件,通过这个操作系统可实现对CentOS系统的安装。而要使用这个用于安装系统的操作系统的启动也同样需要由bootloader引导,这个bootloader同Kernel及ramdisk等文件一样由光盘所提供(如果是其他引导设备也一样)。


    因此,当安装CentOS系统时,用于安装系统的操作系统的启动流程是这样的:POST --> BIOS --> bootloader --> Kernel(ramdisk(rootfs)) --> anaconda。


    那么光盘上的这些文件(bootloader、Kernel、ramdisk等)究竟存放在光盘上哪里呢?我们不妨在Linux上把光盘挂载了查看:
1
2
[iyunv@localhost ~]# mount /dev/sr0 /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only





查看光盘中的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@localhost ~]# cd /media/cdrom/
[iyunv@localhost cdrom]# ls -1F
CentOS_BuildTag
EFI/
EULA
GPL
images/
isolinux/        //光盘的启动分区;
Packages/        //光盘上的程序包;
RELEASE-NOTES-en-US.html
repodata/        //程序包元数据所在目录;
RPM-GPG-KEY-CentOS-6
RPM-GPG-KEY-CentOS-Debug-6
RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Testing-6
TRANS.TBL





光盘是把isolinux目录作为启动分区的,基本上bootloader、Kernel及ramdisk等文件也存在其中,我们来查看以下isolinux目录中的内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@localhost cdrom]# cd isolinux/
[iyunv@localhost isolinux]# ls -1F
boot.cat    //存放于MBR上的bootloader,负责去加载isolinux.bin;
boot.msg
grub.conf
initrd.img    //ramdisk文件,即临时根文件系统;
isolinux.bin    //由boot.cat加载,用于引导加载内核及ramdisk文件;
isolinux.cfg    //引导程序isolinux.bin的配置文件,其中定义了各个启动菜单项;
memtest
splash.jpg    //使用图形界面方式安装时,菜单项的背景图片;
TRANS.TBL
vesamenu.c32
vmlinuz*    //内核文件;



需要注意的是,光盘或U盘的引导设备本来是没有MBR这种第一扇区的概念的,但光盘或U盘等设备可以模拟出MBR,在MBR上存放着boot.cat这个bootloader,boot.cat类似于grub的第一阶段,负责去加载isolinux.bin,而isolinux.bin则类似于grub的第二阶段程序。boot.cat和isolinux.bin就充当这里的bootloader了,它们最终要实现的任务是加载内核文件。我们知道,grub有配置文件(/boot/grub/grub.conf),在配置文件中定义了各个在grub引导过程中要显示的菜单项;对于这里的isolinux.bin也一样,它的配置文件则是isolinux.cfg,在isolinux.cfg中定义了各个启动菜单项(label),在每个label中又定义了menuKernel以及要对Kernel传递的参数(包括initrd等),这里的menu是每个菜单项的标题。

以下为isolinux.bin引导界面(以CentOS 6系统安装镜像为例):
wKioL1jFQ3Kga_6vAAejKUCoNv0352.png
是不是很熟悉?我们安装系统时就会看到这个界面。


这里菜单项中的每一项是如何定义的呢?我们使用less看一下isolinux.bin程序的配置文件isolinux.cfg中的内容:
wKiom1jFO2OSw9g9AAB_642y-iI829.png
不难发现,这里的每一项label中的menu后面的标题就是安装系统时显示的菜单项标题。在第一个label中还有一项"menu default",设置该label为默认启动项。此外,每个label中还定义了内核文件以及传递给内核的参数,这里把ramdisk文件作为参数传递给内核。我们后面要提到的kickstart文件也可以通过这种方式传递给内核。


    在光盘启动时,光盘中的bootload会把kernel和initrd(即ramdisk)一同装载进内存中。initrd是特制的,它含有操作系统安装过程中所需要用到的各种基本工具,在这里kernel不需要执行根切换(switchroot);借助于initrd提供的rootfs,kernel会去启动anaconda这个安装程序。


    anaconda程序是安装过程中用户空间第一个启动的应用程序,类似于正常操作系统启动时的/sbin/init初始化程序;anaconda可由initrd这个rootfs提供,也可以来自其他地方,在这里anaconda起安装系统的作用。



总结一下,安装CentOS系统过程的启动启动流程是这样的:
bootloader(isolinux/boot.cat, isolinux/isolinux.bin) --> isolinux/vmlinuz(isolinux/initrd.img)运行在内存中的操作系统 --> anaconda




2. anaconda的工作过程

    前面提到,使用anaconda安装CentOS系统有两种方式,默认使用的是图形界面(GUI)安装,要求主机内存至少有512MB内存。而使用基于文本配置接口(TUI)来安装CentOS则需要显示指定,指定方式可以是在菜单界面按ESC键,并向label指定的内核传递一个'text'参数即可,如图:
wKioL1jFQ26xN-2TAAAC8gPgDO4747.png
这里的'linux'是isolinux/isolinux.cfg配置文件中定义的一个label,通过'linux'这个label可以调用其指定的项及参数,例如menu, kernel(vmlinuz), initrd等,还可以传递参数,例如此处的'text'参数。


另一种方式是在菜单项界面按Tab键,并传递一个'text'参数,如下:


当kernel启动anaconda之后,就开始执行anaconda的安装过程了。


anaconda的工作过程分为三个阶段:

(1)安装前的配置阶段
(2)安装阶段
(3)首次启动
(注意:严格来说,第三阶段即首次启动这一阶段与anaconda无关,只是系统安装过程中的一个步骤)

(1)安装前的配置阶段:
在这一阶段配置的参数主要是:
    ①安装过程使用的语言
    ②键盘类型
    ③安装目标存储设备

         Basic Storage:本地磁盘;

         Specialized Storage:特种设备,例如iSCSI;

    ④设定主机名;
    ⑤配置网络接口;
    ⑥时区;
    ⑦管理员密码;
    ⑧设定分区方式及MBR的安装位置;
    ⑨创建一个普通用户;
    ⑩选定要安装的程序;

前面提到,使用anaconda安装CentOS系统有图形界面安装和文本界面安装两种方式,这里分别对这两种安装方式的配置进行介绍:

图形界面安装:


选择是否检测安装引导设备(这里是光盘),如果不需要则可直接选择"Skip":
wKiom1jGJG6Q3UJYAABNkYOHrW8770.png

找到安装程序anaconda:
wKioL1jGJG6j8zS5AAA-dolusuk328.png

进入anaconda图形化安装界面:
wKioL1jGJAnxiCDvAAMq5fZrJgE949.png

选择安装过程使用的语言:
wKioL1jGJAqAiGsIAAKp931EK40935.png

选择键盘类型:
wKiom1jGJAqSgtJYAAI9Faiu6r4379.png

选择安装目标存储设备,这里选择本地磁盘:
wKioL1jGJAugmvbqAAI8-1hwuLc622.png

接下来一步,需要先确认磁盘为空或者磁盘上没有重要数据,点击确认之后所有数据将会被丢失。还有一点需要注意的就是如果当前主机上有多块硬盘,则其他硬盘上的数据也会被覆盖,确认不会造成影响之后方可点击确认:

wKioL1jGJD3AWikEAAN1nawKoJE054.png

设定主机名:
wKiom1jGJA2wupxcAAGfAFYqiuU423.png

设定时区:
wKioL1jGJBGwgjPFAAdKLaMvIP8939.png

设置管理员密码:
wKiom1jGJBLjcfgMAAGshjdpjfQ212.png

选择安装方式,这里既可以使用默认分区布局,也可以自定以分区布局。此处选择自定义布局:
wKiom1jGJBSyr3_XAARTAAFk7P8078.png

这里采用最简单的分区方式,将硬盘/dev/sda分为三个分区,如图:
wKioL1jGJBXhNq0bAAIWGHBoPJs048.png

格式化将会丢失部分或全部原有的数据,确认不会造成影响之后即可进行格式化:
wKiom1jGJBbzgf6eAAKYn-PAEc4031.png

这里提示所有的分区设置将应用于磁盘之上,选择"Write changes to disk":
wKioL1jGJBbzQRqWAABCEhFuUjg971.png

设置MBR的安装位置、是否为bootloader加密以及rootfs所在分区的卷标:
wKioL1jGJBeAvvKjAAK7ezmc2B0431.png

选定要安装的程序包、程序包仓库:
wKiom1jGJBrDd4AvAAM43-h0wtU161.png

如果选择"Modify repository",则可修改程序包仓库的名称、类型:


以上为图形界面安装前的配置阶段。前面提到,可以在菜单项引导界面向内核传递参数"text"方式选择文本安装方式。接下来介绍文本界面安装前的配置。


文本界面安装:

显示欢迎信息:
wKioL1jGKtTwEkuoAAANPU5W-WQ019.png

选择安装过程使用的语言:
wKiom1jGKtWQIttsAAAbOBiyb08994.png

选择键盘类型:
wKioL1jGKtTDmbpSAAAZ5Ui-WYM076.png

这里选择"Re-initialize",初始化所有磁盘:
wKioL1jGKtXDrM0OAAA4-tyno_8051.png

选择时区,并启用UTC:


设置管理员密码:
wKiom1jGKtXiyvi8AAAaqifs3Vw545.png

选择要对哪个磁盘设备进行分区(这里可使用默认的分区布局):
wKioL1jGKtaAZ-P3AAAwIs7vbkg586.png

确认是否将指定的分区操作应用于指定磁盘设备上,这里确认不会造成影响即可选择"Write changes to disk":
wKiom1jGKtahCnCuAAAc1EtrZkQ644.png


(2)安装阶段:
在这一阶段主要完成的操作主要有:
    ①在目标磁盘上创建分区并执行格式化;
    ②将选定的程序包安装至目标位置;
    ③安装Bootloader.


图形界面安装方式的安装阶段:
wKiom1jGJDzjznh4AANJdwEFAhE039.png


文本界面安装方式的安装阶段:
wKioL1jGKtbiKT7BAAAZeJxksXk190.png



(3)首次启动
这一步骤与anaconda程序无关,只是安装过程中的一个步骤。
首次启动设定的功能主要有:
①iptables:可设定是否开启防火墙功能;
②selinux:可设定是否开启SELinux功能;
③core dump:可设定是否开启核心转储功能;核心转储,即在内核崩溃时能够将内核崩溃那一刻在内存中的所有数据创建成为映像文件保存在磁盘上,供后续可以通过这个映像文件分析追踪导致内核崩溃的原因,从而可以避免重复出现同样的问题。开启该功能要求内存至少有2G。

这样就把CentOS系统安装完成了!

wKiom1jGJA2QUCQcAAOnj_kztsk516.png
wKiom1jGKtTjg9Q8AAAdvjnIjYc274.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-351242-1-1.html 上篇帖子: 关于su: cannot set user id: Resource temporarily unavailable的问题 下篇帖子: CentOS系统安装(下):kickstart文件及引导镜像的制作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表