Proxmox bootet nicht mehr von aktuellem Kernel "attempt to read or write outside of disk hd0

Frank666

Member
Jan 23, 2018
44
4
13
Hi,

ich habe einen Proxmox Host, den ich sehr selten boote.
Jetzt habe ich bemerkt, dass er sich nicht mehr mit dem aktuellen Kernel booten lässt.

Es erscheint immer:
p01.png

bei allen 5.4er und dem 5.3.18-3 kommt dieselbe Meldung.
Ab dem 5.3.18-1 bootet der Server ganz normal
p02.png

Weiss jemand was das sein könnte bzw. wie ich das Problem beheben kann?
In Sachen Kernel / Grub habe ich leider keine wirkliche Ahnung.

Gruß
Frank
 

Richard

Proxmox Staff Member
Staff member
Mar 6, 2015
821
36
48
Austria
Hallo,

ich habe einen Proxmox Host, den ich sehr selten boote.
Jetzt habe ich bemerkt, dass er sich nicht mehr mit dem aktuellen Kernel booten lässt.

Es erscheint immer:
View attachment 19688

Das bedeutet, dass die Kernel Datei von GRUB nicht gefunden wird. Kann auch daran liegen, dass ein ungültiges root-Verzeichnis angegeben ist.

bei allen 5.4er und dem 5.3.18-3 kommt dieselbe Meldung.
Ab dem 5.3.18-1 bootet der Server ganz normal
View attachment 19689

Weiss jemand was das sein könnte bzw. wie ich das Problem beheben kann?
In Sachen Kernel / Grub habe ich leider keine wirkliche Ahnung.


Da zum Glück noch ein Kernel bootbar ist, kann man ganz fach die Datei /boot/grub/grub.cfg auslesen und die Menüeinträge überprüfen. Die Kernel Datei selbst ist direkt im Verzeichnis /boot/grub und heißt vmlinuz-.... - deren Name muss iḿit dem im entsprechenden grub.cfg Eintrag übereinstimmen.

Informationen zur grub.cfg Syntax(und noch mehr über GRUB) findet sich z.B. hier https://www.gnu.org/software/grub/manual/grub/grub.html

Man kann auch während des boot-menüs "c" eingeben und interaktiv in GRUB analysieren. Ist ein bisschen gewöhnungsbedürftig, letzlich aber gar nichts so kompliziert - zuvor muss man sich mit den Grundfunktionen vertraut machen, o.a. Link ist da sehr hilfreich.
 
  • Like
Reactions: Frank666

Frank666

Member
Jan 23, 2018
44
4
13
Hi,

