【openEuler 简介】

openEuler[1] 是一个开源、免费的 Linux 发行版平台,通过开放的社区形式与全球的开发者共同构建一 个开放、 多元和架构包容的软件生态体系。

同时,openEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。

【学习目标】

  • openEuler 原生系统的启动和安装
  • 参与贡献 openEuler

【环境准备】

工欲善其事,必先利其器。首先,我们需要做一些 openEuler 安装的环境准备。

1. 操作系统:Windows 10 (64位)

使用我们最常用的操作系统,为安装 openEuler 的相关工具提供基础运行环境。

2. 虚拟机:Oracle VM VirtualBox

VirtualBox 是由 Oracle 开发的一款针对 x86 硬件的虚拟机,为 openEuler 提供了安装、运行、配置等环境。

VirtualBox 官网[2] 下载 Windows 版本 的 VirtualBox,本文主要以 6.1.12 platform 为例来介绍 openEuler 的安装过程。

3. openEuler 镜像:openEuler-20.03-LTS-x86_64-dvd.iso

openEuler 镜像提供了完整的 openEuler ,目前架构支持 X86_64aarch64

openEuler 开源社区获取 openEuler 镜像 repo 源[3],选择 openEuler-20.03-LTS-x86_64-dvd.iso[4] 下载。

【安装体验】

万事俱备,只欠东风。在环境和工具准备完毕后,我们就可以进入正题——openEuler 的安装。

1. openEuler 的安装模式

openEuler 提供了 2 种安装模式,以应对不同的场景需求:

  • 文本模式:适用于服务器场景。
  • 图形模式:适用于服务器和 PC 场景,有一定的软硬件约束,需要提供显卡和图形驱动的支持。
接下来,将主要介绍在图形模式下安装 openEuler 的过程。在此之前,我们需要先安装 Virtual Box 虚拟机,来运行 openEuler 所需的安装环境。

2. Virtual Box VM 安装

1) 建立 openEuler 的启动项

打开下载完成的 Oracle VM VirtualBox,新建 openEuler 启动环境

工具 选项卡中,点击 新建 按钮,选择新建虚拟电脑;设置 openEuler 名称、VM 目录及 Windows 版本,由于系统版本默认是 Windows 7,我们需要手动选择 Windows 10(64-bit)

2) 分配内存

VirtualBox 会视当前设备的配置而自动建议分配内存大小,一般使用建议的内存分配大小,后面也可以根据实际使用情况来手动调整。

3) 新建虚拟硬盘

勾选 现在创建虚拟硬盘选项来新建虚拟硬盘,文件类型选择 VDI(VirtualBox 磁盘映像)分配模式选择 动态分配文件位置和大小选择默认即可。

openEuler 启动环境新建完成后,还需要对虚拟机的启动项进行一些基本的设置

4) 基本设置

  • 存储:引用 openEuler 的 ISO 镜像。
  • 系统 - 主板 - 启动顺序:确保第一顺序设置为 光驱 ,防止引用到硬盘上其他 ISO。
到这里,Virtual Box 虚拟机环境和 openEuler 启动项的设置基本完成,部分偏好设置可根据自身的情况进行调整,点击右侧的启动按钮,就可以进入 openEuler 的安装阶段。

3. openEuler 安装

1) 选择启动盘

点击文件夹图标注册/新建一个 ISO 镜像引用,然后选择下载好的 openEuler ISO 镜像,点击启动

2) 安装 openEuler 20.03-LTS

选择 Install openEuler 20.03-LTS,按下回车键进行安装。其中,Test media 是用来进行文件完整性校验,防止 ISO 文件内容的缺失,通常情况下,选择直接安装即可。

首先来到 openEuler 欢迎界面,这里的语言选择指的是安装过程中的语言环境,选择简体中文的语言环境,点击继续

然后进入安装信息摘要界面,针对 OS 环境进行一些配置:

  • 本地化:语言代表着安装完成后的 OS 语言环境;时间和日期代表着时区,默认是上海。
  • 软件:安装源代表着光驱内的我们下载的 ISO 镜像,可以作为自动安装介质使用;软件选择代表着当前环境附加的功能,一般我们选择默认的最小安装,来保证拥有基本的核心功能。
  • 系统:安装位置代表着 openEuler 的安装磁盘对应位置,确认好磁盘,点击完成自动分区;网络和主机名代表着网络的连接,我们需要确保以太网处于连接状态。

安装信息确认后,我们点击开始安装,可以看到 openEuler 的安装进度。

在等待安装时,我们还能够设置 Root 密码,将在后续的系统登录中使用到,密码规范需要三种以上的字符类型,设置完毕后点击完成,当看到界面中的红色警告消失,说明密码设置成功。

在安装完成之后,需要重新启动系统。我们关闭电源,依次打开启动项 - 设置 - 系统 - 主板 - 启动顺序,将硬盘提升到第一启动顺序,同时也可以删除 ISO 镜像引用。再次启动系统,在短暂的进程等待后,输入 Root 密码,我们就可以进入并使用 openEuler 了。

由此可见,openEuler 的图形模式安装简单快速,易于上手。

4. openEuler 的启动流程

学习了 openEuler 的安装,我们再了解一下 openEuler 的启动模式和流程。

针对不同的架构,openEuler 提供的启动模式也不同。X86 架构包含 LegacyUEFI 模式,而 ARM 架构目前只包含 UEFI 模式。

