[gelöst] Fehlerhafte grub.cfg nach grub update

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
Gerd50
Beiträge: 35
Registriert: 11.01.2011 00:08:58

[gelöst] Fehlerhafte grub.cfg nach grub update

Beitrag von Gerd50 » 29.10.2020 18:14:32

Dualboot testing/sid, grub ist in testing installiert. Jedesmal wenn die grub.cfg neu geschrieben wird, sind die
Einträge für menuentry sid mehrfach vorhanden, fehlerhaft, recovery mode fehlt:

Code: Alles auswählen

set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3775f247-f700-4ef8-ae2f-1e544dc6dd5a' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  3775f247-f700-4ef8-ae2f-1e544dc6dd5a
	else
	  search --no-floppy --fs-uuid --set=root 3775f247-f700-4ef8-ae2f-1e544dc6dd5a
	fi
	echo	'Loading Linux 5.9.0-1-amd64 ...'
	linux	/boot/vmlinuz-5.9.0-1-amd64 root=UUID=3775f247-f700-4ef8-ae2f-1e544dc6dd5a ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-5.9.0-1-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-3775f247-f700-4ef8-ae2f-1e544dc6dd5a' {
	menuentry 'Debian GNU/Linux, with Linux 5.9.0-1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.9.0-1-amd64-advanced-3775f247-f700-4ef8-ae2f-1e544dc6dd5a' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  3775f247-f700-4ef8-ae2f-1e544dc6dd5a
		else
		  search --no-floppy --fs-uuid --set=root 3775f247-f700-4ef8-ae2f-1e544dc6dd5a
		fi
		echo	'Loading Linux 5.9.0-1-amd64 ...'
		linux	/boot/vmlinuz-5.9.0-1-amd64 root=UUID=3775f247-f700-4ef8-ae2f-1e544dc6dd5a ro  quiet
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-5.9.0-1-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 5.9.0-1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.9.0-1-amd64-recovery-3775f247-f700-4ef8-ae2f-1e544dc6dd5a' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos5'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  3775f247-f700-4ef8-ae2f-1e544dc6dd5a
		else
		  search --no-floppy --fs-uuid --set=root 3775f247-f700-4ef8-ae2f-1e544dc6dd5a
		fi
		echo	'Loading Linux 5.9.0-1-amd64 ...'
		linux	/boot/vmlinuz-5.9.0-1-amd64 root=UUID=3775f247-f700-4ef8-ae2f-1e544dc6dd5a ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/boot/initrd.img-5.9.0-1-amd64
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos6'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
	else
	  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
	fi
	linux /vmlinuz root=/dev/sda6
	initrd /initrd.img
}
submenu 'Advanced options for Debian GNU/Linux bullseye/sid (on /dev/sda6)' $menuentry_id_option 'osprober-gnulinux-advanced-0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img.old
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.9.0-1-amd64--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /boot/vmlinuz-5.9.0-1-amd64 root=/dev/sda6
		initrd /boot/initrd.img-5.9.0-1-amd64
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz root=/dev/sda6
		initrd /initrd.img.old
	}
	menuentry 'Debian GNU/Linux bullseye/sid (on /dev/sda6)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz.old--0a79419a-4b14-4c91-bf8f-0f793e3729ec' {
		insmod part_msdos
		insmod ext2
		set root='hd0,msdos6'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6  0a79419a-4b14-4c91-bf8f-0f793e3729ec
		else
		  search --no-floppy --fs-uuid --set=root 0a79419a-4b14-4c91-bf8f-0f793e3729ec
		fi
		linux /vmlinuz.old root=/dev/sda6
		initrd /initrd.img.old
Den Fehler für die verwürgte grub.cfg finde ich nicht, kann mir bitte jemand helfen?
Zuletzt geändert von Gerd50 am 31.10.2020 14:59:37, insgesamt 2-mal geändert.

Benutzeravatar
willy4711
Beiträge: 4442
Registriert: 08.09.2018 16:51:16

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von willy4711 » 29.10.2020 21:01:22

Ich denke, das ist das Produkt von Debianos-prober. Als ich das noch auf meinem Startsystem installiert hatte,
hab ich mal 50 Einträge gezählt (Triple-Boot) mit völlig durcheinandergebrachten Boot-Sequenzen.
Auch die letzten Einträge werden sich wohl kaun starten lassen

Anfangs hab ich da zunächst mit dem Debiangrub-customizer bereinigt.
Das wurde mir aber zu aufwändig.
osprober gelöscht, und bei einem Kernel Update mit dem Customizer die richtige Intrid eingetragen.

Sonst kann ich dir da keine Lösung anbieten.

Edit:

Startet dein 2. System Sid tatsächlich mit diesem Befehl ?

Code: Alles auswählen

linux /vmlinuz root=/dev/sda6
Der wäre ja noch denkbar, solange immer richtig gezählt wird:

Code: Alles auswählen

linux /boot/vmlinuz-5.9.0-1-amd64 root=/dev/sda6
Hab ich aber noch nie gesehen (/dev/sdx)

Benutzeravatar
Gerd50
Beiträge: 35
Registriert: 11.01.2011 00:08:58

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von Gerd50 » 29.10.2020 23:36:02

Vielen Dank für deine Antwort willy und ja sid startet. Welcher Eintrag das bewirkt weiß ich nicht, in
Grub werden

Code: Alles auswählen

Loading Linux Kernelversion
und

Code: Alles auswählen

Loading initial ramdisk
nicht angezeigt. Beim hochfahren sieht es so aus, als würde in den recovery mode gestartet.

Bisher helfe ich mir mit einer selbst gebastelteten grub.cfg mit den richtigen Einträgen für sid,
die ich gegen eine verwürgte tausche, wenn ein grub update mal wieder Müll produziert hat.
Lästig wird es bei Kernel updates, wenn die Kernelversionsnummern per Hand eingetragen
werden müssen. Deswegen würde ich dem Fehler gerne auf die Spur kommen.

Benutzeravatar
willy4711
Beiträge: 4442
Registriert: 08.09.2018 16:51:16

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von willy4711 » 30.10.2020 08:05:30

Gerd50 hat geschrieben: ↑ zum Beitrag ↑
29.10.2020 23:36:02
Deswegen würde ich dem Fehler gerne auf die Spur kommen.
willy4711 hat geschrieben: ↑ zum Beitrag ↑
29.10.2020 21:01:22
Ich denke, das ist das Produkt von Debianos-prober
Lösung, da ich nicht weiß, wie man os-prober "erziehen" kann:

in die /etc/default/grub folgende Zeile einfügen:

Code: Alles auswählen

GRUB_DISABLE_OS_PROBER=true
Oder Debianos-prober deinstallieren.

Beide Lösungen ziehen mindestens ein Debianupdate-grub nach sich
Ich habe die "ganz saubere Lösung" gewählt, und Grub gepurgt mit anschließender Neuinstallation.

Ich habe eine andere Lösung bei mir implementiert:
Ich lade von der Startplatte per chainload den Grub der anderen Platte.
Thread dazu:
viewtopic.php?f=29&t=178120
Der letztendlich finale Inhalt meiner /etc/grub.d/40_custom :

Code: Alles auswählen

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Debian Bullseye Mate" {
	insmod ext2
	search --fs-uuid --no-floppy --set=root f8e37245-8f05-4fb5-93bc-e76299146c13
	configfile /boot/grub/grub.cfg
	chainloader +1
}