mit den Pfaden in der grub.cfg passt leider alles :-(

die Einträge sind bis auf die jeweils unterschiedlichen /boot/* Dateien identisch.
/boot/vmlinuz-5.4.60-1-pve und /boot/initrd.img-5.4.60-1-pve sind auch vorhanden, also müsste er ja eigentlich die Datei finden

Code:
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 5.4.60-1-pve' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.60-1-pve-advanced-9bb5a8cc-309d-4d5a-839e-a1035e1886b4' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'  9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        else
          search --no-floppy --fs-uuid --set=root 9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        fi
        echo    'Loading Linux 5.4.60-1-pve ...'
        linux   /boot/vmlinuz-5.4.60-1-pve root=/dev/mapper/pve-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-5.4.60-1-pve
}

Code:
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 5.3.18-1-pve' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.18-1-pve-advanced-9bb5a8cc-309d-4d5a-839e-a1035e1886b4' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'  9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        else
          search --no-floppy --fs-uuid --set=root 9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        fi
        echo    'Loading Linux 5.3.18-1-pve ...'
        linux   /boot/vmlinuz-5.3.18-1-pve root=/dev/mapper/pve-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-5.3.18-1-pve
}
 

Richard

Proxmox Staff Member
Staff member
Mar 6, 2015
821
36
48
Austria
Hi,

mit den Pfaden in der grub.cfg passt leider alles :-(

die Einträge sind bis auf die jeweils unterschiedlichen /boot/* Dateien identisch.
/boot/vmlinuz-5.4.60-1-pve und /boot/initrd.img-5.4.60-1-pve sind auch vorhanden, also müsste er ja eigentlich die Datei finden

Code:
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 5.4.60-1-pve' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.60-1-pve-advanced-9bb5a8cc-309d-4d5a-839e-a1035e1886b4' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'  9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        else
          search --no-floppy --fs-uuid --set=root 9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        fi
        echo    'Loading Linux 5.4.60-1-pve ...'
        linux   /boot/vmlinuz-5.4.60-1-pve root=/dev/mapper/pve-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-5.4.60-1-pve
}

Code:
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 5.3.18-1-pve' --class proxmox --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.3.18-1-pve-advanced-9bb5a8cc-309d-4d5a-839e-a1035e1886b4' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod lvm
        insmod ext2
        set root='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='lvmid/pSNkoQ-ztsG-fSUE-2aT1-J5ah-cWZB-1Gokim/A8xrWN-1jJb-Az3L-Kdo1-FQ13-v5kI-Jg0Asf'  9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        else
          search --no-floppy --fs-uuid --set=root 9bb5a8cc-309d-4d5a-839e-a1035e1886b4
        fi
        echo    'Loading Linux 5.3.18-1-pve ...'
        linux   /boot/vmlinuz-5.3.18-1-pve root=/dev/mapper/pve-root ro  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-5.3.18-1-pve
}

Als nächstes müsste man dann direkt in GRUB analysieren, d.h.:

* Sobald das boot-menu erscheint "c" eingeben
* dann erhält man den GRUB prompt "grub>"
* danach die Kommandos aus dem Menueintrag der Reihe nach eingeben, also:
load_video
insmod gzio
usw.,

Das mit "set root" und "hint" kann man sich sparen, also nur:

search --no-floppy --fs-uuid --set=root 9bb5a8cc-309d-4d5a-839e-a1035e1886b4

und dann

ls
zeigt, ob alle Disks und Partitionen erkannt wurde

ls /
zeigt, welche Dateien GRUB an dieser Stelle im aktuellen Directory findet. Müstte auch "boot" dabei sein, und dann

ls /boot

zeigt, welche Dateien sich im Directory "boot" befinden, da sollte auch vmlinuz-5.3.18-1-pve und initrd.img-5.3.18-1-pve dabei sein. Dann kommt
linux /boot/vmlinuz-5.3.18-1-pve root=/dev/mapper/pve-root ro quiet
initrd /boot/initrd.img-5.3.18-1-pve

Und das wär's dann - da es ja nicht funktioniert, geht es ab einem der obigen Schritte nicht mehr, die Frage ist, ab welchem.

In diesem Fall

set

eingeben und nachsehen, was als "root" (üblicherweise vorletzte Zeile der Ausgabe) gefunden wurde.
 
Last edited:
  • Like
Reactions: Frank666

Frank666

Member
Jan 23, 2018
44
4
13
Die Dateien in /boot findet er alle.
p01.png

Der Fehler kommt dann bei der linux Zeile (hier im Screen leider ohne den Rest der Zeile root=... aber nur weil mit dem Zusatz auch der Fehler kam und ich nur testen wollte)
p02.png
 

Richard

Proxmox Staff Member
Staff member
Mar 6, 2015
821
36
48
Austria
Die Dateien in /boot findet er alle.
View attachment 19711

Der Fehler kommt dann bei der linux Zeile (hier im Screen leider ohne den Rest der Zeile root=... aber nur weil mit dem Zusatz auch der Fehler kam und ich nur testen wollte)
View attachment 19712
Entweder GRUB erkennt die Disk-Geometrie nicht richtig oder das Filesystem ist in Ordnung.

Am besten nit einem Live-Medium booten und dann
- die Disk Beschaffenheit sich mit fdisk /dev/sd.. ansehen
- mit fsck.ext4 /dev/mapper/pve-root das Filesystem prüfen

oder auch: einfach probieren, ob sich die Kernel Dateien im gebooteten Zustand lesen lassen, z.B. durch kopieren an eine andere Stelle (am besten auf eine andere Parition) im System - von der könnte man dann sogar booten, dazu wäre grub.cfg entsprechend zu adaptieren.


im "grub>" Modus kann man sich mit ls -l die Details ausgeben lassen, wie GRUB die Disk(en) sieht - die physikalischen und Partitionsdaten müssen mit jenen aus fdisk übereinstimmen.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE and Proxmox Mail Gateway. We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!