Hallo Uwe,
Gesendet: Montag, 19. Juni 2017 um 11:45 Uhr Von: "Uwe Kleine-König" uwe@kleine-koenig.org An: "Arno Steffens" epsi@gmx.de Cc: flug@lug-freiburg.de Betreff: Re: [Flug] kernel boot param, mounten ...
On Mon, Jun 19, 2017 at 10:57:57AM +0200, Arno Steffens wrote:
Ja wieder richtig was los auf der Liste ;) Da versuche ich auch eine Frage loszuwerden.
Möchte das rootfilesystem ro mounten. Aber auch wenn ich als bootarg übergebe:
Kernel command line: console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait
passiert folgendes:
[ 1.494744] Waiting for root device /dev/mmcblk0p1... [ 1.506415] mmc0: new high speed MMC card at address 0001 [ 1.512259] mmcblk0: mmc0:0001 Q1J54A 1.82 GiB [ 1.516921] mmcblk0boot0: mmc0:0001 Q1J54A partition 1 2.00 MiB [ 1.533021] mmcblk0boot1: mmc0:0001 Q1J54A partition 2 2.00 MiB [ 1.549074] mmcblk0rpmb: mmc0:0001 Q1J54A partition 3 512 KiB [ 1.556238] mmcblk0: p1 p2 p3 [ 1.602972] EXT4-fs (mmcblk0p1): INFO: recovery required on readonly filesystem [ 1.610198] EXT4-fs (mmcblk0p1): write access will be enabled during recovery [ 1.680390] EXT4-fs (mmcblk0p1): recovery complete [ 1.686907] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null) [ 1.694956] VFS: Mounted root (ext4 filesystem) readonly on device 179:1. .... [ 2.559526] EXT4-fs (mmcblk0p1): re-mounted. Opts: data=ordered
und dann
mount gibt: /dev/root on / type ext4 (rw,relatime,data=ordered) ....
die Zeile in fstab hab ich auskommentiert. #/dev/root / auto defaults 1 1
Daher zwei Fragen: Woher kommt bei 1.6 der Wunsch nach dem Recovery? Ist das normal, kann/soll man das unterdrücken?
Wo kommt das Dateisystem her? Der Kernel-Code sieht so aus:
if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER)) { if (sb->s_flags & MS_RDONLY) { ext4_msg(sb, KERN_INFO, "INFO: recovery " "required on readonly filesystem"); if (really_read_only) { ext4_msg(sb, KERN_ERR, "write access " "unavailable, cannot proceed"); return -EROFS; } ext4_msg(sb, KERN_INFO, "write access will " "be enabled during recovery"); } }
Da steht also was im Superblock, was "bitte repariere mich" bedeutet.
Passiert das bei jedem Boot, oder nur beim ersten?
Da haben mich meine Versuche in die Irre geführt. Tatsächlich war das wohl eher eine Ausnahme, das ein Recovery kommt.
Ist immerhin nur ein emmc mit entsprechend beschränkten Schreibzyklen.
Und woher wird dann bei 2.6 dieser erneute Mount, der dann auch noch rw ist? In /etc/rc5.d/... sehe ich auch nichts das darauf deutet ....
Das ist ohne weitere Details nicht beantwortbar. Was ist denn der Kontext, in dem das passiert? Einen üblichen Verdächtigen kenne ich an der Stelle nicht. Bau' doch mal ein dump_stack an der Stelle im Kernel ein, die diese Meldung ausgibt.
Es bleibt aber dabei, dass einmal gemountet und dann nochmal wird. Der erste Mount wird noch von den Kernel-bootparams gesteuert. Der zweite ist komisch. Das mit den DumpStacks kenne ich noch nicht. Ist das so richtig? - Kernel neu kompilieren mit Kernel debugging, Verbose kernel error messages, und dann an den Sources wo gemounted wird (diese Ausgaben kommen) einen Aufruf dump_stack() rein? Bin nicht ganz so fingerfertig .... ;)
Liebe Grüße Uwe
Danke und Grüße zurück Arno