1

Note: I am NOT interested in the currently running kernel, but on a kernel that I am going to boot and which is in a file in the filesystem.

I am going to boot a new kernel. I have prepared grub.conf and run sudo update-grub. I am nearly sure I have installed the right kernel:

$ apt-cache show linux-image-generic-lts-trusty
Package: linux-image-generic-lts-trusty
Priority: optional
Section: metapackages
Installed-Size: 28
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Source: linux-meta
Version: 3.13.0.32.38
Depends: linux-image-generic
Filename: pool/main/l/linux-meta/linux-image-generic-lts-trusty_3.13.0.32.38_amd64.deb
Size: 1778
MD5sum: b8e5f06fb937b0132cb2fec4f996fdbf
SHA1: cad821aedf442987d9de0eb16b93f9fdc761fc2f
SHA256: 2a1a1f0073ca6864b985445bb0b012e5becc4cd44836ff5ab52cb84e221015f1
Description-en: Generic Linux kernel image
 Transistional package for upgrades from 12.04 to 14.04 (Precise to Trusty)
Description-md5: 8a39d8556ef2a2dfbe5697d557d7c36a
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y

Package: linux-image-generic-lts-trusty
Priority: optional
Section: metapackages
Installed-Size: 27
Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
Architecture: amd64
Source: linux-meta
Version: 3.13.0.24.28
Depends: linux-image-generic
Filename: pool/main/l/linux-meta/linux-image-generic-lts-trusty_3.13.0.24.28_amd64.deb
Size: 1782
MD5sum: 5cf768492732982e3bde545f519196dc
SHA1: fdc5d833ca0f93ae5d1b1dbdb818285d5338fde4
SHA256: f11eb79a49640d161d9e7cdade80a9fad2f7b50880bf28097eaca30a8c0a8fbb
Description-en: Generic Linux kernel image
 Transistional package for upgrades from 12.04 to 14.04 (Precise to Trusty)
Description-md5: 8a39d8556ef2a2dfbe5697d557d7c36a
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y

So the kernel is 64 bits (amd64). I will install it then:

$ sudo apt-get install linux-image-generic-lts-trusty

Let's check what was installed:

$ apt-cache depends linux-image-generic-lts-trusty 
linux-image-generic-lts-trusty
  Depends: linux-image-generic
  Conflicts: linux-image-generic-lts-trusty:i386

$ apt-cache depends linux-image-generic
linux-image-generic
  Depends: linux-image-3.13.0-32-generic
  Depends: linux-image-extra-3.13.0-32-generic
  Depends: linux-firmware
  Conflicts: linux-image-generic:i386

$ dpkg -L linux-image-3.13.0-32-generic 
...
/boot/abi-3.13.0-32-generic
/boot/vmlinuz-3.13.0-32-generic
/boot/config-3.13.0-32-generic
/boot/System.map-3.13.0-32-generic

I do not like that -32. Is that 32 bits? Probably not, but:

$ ls -l /boot/bzImage-* /boot/vmlinuz-*
-rw-r--r-- 1 root root 7694800 Mar 18 16:48 /boot/bzImage-3.10.23-xxxx-std-ipv6-64
-rw------- 1 root root 5798112 Jul 15 06:29 /boot/vmlinuz-3.13.0-32-generic

The other kernel I have has a very telling -64, and the kernel I am going to try has a -32-generic. Maybe it does not mean anything, but I want to be sure that /boot/vmlinuz-3.13.0-32-generic is 64 bits. How can I verify that?

blueFast
  • 4,000
  • 13
  • 36
  • 51
  • It's very obvious that you installed the 64-bit kernel. Why are you confused? – Michael Hampton Jul 28 '14 at 12:15
  • It is very obvious, *but* I want to double check. Because of two reasons: there is a very annoying `-32-generic` suffix, wich seen besides the `-std-ipv6-64` just does not look right. And second: this is a remote machine. If it does not boot correctly, I will have lots of trouble to put it back to the correct state. – blueFast Jul 28 '14 at 12:53
  • But anyway, the question is not *why should I check this?*, but *how can I check it?*. I have given a bit of background to justify why I want to do that, but if that is not good enough, let's say I am just curious. Given a kernel file, how do I know for which architecture has it been compiled? Can it be done? I bet! How? No idea! – blueFast Jul 28 '14 at 12:56

0 Answers0