飞腾CPU如何使用PXE方式安装麒麟桌面系统?

简介: 飞腾CPU如何使用PXE方式安装麒麟桌面系统?

科技背景_副本 公众号_副本.png

一、环境准备

图1 | 硬件环境

名称

软件版本

配件

D2000+X100 PC机1台

(以下称为“飞腾PC机”)

uefi固件版本:

edk2-code-3.5.0.rar 

Pbf版本:

image_fix_d2000_v1.70.rar 

x100固件版本:x100_pack_v1.7-0909.tar

NVME硬盘1块

显示器 1 台

USB 键鼠 1 套

X86笔记本1台

Windows 10 专业版 22H2

TTL转USB串口线1条

| 软件环境

说明

名称

备注

获取方式

麒麟系统iso镜像文件

Kylin-Desktop-V10-GFB-Release-2205-Build05-ARM64.iso

通过麒麟获取

grub配置文件

grub.cfg

需要根据环境配置进行修改

后台回复“软件环境搭建”获取

uefi下网络启动efi执行文件

netbootaa64.efi

FTP、DHCP工具

Tftpd64_SE-4.64-setup.exe

或者tftp32 server版本

NFS工具

nfs1169.exe

初始内存磁盘

initrd.lz

从麒麟系统iso镜像中casper目录下获取

内核文件

vmlinuz

从麒麟系统iso镜像中casper目录下获取



二、环境搭建

图2 | PXE硬件环境搭建


将飞腾PC机的网口通过网线接到x86笔记本的网口,且设置笔记本网口IP为192.168.50.242(这个可以自己修改,这里是整文统一用这个IP,故特此说明)

将飞腾PC机的显示接口接显示器。

将飞腾PC机的USB接USB键鼠。

将飞腾PC机的D2000调试串口通过TTL转USB线接到x86笔记本上。




三、UEFI PXE功能确认

图3 | Boot device界面

启动飞腾PC机电源,在F2、F8、F12选择阶段,按F2进入的BOOT选择界面。如图3所示,若出现PXE选项,则认为UEFI的PXE功能是正常启动的。


图4 | GMAC开启

若未出现PXE选项,可以确定以下两个方面:

一是网线是否插好:可以通过x86笔记本的网络设置看有线网卡是否有连接。

二是需要确定固件中是否开启了网络MAC。在图4界面中选择“Enter Setup”→“Advanced Features”,查看“Enable Gmac0”“Enable Gmac1”是否是Enable状态。(因飞腾CPU有两路MAC,若不确定飞腾PC机接的是哪一路,建议这两个都Enable)


四、笔记本软件环境配置


01

X86笔记本网络配置

图5 | x86 笔记本MAC设置

找到与飞腾PC机相连的网口,配置其IP为192.168.50.242,配置网关192.168.50.1。DNS不要设置。

(这个IP地址一定要记好,后面很多配置都和这个IP相关。)


图6 | x86 笔记本防火墙关闭

同时要关闭x86笔记本的所有防火墙。


02

文件依赖环境搭建

新建一个文件夹,这里建在E盘,取名为pxe。将netbootaa64.efi(前面“环境准备”章节有网盘链接)放到pxe文件夹中。在pxe中新建iso文件夹,将麒麟iso镜像解压进去。

再在pxe文件中新建文件夹boot,boot内再建grub文件夹,将grub.cfg(前面“环境准备”章节有网盘链接)放到grub文件夹中。

图7 | 麒麟iso解压后文件夹


在pxe文件中新建文件夹casper,将图7文件夹中的casper文件夹下的initrd.lz和vmlinuz文件复制进来。

最后文件结构如图8(iso文件夹我没展开,里面是麒麟的iso镜像解压后的文件)。

图8 | 文件结构


03

TFTP,DHCP服务器

Tftpd64软件配置

安装Tftpd64_SE-4.64-setup.exe(前面“环境准备”章节有网盘链接)

Tftpd64软件用于tftp服务器和DHCP服务器。使用管理员权限打开软件。

进入“settings”。在“GLOBAL”标签中确定“TFTP server”和“DHCP server”功能是开启的。(我这里只开启了这两个功能)

图9 | 服务配置


Tftp标签配置,主要就是设置tftp目录,我们这里指向我们刚才新建的E:\pxe,其次就是咱们的TFTP的IP地址要选择到咱们前面设置的IP,即192.168.50.242。

图10 | TFTP配置


DHCP标签配置,主要也是约束IP,这里填入x86笔记本的IP 192.168.50.242,对应的网关192.168.50.1。主要两个配置项为“Boot File”,需要指定到我们前面E:\pxe下的netbootaa64.efi文件。因为我们tftp指定了路径是E:\pxe,所以这里就只填文件名netbootaa64.efi即可。

另外,最下面的“bind DHCP to this address”,要选择x86笔记本IP 192.168.50.242。

