是的,我知道这是一个内核;)
当我浏览13.04的64位ISO时,我看到了这个文件.我正在把它们重新混合到我的闪存盘上。然而,我希望我的混音与CD相比有一个更新的内核。这意味着我必须做一个vmlinux.efi。
当然,能做一个意味着我必须知道它是什么。
它仅仅是一个普通的64位内核吗?可能是EFI启动存根吗?
引导存根方面没有意义,因为它是从EFI中的GRUB加载的,甚至不在EFI/BOOT中。如果是EFI引导存根,也许只是未来的防伪?我在社区wiki上发现的一篇文章说了一些类似于“it it vmlinuz.efi”的内容,因为它是64位的。这看起来也有点奇怪。我的意思是,它有助于区分,但如果它不是EFI可引导的,那么可以选择一个更好的名称。
有一件事我觉得奇怪,那就是Isolinux和GRUB都以同样的方式加载它,就好像它只是一个内核.所以它的实际用途有点神秘。EFI引导存根也可以作为普通内核加载吗?
事实上,我找不到关于为什么选择这个文件名以及它到底是什么的讨论。所以,这里希望有人知道这是什么以及它是如何工作的。
编辑:
Ubuntu、Kubuntu、Xubuntu和Lubuntu CD的所有内核的Info/MD5's:
DISTRO: lubuntu
vmlinuz: Linux kernel x86 boot executable bzImage, version 3.8.0-19-generic (buildd@allspice) #29-Ubuntu SMP Wed Apr 17 18, RO-rootFS, swap_dev 0x5, Normal VGA
deacc3c3a21beb4913c43a00bb6d5e01 vmlinuz
DISTRO: kubuntu
vmlinuz: Linux kernel x86 boot executable bzImage, version 3.8.0-19-generic (buildd@allspice) #29-Ubuntu SMP Wed Apr 17 18, RO-rootFS, swap_dev 0x5, Normal VGA
deacc3c3a21beb4913c43a00bb6d5e01 vmlinuz
DISTRO: xubuntu
vmlinuz: Linux kernel x86 boot executable bzImage, version 3.8.0-19-generic (buildd@allspice) #29-Ubuntu SMP Wed Apr 17 18, RO-rootFS, swap_dev 0x5, Normal VGA
deacc3c3a21beb4913c43a00bb6d5e01 vmlinuz
DISTRO: ubuntu
vmlinuz.efi: Linux kernel x86 boot executable bzImage, version 3.8.0-19-generic (buildd@allspice) #29-Ubuntu SMP Wed Apr 17 18, RO-rootFS, swap_dev 0x5, Normal VGA
1919b5acd184538ecb978f6361f98bf1 vmlinuz.efi来自Ubuntu的一个显然是不同的。我开始觉得那一定是个EFI启动存根内核..。但仍然没有找到任何可以证实或否认的东西。
发布于 2013-08-09 15:17:54
EFI存根加载器是内核的一个组件,而不是单独的程序。当EFI存根加载器包含在内核中时,该内核文件看起来就像EFI中的普通EFI程序,但它仍然是一个普通的内核,可以由通常的Linux引导加载程序加载-- GRUB、LILO、ELILO、SYSLINUX等等。EFI存根自内核3.3.0和AFAIK (自那时以来构建的所有Ubuntu )都包含了这个特性以来就已经可用了。
没有法律规定使用EFI存根加载器的内核必须有以.efi结尾的文件名。实际上,安装到硬盘上的内核缺少.efi文件扩展名;这似乎是安装盘上的内核所独有的,至少在Ubuntu中是如此。不过,除非有.efi扩展,否则EFI不会运行程序。因此,给出文件名的内核为高级用户提供了一种恢复和测试的方法,而这些高级用户本来是不可用的--即从EFI shell手动启动内核。我不能肯定,但我怀疑Ubuntu开发人员现在以这种方式命名他们的内核,以提供启动内核的备份手段,或者仅仅是为了表明它确实包含EFI存根支持。OTOH,32位Ubuntu安装光盘的内核没有.efi扩展,但它确实包括EFI存根支持。我怀疑Ubuntu开发人员只是没有始终如一地命名他们的内核。
可以从磁盘上的任何位置启动EFI应用程序(例如具有EFI存根支持的Linux内核)。"casper“子目录不是引导加载程序通常驻留的位置,但是可以从那里启动EFI程序。
不管你读到什么消息,它都说64位内核有一个.efi扩展,因为它是64位内核,是错误的。在实践中,32位版本的Ubuntu有一个缺少这个扩展的内核,所以在Ubuntu世界中是有关联的,但是没有因果关系。在Linux中,.efi扩展并不表示64位内核--有很多64位内核没有这个扩展,在基于32位UEFI的计算机上命名一个32位内核可能是可取的(尽管Ubuntu不这样做)。该文件名扩展只是标识一个EFI应用程序,它可以是32位(x86/IA-32),64位(x86-64/ an 64),或者其他架构(ARM或Itanium)。
https://askubuntu.com/questions/330541
复制相似问题