Benutzeravatar
ingo2
Beiträge: 998
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von ingo2 » 30.10.2020 12:32:03

Ich habe auch lange getüftelt bis ich das unbegrenzte Anwachsen der grub.cfg im Griff hatte.
Das eigentliche Problem von os-prober ist, daß es nicht nur die "selbst gefundenen Systeme" erfasst, sondern bei allen weiteren Linux-Systemen alles was dort in einer /boot/grub/grub.cfg steht auch noch in seine grub.cfg mit aufnimmt. Bei mehreren Grub-Installationen schaukelt sich das dann auf, da jedes "update-grub" die anderen gefundenen grub.cfg's wieder mit aufnimmt.

Die einzige Lösung ist m-E., Grub nur bei einem System zu installieren. Dann bekommt man aber keine recovery-Eintäge für die anderen Systeme. Die Lösung dafür ist dann, in jedem Linux-System, welches keinen Grub hat, einfach per Editor eine minimale /boot/grub/grub.cfg anzulegen, die nur die 2 passenden Einträge für normalen und rescue-mode enthält.

Bei mir sieht dann so eine minimale grub.cfg für Bullseye ohne Grub so aus:
(einfach die vorhandene grub.cfg bis auf die 2 gewünschten Einträge kürzen)

Code: Alles auswählen