上文中的安装启动流程,就是采用的 Legacy 模式。经 BootLoader 最终到硬盘引导的 GURB2, GURB2 引导内核 Kernel - initrd - systemd进程,最后启动 openEuler 社区目前维护的程序 ANACONDA

5. openEuler 自动化安装

除了图形安装模式,openEuler 社区还提供了文本模式自动化安装,以及各类虚拟机配置,方便 DIY 爱好者使用。

openEuler 支持 pxe 自动化安装部署,具体流程如下图所示,环境除了物理/虚拟机和 ISO 镜像外,还需要用来存放 kickstart 文件 的 httpd 和 提供 vmlinuzinitrd 文件的 tftp 服务器,以及 kickstart 的自定义安装配置。

1) 安装之前,需要确保 http 服务器的防火墙处于关闭状态,使用防火墙关闭指令:

iptables -F

2) httpd 的安装与服务启动

# dnf install httpd -y
# systemctl start httpd
# systemctl enable httpd

3) tftp 的安装与配置

# dnf install tftp-server -y
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# systemctl start tftp
# systemctl enable tftp
# systemctl start xinetd
# systemctl status xinetd
# systemctl enable xinetd

4) 安装源的制作​​​​​​​

# mount openEuler-20.03-LTS-aarch64-dvd.iso /mnt
# cp -r /mnt/* /var/www/html/openEuler/

5) openEuler-ks.cfg 的设置和修改,kickstart 配置文件可根据实际需求进行额外的更改​​​​​​​

#vim  /var/www/html/ks/openEuler-ks.cfg
====================================
***以下内容根据实际需求进行修改***
#version=DEVEL
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel
# Use graphical install
graphical
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8
#Use http installation source
url  --url=//192.168.122.1/openEuler/
%post
#enable kdump
sed  -i "s/ ro / ro crashkernel=1024M,high /" /boot/efi/EFI/openEuler/grub.cfg
%end
...

6)kickstart 自定义安装配置

a. 获取 ks 配置文件

  • 手动安装完成之后,在 /root 目录下会自动生成 anaconda-ks.cfg 文件

b. 指定 ks 文件

  • 启动参数添加:inst.ks=[http|ftp|nfs]://path

7) 修改 pxe 配置文件 grub.cfg,以下配置内容可供参考​​​​​​​

`# cp -r /mnt/images/pxeboot/* /var/lib/tftpboot/
# cp /mnt/EFI/BOOT/grubaa64.efi /var/lib/tftpboot/
# cp /mnt/EFI/BOOT/grub.cfg /var/lib/tftpboot/
# ls /var/lib/tftpboot/
grubaa64.efi  grub.cfg  initrd.img  TRANS.TBL  vmlinuz
# vim /var/lib/tftpboot/grub.cfg
set default="1"
function load_video {
 if [ x$feature_all_video_module = xy ]; then
 insmod all_video
 else
 insmod efi_gop
 insmod efi_uga
 insmod ieee1275_fb
 insmod vbe
 insmod vga
 insmod video_bochs
 insmod video_cirrus
 fi
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=60
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install openEuler 20.03 LTS' --class red --class gnu-linux --class gnu --class os {
 set root=(tftp,192.168.1.1)
 linux /vmlinuz ro inst.geoloc=0 console=ttyAMA0 console=tty0 rd.iscsi.waitnet=0 inst.ks=http://192.168.122.1/ks/openEuler-ks.cfg
 initrd /initrd.img
}`

8) DHCP 的配置(可以使用 dnsmasq 代替 )​​​​​

# dnf install dhcp -y
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
filename "grubaa64.efi";    # pxelinux 启动文件位置;
next-server 192.168.122.1;  # (重要)TFTP Server 的IP地址;
subnet 192.168.122.0 netmask 255.255.255.0 {
option routers 192.168.111.1; # 网关地址
option subnet-mask 255.255.255.0; # 子网掩码
range dynamic-bootp 192.168.122.50 192.168.122.200; # 动态ip范围
default-lease-time 21600;
max-lease-time 43200;
}
# systemctl start dhcpd
# systemctl enable dhcpd

9) 在 Start boot option 界面按下 F2 选择从网络 pxe 启动,开始自动化安装

openEuler 提供的文本模式下 pxe 自动化安装,充分满足了 DIY 爱好者的需求,同时还提供了简易快速,便于上手的图形安装模式,以此来面向不同场景和人群。在了解 openEuler 安装、启动流程后,跟着文中的步骤,一起来体验开放多元的 openEuler!

【参与贡献 openEuler】

1. 关于 openEuler

openEuler 的愿景:通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统 openEuler,推动软硬件生态繁荣发展。

目前 openEuler 正处于升级 SIG 的阶段,对以下模块感兴趣的朋友可以一起参与进来:

  • anaconda/lorax/pykickstart/python-blivet
  • grub2/syslinux
  • yum/dnf

也可以在码云 gitee 的 openEuler 社区[5] 中贡献力量:

  • Fork the project
  • Checkout the branch
  • Commit your code
  • Pull request

参考资料

[1]openEuler: https://openeuler.org/zh/

[2]VirtualBox 官网: https://www.virtualbox.org/wi...

[3]openEuler 镜像 repo 源: https://repo.openeuler.org/op...

[4]openEuler-20.03-LTS-x86_64-dvd.iso: https://repo.openeuler.org/op...

[5]openEuler 社区: https://gitee.com/openeuler


openEuler
6 声望6 粉丝

openEuler 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目