图11 | DHCP配置


DHCP环境验证

在图3界面中选择进入“UEFI Shell”。

使用ifconfig命令查看当前的飞腾PC机IP,首次进来应该是没有IP的。

> ifconfig -l eth0

 name         : eth0

 Media State  : Media present

 policy       : static

 mac addr     : 98:0E:24:5E:FB:79

ipv4 address : 0.0.0.0

 subnet mask  : 0.0.0.0

 default gateway: 0.0.0.0

 Routes (0 entries):

 DNS server   :


使用DHCP自动获取IP,使用命令“ifconfig -s eth0 dhcp”。

再次查看,可以看到有IP了192.168.50.243,这就可以说明Tftpd64的DHCP功能是正常的。

> ifconfig -s eth0 dhcp

> ifconfig -l eth0

 name         : eth0

 Media State  : Media present

 policy       : dhcp

 mac addr     : 98:0E:24:5E:FB:79

 ipv4 address : 192.168.50.243

 subnet mask  : 255.255.255.0

 default gateway: 192.168.50.1

 Routes (2 entries):

 Entry[0]

 Subnet : 192.168.50.0

 Netmask: 255.255.255.0

 Gateway: 0.0.0.0

 Entry[1]

 Subnet : 0.0.0.0

 Netmask: 0.0.0.0

 Gateway: 192.168.50.1

 DNS server   :


同时可以在Tftpd64的DHCP server中可以查看log,确实也是分配了192.168.50.243。

图12 |


之后在飞腾PC机上ping一下x86笔记本(IP 192.168.50.242),确保网络是通的。(要不通记得查下防火墙)

> ping 192.168.50.242

InstallProtocolInterface:

41D94CD2-35B6-455A-8258-D4E51334AADD F7FFFEA0

Ping 192.168.50.242 16 data bytes.

16 bytes from 192.168.50.242 :icmp_seq=1 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=2 ttl=0 time0~19ms

16 bytes from 192.168.50.242 :icmp_seq=3 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=4 ttl=0 time0~19ms

16 bytes from 192.168.50.242 :icmp_seq=5 ttl=0 time0~19ms16 bytes from 192.168.50.242 : icmp_seq=6 ttl=0 time0~19ms

6 packets transmitted, 6 received, 0% packet loss, time 0ms

Rtt(round trip time) min=0~19ms max=0~19ms avg=0~19ms


04

NFS服务器

NFS软件配置

安装nfs1169.exe(前面“环境准备”章节有网盘链接)。NFS软件用于NFS服务器。使用管理员权限打开软件。

设置如下:

图13 |


在haneWIN nfs 服务器软件“输出”标签,点击“编辑输出表文件”,

填写NFS的文件路径,-public是权限,-name是在软件里显示的名字(名字可以自己起)。

因为我们把麒麟的iso解压到了E:\pex的iso文件夹里,所以我们这里NFS文件路径填写e:\pxe\iso。

这里特别强调,-name的名字是要记住的,后面需要用,我们这里是kylin-nfs。

图14 | haneWIN配置


点击“重启服务器”

图15 |


如窗口没有变化,需要通过别的方式重启一下。

从win开始菜单找到“haneWIN软件”的“重启所有服务”,以管理员方式去执行。

图16 | 重启NFS服务


执行后,再去点haneWIN的“重启服务器”,上面窗口的nfs路径发生改变。

图17 |


NFS验证

我们的测试方式是在x86笔记本上“自己测自己”。

先开启win的NFS服务。在“控制面板”→“程序和功能”→“启用或关闭windows功能”中,选中“NFS服务”中的“NFS客户端”和“管理工具”。

图18 | 开启NFS服务


进入cmd命令行,执行mount命令。

我们mount一下我们的NFS,挂载NFS目录到某个盘符(如Z盘)。

这里需要注意:我们现在电脑ip是192.168.50.242,通过haneWIN把我们的e:\pxe\iso,name成了kylin-nfs,所以我们这里要mount的不是pxe iso而是kylin-nfs,也就是使用haneWIN脚本里name后的名字。

图19 | mount成功


如果挂不成功,会报错。下图我就是挂的/pxe/iso目录,这个是不对的。

图20 | mount失败

图21 | 挂载前

图22 | 挂载后


05

脚本修改

软件环境搭建完毕,下面进行相关配置工作。

PXE启动原理介绍

图23 | PXE原理(图片来源:网络)

①即“三、UEFI PXE功能确认”章节确认的部分。

②即“ DHCP环境验证”章节验证的部分。

③即“Tftpd64软件配置”章图10中配置的。

④即grub.cfg,在“文件依赖环境搭建”章节,放在了E:\pxe\boot\grub文件夹中。grub的配置文件决定了后面系统的启动。

⑤⑥这两步是④之后水到渠成的了。


grub.cfg的配置修改

