一、安装程序: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上把光盘挂载了查看:

[root@localhost ~]# mount /dev/sr0 /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only

查看光盘中的内容:

[root@localhost ~]# cd /media/cdrom/
[root@localhost cdrom]# ls -1F
CentOS_BuildTag
EFI/
EULA
GPL
p_w_picpaths/
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目录中的内容:

[root@localhost cdrom]# cd isolinux/
[root@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(包括配置文件isolinux.cfg)就充当这里的bootloader了,它们最终要实现的任务是加载内核文件。我们知道,grub有配置文件(/boot/grub/grub.conf),在配置文件中定义了各个在grub引导过程中要显示的菜单项;对于这里的isolinux.bin也一样,它的配置文件则是isolinux.cfg,在isolinux.cfg中定义了各个启动菜单项(label),在每个label中又定义了menu、Kernel以及要对Kernel传递的参数(包括initrd等),这里的menu是每个菜单项的标题。

以下为isolinux.bin引导界面(以CentOS 6系统安装镜像为例):

是不是很熟悉?我们安装系统时就会看到这个界面。

这里菜单项中的每一项是如何定义的呢?我们使用less看一下isolinux.bin程序的配置文件isolinux.cfg中的内容:

不难发现,这里的每一项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'参数即可,如图:

这里的'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":

找到安装程序anaconda:

进入anaconda图形化安装界面:

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

选择键盘类型:

选择安装目标存储设备,这里选择本地磁盘:

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

设定主机名:

设定时区:

设置管理员密码:

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

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

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

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

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

选定要安装的程序包、程序包仓库:

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

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

文本界面安装:

显示欢迎信息:

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

选择键盘类型:

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

选择时区,并启用UTC:

设置管理员密码:

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

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

(2)安装阶段:

在这一阶段主要完成的操作主要有:

①在目标磁盘上创建分区并执行格式化;

②将选定的程序包安装至目标位置;

③安装Bootloader.

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

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

(3)首次启动

这一步骤与anaconda程序无关,只是安装过程中的一个步骤。

首次启动设定的功能主要有:

①iptables:可设定是否开启防火墙功能。

②selinux:可设定是否开启SELinux功能。

③core dump:可设定是否开启核心转储功能;核心转储,即在内核崩溃时能够将内核崩溃那一刻在内存中的所有数据创建成为映像文件保存在磁盘上,供后续可以通过这个映像文件分析追踪导致内核崩溃的原因,从而可以避免重复出现同样的问题。开启该功能要求内存至少有2G。

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

转载于:https://blog.51cto.com/xuweitao/1905900

CentOS系统安装(上):图形/文本界面安装相关推荐

  1. linux6.8安装图形桌面,图形/文本界面安装CentOS 6.8系统详解

    2. anaconda的工作过程 前面提到,使用anaconda安装CentOS系统有两种方式,默认使用的是图形界面(GUI)安装,要求主机内存至少有512MB内存.而使用基于文本配置接口(TUI)来 ...

  2. 从文本界面安装RHEL5操作系统详解

     从文本界面安装RHEL5操作系统详解 译: -从图形化界面安装系统,按回车键      -从文本界面安装系统,输入linux text 回车      -使用功能键列出下面更多的信息 [F1-主界面 ...

  3. 文本界面安装linux 7,安装 CentOS7 后必做的事 [最小化、文本界面]

    软件包: 1.参数自动补齐: #yum install bash-completion 2.安装第三方软件包库: #yum -y install epel-release 3.域名解析dig #yum ...

  4. centos 8 的图形操作界面在哪_文泰刻绘2020下载-文泰刻绘2020官方版下载[图形化编程平台]...

    文泰刻绘2020官方版是一款高效实用的电脑刻绘软件.文泰刻绘2020最新版采用最新V10版专用刻绘程序,可以直接刻绘输出,支持USB刻字机,软件支持最新win10操作系统.文泰刻绘2020官方版还提供 ...

  5. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础 ...

  6. Linux安装图解全过程(Linux Text文本界面安装)

    FAQ Q 如何进入图形界面 A:登录成功后输入命令startx即可 Q:如何重启 A:命令reboot Q:如何关机 A:命令shutdown –h now 或者init o 等 转载于:https ...

  7. centos 8 的图形操作界面在哪_【行测备考】立体图形截面有哪些实用技法?

    点击上方蓝字,关注我们哟! 你不能不知道的立体图形之截面--实用技法详解理论回顾一.截面图的定义:平面切立体图形,所截开部分的投影即为截面图,其形状表示被切物体断面的外围轮廓.用一个无限大的平面去切立 ...

  8. centos 8 的图形操作界面在哪_商显首款基于安卓系统的图形化调用API软件—智微智能SPIRIT测评...

    出色优美的数字显示可谓是商业展示的灵魂所在,可迅速吸引人们的目光,智能多样化地进行信息展示.随着各种数字显示产品与技术的进步,新型数字商用显示在生活中随处可见.各类数字标牌.POS设备.自助服务终端. ...

  9. 【Linux使用】Centos 7安装图形界面/切换文本界面与图形界面

    文章目录 安装图形界面 切换到文本界面 切换到图形界面 检查默认的界面 设置默认为图形界面 设置默认为文本界面 安装图形界面 -bash-4.2$ sudo yum -y groups install ...

最新文章

  1. 蘑菇模拟器TV版 for Android,安卓NES模拟器TV版下载
  2. 在django中区分null = True,空白= True
  3. hdu4022 map+multiset
  4. Sitecore® 8.2 Professional Developer考试心得
  5. #41 最短路(分治+线性基)
  6. Vue 单文件组件||Vue 单文件组件的基本用法||webpack 中配置 vue 组件的加载器|| 在 webpack 项目中使用 vue
  7. zookeeper分布式锁代码实例
  8. Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)...
  9. 基于Java实现的快速排序
  10. mac azure git_将Azure Data Studio与Git和GitHub集成
  11. Git-如何回滚代码 revert和reset
  12. Android UI 事件研究
  13. MYSQL 索引事务日志概述
  14. 浅谈JSON数据解析方法
  15. 360报告显示:网友对摄像头的关注较去年提升201.5%
  16. Windows 10 使用Easy Sysprep V5 新版封装软件的图文封装教程
  17. 华为认证培训的话是远程还会面授好?
  18. 百度AI图像处理—图像主体识别调用教程(基于Python3-附Demo)
  19. 软件项目管理MOOC(北邮)——第十章测试答案
  20. Caffe windows下安装攻略

热门文章

  1. 类的成员函数指针和mem_fun适配器的用法
  2. CISCO路由器TELNET和SSH远程登录配置实例
  3. 转-linux系统脚本 环境变量 的启动顺序
  4. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
  5. linux 下检查硬盘坏道/扇区
  6. 水木-搜索引擎技术版
  7. 向HtmlAgilityPack道歉:解析HTML还是你好用
  8. 浅谈android中的目录结构
  9. 批处理实现从Excel导入Oracle
  10. 源码阅读心得11-13