#
# 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/10_linux ###
menuentry 'Debian GNU/Linux Bullseye' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.9.0-1-amd64--6abe456c-0d17-4105-9356-3954936681d0' {
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  6abe456c-0d17-4105-9356-3954936681d0
	else
	  search --no-floppy --fs-uuid --set=root 6abe456c-0d17-4105-9356-3954936681d0
	fi
	linux /boot/vmlinuz-5.9.0-1-amd64 root=/dev/sda5
	initrd /boot/initrd.img-5.9.0-1-amd64
}
menuentry 'Debian GNU/Linux Buster/Sid (recovery mode)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/vmlinuz--6abe456c-0d17-4105-9356-3954936681d0' {
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 --hint='hd0,msdos5'  6abe456c-0d17-4105-9356-3954936681d0
	else
	  search --no-floppy --fs-uuid --set=root 6abe456c-0d17-4105-9356-3954936681d0
	fi
	linux /boot/vmlinuz-5.9.0-1-amd64 root=/dev/sda5 ro single
	initrd /boot/initrd.img-5.9.0-1-amd64
}
Das einzige, was du dann machen mußt, falls es dort einen neuen Kernel gibt, ist die Versions-Nummer anpassen und dann auf dem System mit Grub ein "update-grub" laufen lassen.
Das kannst du dir auch noch sparen, wenn du statt des vollen Dateinamens die Symlinks /vmlinuz und /initrd.img eintägst.

Ich selbst habe mir auf dem System mit Grub noch eine ( 40_common einfach umbenannt) /etc/grub.d/09_custom erstellt, in der ich alle meine meine Linux-Systeme über o.g. Symlinks starte, steht dann immer ganz am Anfang im Bootmenu:

Code: Alles auswählen

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Service-System auf sda1 (Buster)" {
	insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
#        linux /vmlinuz root=/dev/sda1 ro quiet
	linux /vmlinuz root=UUID=ea5ad8ce-1fd7-4f66-b05a-a87f52400de2 ro quiet
        initrd /initrd.img
}

menuentry "Debian-Buster auf sda2" {
	insmod part_msdos
	insmod ext2
        set root='hd0,msdos2'
#        linux /vmlinuz root=/dev/sda2 ro quiet rootdelay=2
	linux /vmlinuz root=UUID=72515d9b-02c3-4495-a384-568a2a445205 ro quiet
        initrd /initrd.img
}

menuentry "Debian-Stretch auf sda3" {
	insmod part_msdos
	insmod ext2
        set root='hd0,msdos3'
#        linux /vmlinuz root=/dev/sda3 ro quiet
	linux /vmlinuz root=UUID=2f64f73e-3b30-4729-973a-58083e1d20ff ro quiet
        initrd /initrd.img
}

menuentry "Test-System auf sda5" {
	insmod part_msdos
        insmod ext2
        set root='hd0,msdos5'
#        linux /vmlinuz root=/dev/sda5 ro quiet
	linux /vmlinuz root=UUID=6abe456c-0d17-4105-9356-3954936681d0 ro quiet
        initrd /initrd.img
}

menuentry "                                   ---" {
        normal
}

menuentry "  reboot" {
	reboot
}

menuentry "                                   ---" {
        normal
}
Wenn man sich das mal eingeprägt hat, sind eigenen Gestaltungen des Boot-Menus fast keine Grenzen gesetzt.

Ingo

Benutzeravatar
willy4711
Beiträge: 4442
Registriert: 08.09.2018 16:51:16

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von willy4711 » 30.10.2020 12:56:27

Hallo Ingo2 interessante Lösung.
Aber dumme Frage: Wofür brauchst du die "minimale grub.cfg" auf den Systemen ohne Grub ?
Die Systeme werden doch über Grub ---> Aufrufen der Intrid des jeweiligen Systems
vom Grub Hauptsystem aus gestartet.?
Andersherum gefragt: Welch Funktion hat eine grub.cfg ohne Grub ?

Benutzeravatar
ingo2
Beiträge: 998
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von ingo2 » 30.10.2020 13:07:51

Ganz einfach: damit du auch Einträge für den recovery-mode bekommst. Man könnte eigentlich den normalen Booteitrag auch weglassen. Oder für einen zusätzlichen Kernel ... Der os-prober findet nämlich sonst nur den aktiven /vmlinuz.

