Arch Linux
You are not logged in.
#1 2019-05-02 09:21:53
Grub: loading Linux . invalid magic number
I have LVM (vg-root, vg-data, vg-swap) on LUKS on RAID5 (mdadm).
After the grub boot menu, I’m getting:
I copied /boot to a USB drive and edited the menu entry from:
which sets me to use the copy on the USB drive. It works.
I figured that grub was finding the filesystem OK since it was getting grub.cfg for the menu, but I still went and tried «insmod»ing several modules including many gcry-* modules. Nothing worked.
fsck shows a clean root filesystem.
Has anyone a suggestion?
TIA
My grub config file is:
/boot/grub/grub.cfg
#2 2019-05-03 18:23:16
Re: Grub: loading Linux . invalid magic number
Look in this thread: Update problem: invalid magic number. Something may not have updated correctly. Using a liveusb and chroot into your system to update might fix this.
#3 2019-05-04 03:38:36
Re: Grub: loading Linux . invalid magic number
I saw that thread. I looks that the system somehow corrected itself — not a lot of helpful info there. I am able to boot using the copy of the kernel and initramfs on the USB drive.
After each pacman upgrade where the kernel and/or initramfs is updated, I need to copy the files to the USB (mounted temporarily on /mnt/1):
cp /boot/vmlinuz-linux-lts /boot/initramfs-linux-lts.img /mnt/1/boot/
#4 2019-05-04 05:55:01
Re: Grub: loading Linux . invalid magic number
I’ve removed and reinstalled grub and breeze-grub.
There exists «grub-file», which I don’t know if it uses the same routines as the grub loader, but testing the kernel with it provided the following info:
This seems a loose test, but at least it says the kernel is a x86_64-efi kernel.
#5 2021-04-14 21:27:40
Re: Grub: loading Linux . invalid magic number
This problem quietly disappeared and now has reappeared after an upgrade. This is a workaround that works for some reason.
copy vmlinux-linux-lts to some other directory. I was initially using a USB flash drive, but now I just create a subdirectory in /boot like /boot/5.10.29.
In grub, hit ‘e’ to edit the menu entry. Change the linux line from
linux /boot/vmlinux-linux-lts .
to
linux /boot/5.10.29/vmlinux-linux-lts .
.
This works.
Change /boot/grub/grub.cfg to fix things until the next grub-mkconfig.
Both files are identical with the same permissions.
Maybe someone more knowledgeable can explain why this hack is required and why it works.
Arch Linux
You are not logged in.
#1 2021-06-02 18:43:41
[SOLVED] Invalid magic number on boot
after a system upgrade including linux and linux-headers my system stopped working.
I’ve already tried to reinstall linux and linux-headers, tried `mkinitcpio -P`, to rebuild my grub config and to reinstall grub. Everything without error messages.
Some weeks ago I had the same issue, but here everything was fine again after I reinstalled linux and linux-headers.
I’ve used the grub command line. I’m not sure if I used it correctly or if it is a hint:
It is a btrfs filesystem and it works.
I hope someone has an idea.
EDIT: My solution was to upgrade grub to 2.06 RC1. Details are in the thread.
Last edited by bysom (2021-06-07 19:52:23)
#2 2021-06-02 20:06:13
Re: [SOLVED] Invalid magic number on boot
Suggests /boot/vmlinuz-linux is corrupt.
Is the boot partition full (no space left)?
What dow «file /boot/vmlinuz-linux» say and what is the md5 of the file?
If thereÄs enough space, can you isntall and boot the lts kernel?
Online
#3 2021-06-03 09:26:48
Re: [SOLVED] Invalid magic number on boot
Hi, thanks for your answer.
There is enough space, since i have no extra /boot partition. I’ve encrypted my entire system including /boot. Therefore I have an extra efi partition with grub, that decrypts my btrfs and then boots the kernel. Mostly like it is described in the Wiki
I’ve also installed the lts kernel. Both aren’t working.
Here the md5 sums
I’ve also tried a `btrfs check` without errors.
Thanks for your help!
#4 2021-06-03 13:42:56
Re: [SOLVED] Invalid magic number on boot
It would seem that either the decryption fails or maybe is just too slow
Can you «ls» the partition after «insmod btrfs»?
Online
#5 2021-06-03 17:30:34
Re: [SOLVED] Invalid magic number on boot
Okay, I have some results.
After the cryptomount command:
I have tried a `ls /@/boot` after the `echo ‘Loading Linux linux-lts . ‘` and it lists the files in my /boot directory. After that I have tried a `file —is-x86-linux /@/boot/vmlinuz-linux` and got no result (and also no error). Is there something else I should try?
#6 2021-06-03 18:37:26
Re: [SOLVED] Invalid magic number on boot
I’ve tried a `sleep 30` before loading the kernel, which hasn’t changed anything.
After that I have chrooted my arch again and reinstalled linux, linux-lts, and the headers and now something changed. If I try to boot the LTS kernel it passes the ‘Loading Linux linux-lts . ‘ section and then I get a kernel panic in the following ‘Loading initial ramdisk . ‘ section. The error message before the kernel panic is
The normal linux kernel still fails at the first section ‘Loading Linux linux . ‘
Last edited by bysom (2021-06-03 18:38:35)
#7 2021-06-04 05:19:17
Re: [SOLVED] Invalid magic number on boot
Re-cap:
This is a regression, the config used to work befoer?
The files end on the encrypted partition intact, ie. they’re perfectly accessible offline?
The error has a degree of randomness, eg. vmlinuz-linux-lts (now) loads, but the other files have bad header bytes?
What else was included in the breaking udpate? /var/log/pacman.log?
returns a boolean.
Online
#8 2021-06-04 14:48:33
Re: [SOLVED] Invalid magic number on boot
Yes, your recap sounds correct. The config worked before, I can access my files and the error seems to have some kind of randomness.
Here is the pacman log from the last update before the crash: http://ix.io/3oJJ
#9 2021-06-04 14:55:54
Re: [SOLVED] Invalid magic number on boot
cryptsetup sticks out…
Downgrade that, re-install the kernels and see what happens.
BE PREPARED TO LOSE ACCESS TO THE … oh, wait: you can’t boot and will have to chroot anyway
Online
#10 2021-06-04 17:48:05
Re: [SOLVED] Invalid magic number on boot
I’ve downgraded to cryptsetup 2.3.4 and the error is still the same.
Is this setup with an encrypted boot partition that rare, that it could be a bug in grub or somewhere else? The idea to reinstall my arch with a classical encryption setup gets more and more attractive for me. Unless you have still some good ideas. I’m still very happy with your help
#11 2021-06-04 20:40:21
Re: [SOLVED] Invalid magic number on boot
Did the kernel re-installation change anything about the randomness aspect of the kernel/initramfs «corruption»?
And otherwise, how the status is at the grub shell (ie. testing the file types there) in case this is -somehow- a time/race condition…
Online
#12 2021-06-05 20:23:24
Re: [SOLVED] Invalid magic number on boot
Hi, I have some news.
To your questions: The kernel reinstallation made that the error occours at the ‘Loading Linux linux-lts . ‘ again for the lts kernel which made it to the initramfs loading. As far as I remember this state changed with the reinstallation of the kernel.
I have tried your ‘if file xy then’ example and it obviously returned a false value. I’ve got a ‘kernel is bad’ because I’ve added an else case. It should have been true, right?
After that I saw, that I can use md5sum with grub and checked the md5 sum of the kernel and got a different number than I get from my live system.
From a live linux
I have asked someone else with an arch linux for a hash sum as a reference and got the 8ed348f0125772a6ef0756b818199fc6 for the actual kernel.
(I’ve updated the kernel yesterday)
Then I’ve used cat with grub to view some text files which all looked normal to me. After that I’ve used md5sum on one of these files and got the same hash numbers with grub and with my live stick.
Last edited by bysom (2021-06-05 21:33:05)
#13 2021-06-05 22:33:50
Re: [SOLVED] Invalid magic number on boot
If you change the mkinitcpio compression (in doubt to «cat»), do the md5sums for those turn consistent?
https://wiki.archlinux.org/title/Mkinitcpio#COMPRESSION
Online
#14 2021-06-06 12:13:21
Re: [SOLVED] Invalid magic number on boot
Hi, I have changed that compression to cat and reinstalled the kernels.
The md5 sums from my live linux (ubuntu 20.04, Kernel 5.8.0, cryptsetup 2.2.2, btrfs-progs v5.4.1). Those from my chrooted arch are the same.
The md5sums from grub
That ones from the initramfs are correct. And that one from the linux is different now.
Last edited by bysom (2021-06-06 12:18:59)
#15 2021-06-06 12:34:36
Re: [SOLVED] Invalid magic number on boot
Smells as if the grub btrfs module doesn’t like compressed files (at least not zstd)?
If you check a random zstd compressed file from the grub shell, does its md5 deviate?
Or do you maybe use https://wiki.archlinux.org/title/Btrfs#Compression ?
Online
#16 2021-06-06 21:57:33
Re: [SOLVED] Invalid magic number on boot
Yes, I’m using btrfs compression with zstd.
I’ve checked the results with a normal file
Linux point of view
grub point of view
Both files are different here. There could be some randomness, I think.
Last edited by bysom (2021-06-06 22:27:06)
#17 2021-06-06 22:03:11
Re: [SOLVED] Invalid magic number on boot
What if you «chattr -c /boot» and update the kernel?
Edit: also notice the warning and to have grub-install post 2019-07-05
Last edited by seth (2021-06-06 22:06:14)
Online
#18 2021-06-07 19:45:18
Re: [SOLVED] Invalid magic number on boot
Hi, I have tried that chattr -c /boot thing and it hasn’t changed anything. After that I have checked the md5sums with grub again and got for one file an error message containing ‘error: zstd data corrupted.’. After that I have repeated that btrfs check just in case without errors.
Since the error only occurred with grub and there is already a rc1 for the next grub release, which seems to be really rare, I thought that I could try grub-git from the aur (what if it is a grub bug and no one fixes it before the release, was my first thought). So I installed grub-git, then executed grub-install, restored the grub config and got a booting system. I’m a bit happy now. And I am very thankful for your help and your patience, seth! A very positive experience. Let me know if I can do something in reward.
#19 2021-06-07 19:47:19
Re: [SOLVED] Invalid magic number on boot
Let me know if I can do something in reward.
Please always remember to mark resolved threads by editing your initial posts subject — so others will know that there’s no task left, but maybe a solution to find.
Thanks.
Online
#20 2021-06-07 19:49:57
Re: [SOLVED] Invalid magic number on boot
Of course
Last edited by bysom (2021-06-07 19:54:38)
Grub error invalid magic number
I’m in trouble with new kernel compile.
I’m using kernel 5.4.48-gentoo-x86_64 and all working fine.
Using the same configuration (I have copied .config of the older kernel in new source directory and run «make syncconf») I have compiled today the new source 5.4.60.
Compile phase finish without any error (I used «genkernel —xconfig —clean all»), in boot directory I find the new initamfs and vmlinuz files.
When I restart the system, If in grub I select the new kernel the system halted with message
error: invalid magic number
error: initramfs, load kernel before
I read another post about a similar problem (https://forums.gentoo.org/viewtopic-t-1084672-highlight-invalid+magic+number.html), but I have not understand the solution.
Последний раз редактировалось: alessio_demarchi (вт сен 01, 2020 8:58 am), всего редактировалось 1 раз
Watchman
Зарегистрирован: 01 июл 2004
Сообщений: 9185
Откуда: almost Mile High in the USA
Добавлено: сб авг 29, 2020 3:19 pm Заголовок сообщения: | |
How are you configuring your grub? What file did you use for your kernel and initramfs? _________________ Intel Core i7 2700K/Radeon R7 250/24GB DDR3/256GB SSD What am I supposed watching? |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: сб авг 29, 2020 3:31 pm Заголовок сообщения: | |
Which genkernel version are you using? If you are using genkernel-4.1.1, please upgrade to 4.1.2 and retry. _________________ Regards, Whissi |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: вс авг 30, 2020 10:46 am Заголовок сообщения: | |
My grub is configured to load initram and kernel generated by genkernel. genkernel is the version 4.1.0-r2 I use to move generated kernel and initramfs files in tree directory from /boot: old (previous compiled kernel files) in each directory there is: in /boot directory I create two group of symbolik link: kernel-x86_64-1_old, 2_tst, 3_dfl with the same philosophy as the previous tree link System.map linked to default directory System.map My system is my working laptop, and is running since 4 years ago with gentoo (dell precision M4800) Thanks a lot for your replies |
Watchman
Зарегистрирован: 25 июл 2006
Сообщений: 5127
Откуда: Illinois, USA
Добавлено: вс авг 30, 2020 1:50 pm Заголовок сообщения: | |
All of that can be automated with a script, eliminating mistakes in typing. IIRC genkernel will update grub for you, so your script needn’t do that. I always recommend enabling IKCONFIG IKCONFIG_PROC in the kernel so that the running configuration can be retrieved unambiguously. |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: вс авг 30, 2020 2:45 pm Заголовок сообщения: | |
Now I have tried to recompile my kernel with genkernel-4.1.2, but the result not changed. |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: вс авг 30, 2020 3:25 pm Заголовок сообщения: | |
Do you build kernel and initramfs with genkernel or do you build kernel manually? Please also show /var/log/genkernel.log. Get a debug shell in genkernel and run «gksosreport» and show us that file. |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 9:15 am Заголовок сообщения: | |
I build all with genkernel. How can I show you genkernel.log (it is very huge) |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 11:39 am Заголовок сообщения: | |
Use services like https://transfer.sh/ _________________ Regards, Whissi |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 2:07 pm Заголовок сообщения: | |
Ok thanks |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 5:13 pm Заголовок сообщения: | |||||
First, genkernel.log is not really the interesting log file in your case for now because generation didn’t fail for you.
This is wrong. Please read how genkernel determines kernel.config it will use. If you start building a new KV (=when upgrading kernel sources), pay attention to used kernel config. I recommend to always pass kernel config via parameter (—kernel-confog=/path/to/desired/kernel.config). This way you can be sure that nothing unexpected will happen (hint: If new kernel should be based on current running kernel, just use —kernel-config=/proc/config.gz). If you really did what you wrote in your first posting, i.e. installed new kernel sources, copied any existing kernel.config into that directory and run an arbitrary command in that directory. on next genkernel run, this kernel.config (=/usr/src/linux/.config) will be ignored by default and genkernel will look for kernel.config based on set heuristic (determining KV based on set kernel sources, looking in /etc/kernels/ for an already existing kernel.config for that version. when building a new KV for the first time, a kernel.config for this KV usually doesn’t exist yet so genkernel will fall back to its generic kernel.config). So please notice that shown genkernel.log shows
which means that something had created a config in there. This doesn’t match your story. Please verify.
_________________ |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 6:21 pm Заголовок сообщения: | |
Thanks Whissi The method I used for configuring new kernel from previous kernel version source is explained in Gentoo wiki for kernel update (probably my english is not so good, and my explaination is not correct). I think the problem is not in initramfs file, but in vmlinuz. How can I run gksosreport, it is not and application installed in my system. Now I try to run genkernel —kernel-config=/proc/config.gz all and then I try to reboot my system. |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 6:46 pm Заголовок сообщения: | |
«gksosreport» is part of genkernel’s initramfs. I.e. in case genkernel’s initramfs will fail to boot your system you can start a rescue shell and call that command. _________________ Regards, Whissi |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 6:48 pm Заголовок сообщения: | |
I try new kernel generated by genkernel —kernel-config=/proc/config.gz all, but nothing change I think the problem is in vmlinuz, initramfs is not loaded, so I can’t run gksosreport. The message reported at boot is: Loading Linux x86_64-3_dfl . Press any key to continue. Последний раз редактировалось: alessio_demarchi (пн авг 31, 2020 6:51 pm), всего редактировалось 1 раз |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 6:50 pm Заголовок сообщения: | |
Which bootloader are you using? For grub, please show us /boot/grub/grub.cfg. _________________ Regards, Whissi |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 6:54 pm Заголовок сообщения: | |
I use grub2 this is my grub.cfg https://transfer.sh/%28%29.tar.gz |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 6:55 pm Заголовок сообщения: | |
That tar file is empty. _________________ Regards, Whissi |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 7:12 pm Заголовок сообщения: | |
Sorry Try this |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 7:14 pm Заголовок сообщения: | |
# # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### if [ x»$ if [ «$ function savedefault < function load_video < if [ x$feature_default_font_path = xy ] ; then if loadfont $font ; then ### BEGIN /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/41_custom ### |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 7:18 pm Заголовок сообщения: | |||||||
Note: In your first posting you mentioned
These are custom names. The shown genkernel.log also shows that you created
Your shown grub.cfg doesn’t use that name schema. I would suggest cleaning up /boot and re-run
. Please double check before reboot that grub.cfg will contain an entry using initramfs-5.4.60-gentoo-x86_64.img and corresponding kernel. |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: пн авг 31, 2020 7:23 pm Заголовок сообщения: | |
Sorry In my first post I used a simplified sintax. The filenames are correct in grub.cfg. The filename that compare in grub.cfg are symbolik link to initramfs-genkernel- .img and corresponding kernel file drwxr-xr-x 2 root root 4096 Aug 31 21:15 default |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: пн авг 31, 2020 8:39 pm Заголовок сообщения: | |
I am kind of lost here. Don’t get me wrong here but you are doing advanced stuff and I am not sure you understand what you are doing. I cannot help you with that. All I can tell you: If you manage to get genkernel’s initramfs loaded (you will see that on boot when initramfs will print you name and version) and it will fail, genkernel’s initramfs will offer you to enter rescue shell. If you enter rescue shell you can use «gksosreport» to get further help. If you don’t see such a prompt that is another indicator that you don’t use genkernel’s initramfs. But at the moment it sounds like your problem is that you do not boot genkernel’s initramfs at all so this is not a genkernel problem. So I recommend you to go back one step and follow handbook step by step. Build both, kernel and initramfs with genkernel (genkernell —kernel-config=/path/to/your/desired/kernel.config all) and tell bootloader to boot that image and initramfs. I am pretty sure that this will work when you use a working kernel config (for example /proc/config.gz from current running kernel). |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: вт сен 01, 2020 8:15 am Заголовок сообщения: | |
Sorry Whissi. You have to be patience with me. I’m an old linux users (it is since 1994 that I recompile linux kernel source as hobbyist user), and a lot my solution it is not so «classical», but trust me, all are running and functional. My problem is not in initramfs, initramfs is not loaded because vmlinuz (loaded before initramfs) is not recognized as right kernel file. I don’t know why. If I run «file /boot/default/vmlinuz. » this is the result: # file /boot/default/vmlinuz-5.4.60-gentoo-x86_64 /boot/default/vmlinuz-5.4.60-gentoo-x86_64: Linux kernel x86 boot executable bzImage, version 5.4.60-gentoo-x86_64 (root@ganimede) #1 SMP PREEMPT Mon Aug 31 20:59:27 CEST 2020, RO-rootFS, swap_dev 0x6, Normal VGA Now I try to clear my /boot partition (all link and directory old, test and default), launch your suggested command (genkernel —kernel-config=/proc/config.gz all) then grub-mkconfig -o /boot/grub.cfg and then reboot my system. wait a moment and then I write the result Последний раз редактировалось: alessio_demarchi (вт сен 01, 2020 8:44 am), всего редактировалось 1 раз |
n00b
Зарегистрирован: 03 ноя 2012
Сообщений: 36
Добавлено: вт сен 01, 2020 8:43 am Заголовок сообщения: [solved] | |
Ok. I don’t know why, but now it is working. I have cleared my /boot directory (copied my old functioning kernels file), copy /boot/default/vmlinuz. initramfs.. and System.map-genkernel.. in /boot. Run grub-mkconfig -o /boot/grub/grub.cfg Reboot. And now my new kernel is running. Whissi thank a lot. For your patience and competence. How can I mark as solved this topic? |
Retired Dev
Зарегистрирован: 12 янв 2011
Сообщений: 222
Добавлено: вт сен 01, 2020 8:51 am Заголовок сообщения: | |
Glad you sorted the issue. Next to your first posting you should find an «EDIT» button which will allow you to change title to add «SOLVED» I think. |
Список форумов: Gentoo Forums | Часовой пояс: GMT На страницу 1, 2 След. | |
Страница 1 из 2 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах |