[Eisfair] E1 - Kernel 4.3.0 Upgr / Lilo - Problem?
Thomas Bork
tom at eisfair.org
Fr Jan 10 21:15:15 CET 2020
Am 10.01.2020 um 13:48 schrieb Hilmar Böhm:
> Installiert habe ich eine CD-ROM mit
> "eisfair-2.8.23-3.48.0-SMP-cd-image" (19.12.2019), Linux kernel 3.16.74.
> Habe das Netzwerk aufgesetzt, so dass ich an die Eisfair-Repos komme.
> Das erste eisman update/upgrade läuft problemlos durch inkl. einem
> anschliedenden Reboot. Nach dem reboot meldet sich Kernel 4.2.0, Base
> 2.8.23.
Ok.
> Das lilo.conf sieht dann so aus:
> ---------------------
> lba32
> #boot = /dev/hda
> boot = /dev/disk/by-id/ata-TS64GSSD25-M_20110607433335055105_
> read-only
> prompt
> timeout = 50
> vga = normal
> menu-scheme = wr:bw:wr:Yr
> image = /boot/kernel
> #root = /dev/hda3
> root = "UUID=97432f82-f216-4033-9ba5-dd3d05aaa17b"
> label = eis
> initrd = /boot/initrd.gz
> append = "raid=noautodetect"
> image = /boot/old-kernel
> #root = /dev/hda3
> root = "UUID=97432f82-f216-4033-9ba5-dd3d05aaa17b"
> label = oldeis
> initrd = /boot/old-initrd.gz
> append = "raid=noautodetect"
> image = /boot/kernel-3.16.74-SMP
> #root = /dev/hda3
> root = "UUID=97432f82-f216-4033-9ba5-dd3d05aaa17b"
> label = 3.16.74-SMP
> initrd = /boot/initrd-3.16.74-SMP.gz
> append = "raid=noautodetect"
> ----------------------
>
> Beachte die "boot = " - Zeile.
> "by-id" zeigt folgendes:
> ----------
> lrwxrwxrwx 1 root root 9 Jan 9 22:44
> ata-TS64GSSD25-M_20110607433335055105_ -> ../../sda
> lrwxrwxrwx 1 root root 10 Jan 9 22:44
> ata-TS64GSSD25-M_20110607433335055105_-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Jan 9 22:44
> ata-TS64GSSD25-M_20110607433335055105_-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Jan 9 22:44
> ata-TS64GSSD25-M_20110607433335055105_-part3 -> ../../sda3
> ---------------
Die Regeln zur Erzeugung der Namen der Links auf die Devices stecken in
/lib/udev/rules.d/60-persistent-storage.rules
Da zu dem Zeitpunkt schon der Kernel 4.9.x läuft, zeigen die Links auf
sdaX. Es gibt keinen Treiber mehr für hdaX. Die verwendete Regel ist:
# ATA
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi",
ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $devnode"
Diese Regel wird bei Installation eines Kernels nicht verändert, sie
sollte also immer identische Device-Links erzeugen, gerade bei Kernel
4.9.x mit identischem Treiber. Es ist deswegen nicht so recht
einzusehen, warum /dev/disk/by-id einmal so und einmal so aussehen soll.
> "lsblk" Zeigt die IDE-Disk so an:
> -------------------------
> eis 2.8.23 # lsblk --output MODEL,SERIAL /dev/sda
> MODEL SERIAL
> TS64GSSD25-M 20110607433335055105
> ----------------------------------
>
> Die "by-id"-Kennzeichnung der IDE-Disk besteht also u.a. aus
> <ata-MODEL_SERIAL_>
Bei laufendem Kernel 4.9.x, also mit dem libata-Treiber und obiger Regel.
> Wie man sieht, wurde beim Kernel 4.2.0 Upgrade die "by-id"Kennzeichnung
> der Disk korrekt in die lilo.conf übernommen
Bevor der Kernel 4.9.x installiert wurde, lief der Kernel 3.16.x mit
fest eingebautem IDE-Treiber. Der benutzt eine andere Regel:
# syntax for IDE devices, eisfair special for old kernels
# ATA devices with their own "ata" kernel subsystem
KERNEL=="hd*[!0-9]", ATTRS{serial}=="?*",
ENV{ID_SERIAL}="$attr{serial}",
SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}",
IMPORT{program}="ata_id --export $devnode"
KERNEL=="hd*[0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}",
SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
Wenn diese Regeln für den alten IDE-Treiber im 3.16er Kernel andere
Device-Links erzeugen würden, als die obige Regel für die
libata-basierenden Treiber, dann hätte schon das Update auf den Kernel
4.2.0 nicht mehr geklappt.
Und dort sehe ich auch keinen Unterstrich.
> Jetzt kommt der kernel-Upgrade auf 4.3.0 unstable mit dem Abbruch:
> ------------------------------------------
> eis 2.8.23 # eisman upgrade --unstable
> searching...
>
> The following packages will be installed:
>
> version status name source
> ---------------------------------------------------------------------
> 4.3.0 testing eiskernel-smp https://www.pack-eis.de
>
> package(s) using approx. 10 MB of disk space.
>
> Continue (y/n) [yes]?
> Downloading required packages ...
> Done!
> Installation of: eiskernel-smp (4.3.0) ...
>
>
> Your lilo configuration is broken!
> This is the output from the test with 'lilo -t':
>
> Fatal: raid_setup:
> stat("/dev/disk/by-id/ata-TS64GSSD25-M_20110607433335055105_")
Zu diesem Zeitpunkt kann in /dev/disk/by-id der Unterstrich am Ende
schon nicht mehr existiert haben, denn lilo versucht das Device genau
dort aufzulösen.
> Repair your lilo configuration, cancelling installation.
>
>
> Press ENTER to continue
> error: installation of "eiskernel-smp" aborted by /tmp/preinstall.sh!
> Failed to install: eiskernel-smp (4.3.0)!
> error: installation aborted!
> eis 2.8.23 # exit
> -----------------------------------------------
>
> ==> Lösung: Wenn ich in lilo.conf in der "boot =" Zeile von der
> by-id-Bezeichnung das hintere "_" wegnehme (also ...55105"), läuft ein
> "lilo -t" und das Kernel-Upgrade durch.
Genau.
> Erstaunlich ist auch, das nach dem 430er-Upgrade-Abbruch die wohl
> lilo.conf identisch zur vorherigen ist (also mit dem bewussten "_"),
> aber ein "ls -l /dev/disk/by-id" foldenges zeigt:
> -----------------------------------------
> lrwxrwxrwx 1 root root 9 Jan 9 23:18
> ata-TS64GSSD25-M_20110607433335055105 -> ../../sda
> lrwxrwxrwx 1 root root 10 Jan 9 23:18
> ata-TS64GSSD25-M_20110607433335055105-part1 -> ../../sda1
> lrwxrwxrwx 1 root root 10 Jan 9 23:18
> ata-TS64GSSD25-M_20110607433335055105-part2 -> ../../sda2
> lrwxrwxrwx 1 root root 10 Jan 9 23:18
> ata-TS64GSSD25-M_20110607433335055105-part3 -> ../../sda3
> lrwxrwxrwx 1 root root 9 Jan 9 23:18 ata-_NEC_DVD_RW_ND-7550A ->
> ./../sr0
> -----------------------------------------
>
> Was auffällt ist, dass jetzt das bewusste "_" fehlt.
Die Frage ist, wo der Unterstrich herkommt und warum er einmal bei
laufendem Kernel 4.9.x zu sehen ist und dann wieder nicht mehr. Wurde
udev zwischenzeitlich aktualisiert?
--
der tom
[eisfair-team]
Mehr Informationen über die Mailingliste Eisfair