Und beachte auch viewtopic.php?f=27&t=178719.
Ich hatte früher in der grub.cfg auch device-namen stehen, das wurde aber mit 5.x Kerneln unzuverlässig. Deshalb mußte ich auf UUID's wechseln.

Benutzeravatar
willy4711
Beiträge: 4442
Registriert: 08.09.2018 16:51:16

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von willy4711 » 30.10.2020 14:33:49

AAhh- du hast also auf dem Rechner mit Grub noch os-prober ?
Und der liest die grub.cfg auf den anderen Systemen ?

Benutzeravatar
ingo2
Beiträge: 998
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: Fehlerhafte grub.cfg nach grub update

Beitrag von ingo2 » 30.10.2020 16:48:17

Ja, in beiden Fällen. Ich habe eine kleine 4GB große Partition am Anfang mit einem Minimalsystem. Da ist auch der vollständige Grub installiert und auch ein paar nützliche Tools. Damit kann ich dann problemlos auch jedes andere System (3 an der Zahl) jederzeit komplett sichern, indem ich z.B. dessen Partition mounte und mit Debianrsync komplett sichere. So eine Sicherung kann man dann jederzeit komplett zurückspielen.

Mit ein paar kleinen Anpassungen (fstab, evtl. noch /etc/initramfs-tools/) kann man sogar auf einer anderen Partition restoren/clonen. Habe es auch getestet:
gesichert -> Inhalt der Partition geleert (rm -rf /media/sdax/*) -> gleich das Filesystem getrimmt (fstrim) -> zurückgespielt - geht. Früher, mit device-names ohne UUID's konnte man auch das das ganze Dateisystem erneuern.

Ein perfektes "Defragmentieren" von ext4 ;-)

Nachtrag:
In den minimalen grub.cfg der anderen Systeme kann man natürlich auch Kernelparameter passend für jedes System eintragen. Auch schnell mal einen anderen Kernel dazu eintragen - da reicht sogar ein minimalistischer Block wie:

Code: Alles auswählen

menuentry 'Debian-Buster with Kernel 5.4.0-0.bpo.4-amd64' {
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos2'
	search --no-floppy --fs-uuid --set=root 72515d9b-02c3-4495-a384-568a2a445205
        linux /boot/vmlinuz-5.4.0-0.bpo.4-amd64 root=/dev/sda2
	initrd /boot/initrd.img-5.4.0-0.bpo.4-amd64
}
Ein "update-grub" auf der Servicepartition, und schon steht er im Menu zur Verfügung.

Ach ja,
meine Daten liegen auf einer eigenen Partition/SSD, die ich in allen Systemen unter ~/data mounte. Die meisten Anwendungen sind dann so konfiguriert, dass sie ihr Arbeitsverzeichnis auch dort haben.
Auf die Weise bin ich ungeheuer flexibel, kann schnell mal ein neues System ausprobieren und habe immer Zugriff auf m,eine Daten.

Benutzeravatar
Gerd50
Beiträge: 35
Registriert: 11.01.2011 00:08:58

Re: [gelöst] Fehlerhafte grub.cfg nach grub update

Beitrag von Gerd50 » 30.10.2020 22:00:10

Mit dem Vorschlag von Ingo, minimale grub.cfg in sid /boot/grub/grub.cfg anlegen, funktioniert es.
Drei saubere Einträge nach update-grub.

Vielen Dank an Willy und Ingo für eure Hilfestellung :)
Zuletzt geändert von Gerd50 am 31.10.2020 14:58:56, insgesamt 1-mal geändert.

Benutzeravatar
ingo2
Beiträge: 998
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

Re: [gelöst]Fehlerhafte grub.cfg nach grub update

Beitrag von ingo2 » 31.10.2020 12:21:17

Gern geschehen,
dann markier' doch bitte auch noch den Thread als "gelöst",

Ingo

Benutzeravatar
willy4711
Beiträge: 4442
Registriert: 08.09.2018 16:51:16

Re: [gelöst]Fehlerhafte grub.cfg nach grub update

Beitrag von willy4711 » 31.10.2020 12:41:36

Ingo2's Lösung scheint mit für dein Setup wirklich die bessere Lösung zu sein.
Ich hingegen habe die Systeme auf zwei verschiedenen Platten. Mit jeweils einem Grub.

So kann ich unabhängig davon, ob eine startet oder nicht, immer noch die Andere über das Auswahlmenü
im BIOS (oder halt UEFI) starten.

Antworten