求助】内核移植后不能正常引导

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
wang161x
帖子: 9
注册时间: 2016-12-22 16:34
系统: ubuntu14.04
送出感谢: 3 次
接收感谢: 0

求助】内核移植后不能正常引导

#1

帖子 wang161x » 2017-12-20 15:06

编译好的内核,重启之后可以使用,但移动到另外一块硬盘上不能正常启动怀疑是缺少grub文件,手动创建之后仍然不能启动,求助ing :Cry
poloshiao
论坛版主
帖子: 18198
注册时间: 2009-08-04 16:33
送出感谢: 21 次
接收感谢: 1926 次

Re: 求助】内核移植后不能正常引导

#2

帖子 poloshiao » 2017-12-20 15:10

目前 有可以登入的 kernel 版本 可以開機登入嗎 ?
wang161x
帖子: 9
注册时间: 2016-12-22 16:34
系统: ubuntu14.04
送出感谢: 3 次
接收感谢: 0

Re: 求助】内核移植后不能正常引导

#3

帖子 wang161x » 2017-12-20 15:12

有的,是在虚拟机上的
wang161x
帖子: 9
注册时间: 2016-12-22 16:34
系统: ubuntu14.04
送出感谢: 3 次
接收感谢: 0

Re: 求助】内核移植后不能正常引导

#4

帖子 wang161x » 2017-12-20 15:29

下载好源码包之后,用root用户登陆系统,将源码包放到/usr/src目录下,用归档管理器解压到当前目录或者用下面的命令解压。

tar -xf linux-4.2.2.tar.xz解压好了以后,cd入linux-4.2.2文件夹。

cd linux-4.2.2然后就可以开始配置内核选项了,但是内核选项多的真是令人发指,其实用默认的就好,跟着我的命令一起来做。

make menuconfig#执行这个操作如果出现报错的话,需要解决一个软件包依赖问题,输入以下命令即可解决(没出现报错的不用管):

apt-get install libncurses5-dev然后我们来看看menuconfig里的选项,回车完先是加载了几个文件,然后应该会出现这样一个玩意:



在这个界面里,*代表yes,空代表no,M代表模块化(被其它选项所包括),默认不去动它就好,再说选项那么多你真打算一个一个看么。

方向键上下可以控制上下切换条目,左右键可以在下方的操作栏切换(<Select>/<Exit>/<Help>/<Save>/<Load>)。

直接切换到 <Save> 然后敲回车即可,提示保存文件名为.config,直接敲回车 <Ok> ,提示配置文件已写入.config,然后再敲一次回车 <Exit> 。





之后又回到了最初的那个界面,切到 <Exit> 敲回车退出即可。

上面操作全部完成之后,就可以开始make内核了。

makemake的时间会非常长,也可能是我配置太差的原因,我是花了3小时才make完。

make完成之后,就可以安装内核模块了。

make modules_install这个速度会很快,我5分钟内就完成了,完成之后直接make install安装新内核。

make install安装完成后会自动修改grub,重启默认以新内核启动,可以重启后用uname -r命令查看。

谈后在/boot下生成一个img文件,有人说他是一个gz文件,可以用zcat/boot/initramfs-3.2.96-1.el /mnt /dev/sdc
但是我的img文件是一个initramfs-3.2.96-2.el5.img.gz: ASCII cpio archive (SVR4 with no CRC)这是怎么回事呢?
上次由 wang161x 在 2017-12-20 15:34,总共编辑 1 次。
wang161x
帖子: 9
注册时间: 2016-12-22 16:34
系统: ubuntu14.04
送出感谢: 3 次
接收感谢: 0

Re: 求助】内核移植后不能正常引导

#5

帖子 wang161x » 2017-12-20 15:31

cpio -id initramfs-3.2.96-2.el5.img.gz 使用这个可以查看文件,但是没有发现init文件,应该是那个地方不对,我估计问题出在img文件上,但不知到该怎么办
poloshiao
论坛版主
帖子: 18198
注册时间: 2009-08-04 16:33
送出感谢: 21 次
接收感谢: 1926 次

Re: 求助】内核移植后不能正常引导

#6

帖子 poloshiao » 2017-12-20 16:03

參閱

1. https://www.howtoforge.com/kernel_compilation_ubuntu
How To Compile A Kernel - The Ubuntu Way

2. https://www.maketecheasier.com/build-cu ... el-ubuntu/
How to Build a Custom Kernel on Ubuntu

3. https://www.ubuntu-tw.org/modules/newbb ... _id=350806
[推薦] Debian / Ubuntu Linux 核心編譯個人筆記

4. https://jerrynest.io/ubuntu-16-04-compile-linux-kernel/
在 Ubuntu 16.04 編譯 Linux Kernel

5. https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
BuildYourOwnKernel

6. http://ubuntuhandbook.org/index.php/201 ... 04-higher/
How to Install Linux Kernel 4.13 in Ubuntu 16.04 & Higher

7. http://ubuntuhandbook.org/index.php/201 ... ntu-16-04/
How to Install Linux Kernel 4.6 in Ubuntu 16.04
科学之子
帖子: 2240
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 834 次
接收感谢: 31 次

Re: 求助】内核移植后不能正常引导

#7

帖子 科学之子 » 2017-12-20 16:18

wang161x 写了:cpio -id initramfs-3.2.96-2.el5.img.gz 使用这个可以查看文件,但是没有发现init文件,应该是那个地方不对,我估计问题出在img文件上,但不知到该怎么办
貌似正确过程是先用gzip解压gz格式,然后用cpio看解压出来的cpio镜像
gz 和 cpio 是两个不同的格式.
cpio 本身只是将多个文件打包成一个文件,不具备压缩功能
gzip 用途只是负责压缩 cpio文件.
initramfs还可以指定别的压缩格式
funicorn
帖子: 1131
注册时间: 2005-09-13 4:56
系统: Ubuntu QQ
送出感谢: 0
接收感谢: 47 次

Re: 求助】内核移植后不能正常引导

#8

帖子 funicorn » 2017-12-23 18:56

wang161x 写了:cpio -id initramfs-3.2.96-2.el5.img.gz 使用这个可以查看文件,但是没有发现init文件,应该是那个地方不对,我估计问题出在img文件上,但不知到该怎么办
进入外部系统环境,chroot到本地/系统,使用 update-initramfs -u -k <kernel_version>来重建文件系统镜像。
添加ppa后只更新此ppa:
update-ppa()
{ sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
写入~/.bashrc,source一下,就可以直接用,是不是很方便?觉得方便就按个赞。
回复

回到 “启动和引导”