Linux更换Kernel


实验环境:

  • 银河麒麟桌面操作系统V10(SP1)
  • QEMU 5.1.0
  • openEuler-20.03-LTS-SP2-x86_64-dvd.iso
  • linux-5.4.54.tar.xz 内核文件

首先使用Qemu创建虚拟机的qcow2的文件

./build/qemu-img create -f qcow2 /data/openeular.qcow2 50G

然后指定ISO文件进行安装

./build/x86_64-softmmu/qemu-system-x86_64 -m 4G -drive format=qcow2,file=/data/openeular.qcow2 -cdrom ../下载/openEuler-20.03-LTS-SP2-x86_64-dvd.iso -enable-kvm

安装过程进行配置,稍等一会

设置root密码为Kylinos1234
新建用户kevin,设置密码Kylinos1234

这个时候设置主机的网络

sudo brctl addbr br0    #创建网桥

sudo brctl show    #查看网桥

sudo tunctl -t tap1 -u `whoami`  #创建虚拟TUN网卡

sudo chmod 0666 /dev/net/tun   #设置权限-

sudo ifconfig tap1 up   #打开Tap0

sudo iptables -t nat -A POSTROUTING -j MASQUERADE #配置防火墙-

sudo brctl addif br0 tap1  #把创建的虚拟网卡tap0放到虚拟网桥br0上面

sudo ifconfig br0 172.18.0.1   #虚拟网桥设置网关的IP

sudo iptables -t nat -A POSTROUTING -s 172.18.0.0/24 -j MASQUERADE  #添加对应的防火墙转发规则

进去虚拟机系统以后

 cd /etc/sysconfig/network-scripts/ 

修改虚拟机的 ifcfg-ens3 配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens3
UUID=8ae66afb-7f11-48ff-8db6-1a2a60b25efa
DEVICE=ens3
ONBOOT=yes
IPADDR=172.18.0.10
NETMASK=255.255.255.0
GATEWAY=172.18.0.1
DNS1=114.114.114.114

然后重启虚拟机

reboot

开启虚拟机机以后,把主机上面的内核文件上传到虚拟机里面

sudo scp linux-5.4.54.tar.xz  172.18.0.10:/home/kevin

在虚拟机里面安装两个最基本的软件

yum install vim tar

然后给openEular虚拟机更换Yum源

首先进入到yum.repos.d目录

cd /etc/yum.repos.d/

把之前的文件进行备份(openEuler.repo.bak)

cp openEuler.repo openEuler.repo.bak

修改之前的openEuler.repo文件

vim openEuler.repo

在最后一行加上这几行代码

[base]
name=openEuler20.03LTS
baseurl=https://repo.openeuler.org/openEuler-20.03-LTS/OS/aarch64/
enabled=1
gpgcheck=0

再清理缓存,生成新的缓存

#清理yum缓存
yum clean all
#生成新的缓存
yum makecache

解压内核文件

tar xvf linux-5.4.54.tar.xz

安装编译安装需要的包组

yum groupinstall "development tools" 

安装 ncurses-devel

yum install ncurses-devel
yum install openssl-devel 
yum install bc
yum install elfutils-libelf-devel

准备文本配置文件,为了省事,直接参考当前的内核配置文件作为要编译的内核模块

cp /boot/config-$(uname -r) .config

在窗口菜单进行自定义设置,这样DIY,然后保存退出

make menuconfig

开始编译

make

安装模块

make modules_install

安装完后出现了我们自己编译的内核

[root@localhost linux-5.4.54]# ls /lib/modules
4.19.90-2106.3.0.0095.oe1.x86_64  5.4.54-1.0-Kylinos-Kevin

现在查看了内核版本以便和之后的对比

[root@localhost linux-5.4.54]# uname -a
Linux localhost.localdomain 4.19.90-2106.3.0.0095.oe1.x86_64 #1 SMP Wed Jun 23 15:18:59 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

安装内核相关文件

make install

安装完成后ls /boot 会出现咱们自己编译的内核相关文件

[root@localhost linux-5.4.54]# ls /boot
config-4.19.90-2106.3.0.0095.oe1.x86_64
dracut
efi
grub2
initramfs-0-rescue-43fde135829d4465b81329c606c1dc3b.img
initramfs-4.19.90-2106.3.0.0095.oe1.x86_64.img
initramfs-4.19.90-2106.3.0.0095.oe1.x86_64kdump.img
initramfs-5.4.54-1.0-Kylinos-Kevin.img   #这个
loader
lost+found
symvers-4.19.90-2106.3.0.0095.oe1.x86_64.gz
System.map
System.map-4.19.90-2106.3.0.0095.oe1.x86_64
System.map-5.4.54-1.0-Kylinos-Kevin   #这个
vmlinuz
vmlinuz-0-rescue-43fde135829d4465b81329c606c1dc3b
vmlinuz-4.19.90-2106.3.0.0095.oe1.x86_64
vmlinuz-5.4.54-1.0-Kylinos-Kevin    #这个

查询grub的配置文件,看有没有多新的菜单

cat /boot/grub2/grub.cfg
### BEGIN /etc/grub.d/10_linux ###                           ---截选的----
menuentry 'openEuler (5.4.54-1.0-Kylinos-Kevin) 20.03 (LTS-SP2)' --class openeuler --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.19.90-2106.3.0.0095.oe1.x86_64-advanced-69a8b498-7fe6-45bf-99d6-2a4b27f83197' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  b3577fb8-aad1-495d-9f0a-46301102bea7
	else
	  search --no-floppy --fs-uuid --set=root b3577fb8-aad1-495d-9f0a-46301102bea7
	fi
	linux	/vmlinuz-5.4.54-1.0-Kylinos-Kevin root=/dev/mapper/openeuler-root ro resume=/dev/mapper/openeuler-swap rd.lvm.lv=openeuler/root rd.lvm.lv=openeuler/swap crashkernel=512M
	initrd /initramfs-5.4.54-1.0-Kylinos-Kevin.img
}

再reboot重启一下

[root@localhost ~]# uname -a
Linux localhost.localdomain 5.4.54-1.0-Kylinos-Kevin #1 SMP Fri Oct 22 11:27:32 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

参考连接:

https://www.linuxidc.com/Linux/2017-11/148276.htm

https://linux.cn/article-9665-1.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