set default=0
set timeout=5
set color_normal=white/black
set color_highlight=black/light-gray
insmod part_gpt
insmod part_msdos
insmod gzio
menuentry "Net Install Kylin" {
linux  /casper/vmlinuz boot=casper netboot=nfs ip=dhcp nfsroot=192.168.50.242:/kylin-nfs rootwait ro locale=zh_CN KEYBOARDTYPE=pc KEYTABLE=us ignore_uuid quiet
initrd  /casper/initrd.lz
}
menuentry "Install UOS" {
set gfxpayload=keep
linux /uos/vmlinuz console=tty boot=live netboot=nfs nfsroot=192.168.1.5:/opt/nfs/uos/ ip=192.168.1.10 componentsunion=overlay locales=zh_CN.UTF-8 livecd-installer
initrd /uos/initrd.img
}

下面我们就grub.cfg里面需要修改的内容做说明。

这是最终的grub.cfg文件,含有两个启动项,一个是麒麟的,一个是UOS的。此处主要说明麒麟部分:

1. `menuentry "Net Install Kylin" `: 这是一个菜单项的标题,显示在启动菜单中供选择。在这个例子中,菜单项的标题是"Net Install Kylin"。

2. `boot=casper`: 设置Linux内核的引导参数,告诉内核使用"Casper"启动模式。

在Ubuntu和一些基于Ubuntu的Linux发行版中,"Casper"是一个用于实现Live CD/Live USB功能的启动模式。Live CD/Live USB是一种可在计算机上运行操作系统而无需进行实际安装的方式。"Casper"模式通过在内存中加载完整的操作系统,并将根文件系统挂载为只读模式,使用户可以在没有对硬盘进行写入的情况下使用操作系统。

3. `netboot=nfs`: 指定网络启动模式,告诉内核通过NFS进行网络引导。

4. `nfsroot=192.168.50.242:/kylin-nfs`: 指定NFS根目录的位置。这里的`192.168.50.242:/kylin-nfs`表示NFS服务器的IP地址和共享路径。和“NFS验证”章节验证的一样,我们NFS的目录需要是haneWIN配置里name后的名字,也就是kylin-nfs。

5. `linux /casper/vmlinuz`: 指定Linux内核的位置。这里的`/casper/vmlinuz`是内核映像文件的路径。因为这个是需要采用TFTP的方式下载的,又因为我们TFTP设置的路径为E:\pxe(参看图10),且我们将麒麟iso中的内核vmlinuz放在了E:\pxe\casper目录下,所以我们这里指定内核位置就可以了。

6. `initrd /casper/initrd.lz`: 指定用于启动的初始内存盘(initrd)的位置。这里的`/casper/initrd.lz`是初始内存盘文件的路径。这个同理上面的5。

7.  `ip=dhcp`: 使用DHCP协议获取网络配置信息,包括IP地址、子网掩码、网关等。

8.  `rootwait`: 等待根文件系统准备就绪后再启动。

9. `ro`: 将根文件系统以只读模式挂载,防止意外修改。

10. `locale=zh_CN`: 设置系统的本地化语言为简体中文。

11. `KEYBOARDTYPE=pc`: 指定键盘类型为"pc"。

12. `KEYTABLE=us`: 指定键盘布局为美式英语。

13. `ignore_uuid`: 忽略根文件系统的UUID,使用设备路径进行引导。

14. `quiet`: 在启动过程中禁用大部分内核消息的显示,使启动过程更加静默。


06

启动安装

这时候再在界面中选择“UEFI PXEv4”,等待进入麒麟安装界面。

相关文章
|
4月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
23天前
|
机器学习/深度学习 算法 测试技术
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
本文是关于如何搭建深度学习环境,特别是使用mmdetection进行CPU安装和训练的详细指南。包括安装Anaconda、创建虚拟环境、安装PyTorch、mmcv-full和mmdetection,以及测试环境和训练目标检测模型的步骤。还提供了数据集准备、检查和网络训练的详细说明。
70 5
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
|
3月前
|
缓存 监控 Linux
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
在Linux中,如何看当前系统有几颗物理CPU和每颗CPU的核数?
|
17天前
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
|
3月前
|
监控 Linux
性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
【8月更文挑战第18天】性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
146 4
|
4月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
144 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
3月前
|
Linux Python
在Linux中,如何查找系统中占用CPU最高的进程?
在Linux中,如何查找系统中占用CPU最高的进程?
|
3月前
|
缓存 Kubernetes 数据中心
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
在Docker中,如何控制容器占用系统资源(CPU,内存)的份额?
|
3月前
|
Linux
Linux系统如何查看版本信息,内核、发行版、cpu、所有版本
Linux系统如何查看版本信息,内核、发行版、cpu、所有版本
114 10
|
4月前
|
Linux
查看服务器的配置,系统,cpu等信息
查看服务器的配置,系统,cpu等信息
1030 8