kernel版本号的修改

kernel版本号修改方法如下

修改文件:

[code] kernel/fs/proc/version.c
 kernel/init/version.c


具体修改如下:

kernel/fs/proc/version.c

[code]static int version_proc_show(struct seq_file *m, void *v)  
{  
    seq_printf(m, linux_proc_banner,  
        utsname()->sysname,  
        utsname()->release,  
        utsname()->version);  
    return 0;  
}  

static int version_proc_open(struct inode *inode, struct file *file)  
{  
    return single_open(file, version_proc_show, NULL);  
}  

static const struct file_operations version_proc_fops = {  
    .open       = version_proc_open,  
    .read       = seq_read,  
    .llseek     = seq_lseek,  
    .release    = single_release,  
};  

static int __init proc_version_init(void)  
{  
    proc_create("version", 0, NULL, &version_proc_fops);  
    return 0;  
}  
module_init(proc_version_init);


linux_proc_banner 通过log打印结果如下:

[code]%s version %s (weitf@sofia-X8DAL) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) %s


utsname()->sysname 通过log打印结果如下:

[code]Linux


utsname()->release, 通过log打印结果如下:

[code]3.14.0


修改如下:

[code]From 027a89b7d3c86fa185293e5130809d2ea4877289 Mon Sep 17 00:00:00 2001
From: weitf <weitf@klinktek.com>
Date: Mon, 9 Nov 2015 12:00:17 +0800
Subject: [PATCH] kernel version

—
 fs/proc/version.c |    3 ++-
 init/version.c    |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
 mode change 100644 => 100755 fs/proc/version.c
 mode change 100644 => 100755 init/version.c

diff –git a/fs/proc/version.c b/fs/proc/version.c
old mode 100644
new mode 100755
index d2154eb..8fca75e
— a/fs/proc/version.c
+++ b/fs/proc/version.c
@@ -4,12 +4,13 @@
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
 #include <linux/utsname.h>
+#include <linux/string.h>

 static int version_proc_show(struct seq_file *m, void *v)
 {
        seq_printf(m, linux_proc_banner,
                utsname()->sysname,
-               utsname()->release,
+               /*utsname()->release*/”3.10.17”,
                utsname()->version);
        return 0;
 }
diff –git a/init/version.c b/init/version.c
old mode 100644
new mode 100755
index 1a4718e..b313407
— a/init/version.c
+++ b/init/version.c
@@ -46,5 +46,5 @@ const char linux_banner[] =

 const char linux_proc_banner[] =
        “%s version %s”
-       ” (” LINUX_COMPILE_BY “@” LINUX_COMPILE_HOST “)”
+       ” (” “service” “@” “i-life.us” “)”




” (” LINUX_COMPILER “) %s\n”;

1.7.9.5
var cpro_id="u2496340";
(window["cproStyleApi"] = window["cproStyleApi"] || {})[cpro_id]={at:"3",rsi0:"750",rsi1:"250",pat:"6",tn:"baiduCustNativeAD",rss1:"#FFFFFF",conBW:"1",adp:"1",ptt:"0",titFF:"%E5%BE%AE%E8%BD%AF%E9%9B%85%E9%BB%91",titFS:"14",rss2:"#000000",titSU:"0",ptbg:"90",piw:"0",pih:"0",ptp:"0"}

id="iframeu2496340_0" src="http://pos.baidu.com/tcfm?sz=750x250&rdid=2496340&dc=3&di=u2496340&dri=0&dis=0&dai=1&ps=2705x97&coa=at%3D3%26rsi0%3D750%26rsi1%3D250%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D14%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1503475325699&ti=Linux%20%E5%AD%A6%E4%B9%A0%EF%BC%883%EF%BC%89--%20kernel%E7%89%88%E6%9C%AC%E5%8F%B7%E7%9A%84%E4%BF%AE%E6%94%B9%20-%20Lai18.com%20IT%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0%E6%94%B6%E8%97%8F%E5%A4%B9&ari=2&dbv=0&drs=1&pcs=1361x803&pss=1361x2735&cfv=0&cpl=0&chi=1&cce=true&cec=UTF-8&tlm=1503475325&rw=803&ltu=http%3A%2F%2Fwww.lai18.com%2Fcontent%2F8537906.html&ltr=https%3A%2F%2Fwww.google.com.tw%2F&ecd=1&uc=1375x876&pis=-1x-1&sr=1440x900&tcn=1503475326&qn=e3d3d317dc1fa4c1&tt=1503475325636.69.70.74" vspace="0" hspace="0" scrolling="no" width="750" height="250" align="center,center">


### 如何在KVM中切换或加载不同版本的内核 在KVM环境中,虚拟机使用的内核通常由宿主机的操作系统提供。如果需要为特定的虚拟机切换到不同的内核版本,则可以通过修改虚拟机启动参数来实现。以下是具体的方法: #### 修改虚拟机启动参数 当创建或编辑虚拟机时,可以在`kernel`选项中指定要使用的内核路径。这允许用户选择一个不同于默认内核的新版本。 对于基于`libvirt`管理的KVM虚拟机,可以使用以下方式更改内核: 1. **通过XML定义文件** 编辑虚拟机的XML配置文件,找到 `<os>` 节点下的 `<kernel>` 和 `<initrd>` 字段,并将其指向所需的内核镜像和初始化ramdisk的位置。例如: ```xml <os> <type arch="x86_64" machine="pc">hvm</type> <kernel>/path/to/new/kernel/vmlinuz-5.x.y-z-generic</kernel> <initrd>/path/to/new/initrd.img-5.x.y-z-generic</initrd> </os> ``` 2. **通过命令行工具 `virsh edit`** 如果不想手动操作XML文件,可以直接使用`virsh`命令在线编辑虚拟机配置: ```bash virsh edit <domain_name> ``` 这会打开虚拟机的XML配置文件,默认情况下使用的是`vi`作为编辑器。按照上述方法调整`<kernel>`字段即可[^2]。 3. **重新引导虚拟机** 更改完成后保存退出,随后重启目标虚拟机使新设置生效: ```bash virsh reboot <domain_name> ``` #### 自动化脚本示例 为了简化流程,还可以编写简单的Shell脚本来完成这一过程。下面是一段用于自动替换并应用新的内核版本的小型脚本: ```bash #!/bin/bash DOMAIN_NAME=$1 NEW_KERNEL_PATH=/boot/vmlinuz-$2 NEW_INITRD_PATH=/boot/initrd.img-$2 if [[ ! -f "$NEW_KERNEL_PATH" || ! -f "$NEW_INITRD_PATH" ]]; then echo "Error: New kernel or initrd not found!" exit 1 fi virsh shutdown $DOMAIN_NAME && sleep 10 # Ensure VM is fully powered off before editing. sed -i "/<kernel>/c\ \t\t<kernel>$NEW_KERNEL_PATH<\/kernel>" /etc/libvirt/qemu/$DOMAIN_NAME.xml sed -i "/<initrd>/c\ \t\t<initrd>$NEW_INITRD_PATH<\/initrd>" /etc/libvirt/qemu/$DOMAIN_NAME.xml virsh start $DOMAIN_NAME echo "Domain restarted with new kernel version." ``` 此脚本接受两个参数:第一个是要处理的域名称;第二个则是希望采用的具体内核版本号(如`5.4.0-77-generic`)[^3]。 #### 注意事项 - 确保所选内核兼容当前硬件平台及操作系统版本。 - 测试阶段建议保留原始备份以防万一出现问题能够迅速恢复原状。 - 对于生产环境中的重要服务实例执行此类变更前务必做好充分评估与规划工作[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值