[solved] Stretch: wird nur noch das root-filesystem gecheckt?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
ingo2
Beiträge: 1124
Registriert: 06.12.2007 18:25:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Wo der gute Riesling wächst

[solved] Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 07.03.2018 18:39:06

Ich habe hier einen Server mit Stretch und 3 Partitionen:

Code: Alles auswählen

/             1
/home/        2
/srv/         3
Die sind in der fstab mit den oben angegebenen Werten für "fs_passno" konfiguriert. Wenn ich jetzt einen Filesystem-Check manuell anstoße mit

Code: Alles auswählen

touch /forcefsck
und reboote, bekomme ich nur einen Check des root-felesystems geloggt:

Code: Alles auswählen

# cat /run/initramfs/fsck.log 
Log of fsck -C -a -T -t ext4 /dev/sda1 
Wed Mar  7 15:57:12 2018

system: clean, 38966/521216 files, 376684/2096896 blocks
aber nicht den Check der anderen beiden Partitionen. Das syslog liefert nur:

Code: Alles auswählen

cat /var/log/syslog | grep -A3 -B2 fsck
Mar  7 16:28:20 apu kernel: [    2.862831] rtc_cmos 00:01: setting system clock to 2018-03-07 15:28:16 UTC (1520436496)
Mar  7 16:28:20 apu kernel: [    2.862959] PM: Hibernation image not present or could not be loaded.
Mar  7 16:28:20 apu systemd-fsck[305]: user: clean, 21/521216 files, 53645/2097152 blocks
Mar  7 16:28:20 apu kernel: [    2.869549] Freeing unused kernel memory: 1416K
Mar  7 16:28:20 apu kernel: [    2.869552] Write protecting the kernel read-only data: 12288k
Mar  7 16:28:20 apu systemd-fsck[306]: share: clean, 1475/2621440 files, 943103/10485760 blocks
Mar  7 16:28:20 apu kernel: [    2.871771] Freeing unused kernel memory: 1940K
Mar  7 16:28:20 apu kernel: [    2.885175] Freeing unused kernel memory: 1228K
--
Mar  7 16:57:15 apu systemd[1]: Starting File System Check on /dev/disk/by-uuid/778df4f7-36f2-47da-87d7-4d974798eaf5...
Mar  7 16:57:15 apu systemd[1]: Starting File System Check on /dev/disk/by-uuid/aed0a2f1-dbd2-4973-88c3-b006449163ed...
Mar  7 16:57:15 apu systemd-fsck[300]: Please pass 'fsck.mode=force' on the kernel command line rather than creating /forcefsck on the root file system.
Mar  7 16:57:15 apu systemd-fsck[303]: Please pass 'fsck.mode=force' on the kernel command line rather than creating /forcefsck on the root file system.
Mar  7 16:57:15 apu systemd[1]: Started File System Check Daemon to report status.
Mar  7 16:57:15 apu systemd-fsck[303]: user: 21/521216 files (0.0% non-contiguous), 53645/2097152 blocks
Mar  7 16:57:15 apu systemd[1]: Started File System Check on /dev/disk/by-uuid/aed0a2f1-dbd2-4973-88c3-b006449163ed.
Mar  7 16:57:15 apu systemd[1]: Mounting /home...
Mar  7 16:57:15 apu systemd[1]: Mounted /home.
Mar  7 16:57:15 apu systemd-fsck[300]: share: 1475/2621440 files (0.4% non-contiguous), 943103/10485760 blocks
Mar  7 16:57:15 apu systemd[1]: Started File System Check on /dev/disk/by-uuid/778df4f7-36f2-47da-87d7-4d974798eaf5.
Mar  7 16:57:15 apu systemd[1]: Mounting /srv...
Nirgendwo kann ich das Ergebnis des Checks (z.B. "clean") finden.

Unter Jessie war das noch einfach, da stand das alles im Verzeichnis /var/log/fsck/ in 2 Files.

Soll ich da jetzt wirklich nur für einen fsck extra temporär mit einem Kernel-Parameter booten - das kanns doch nicht sein?
(und widerspricht auch allen man-pages zu mount, fstab, )

EDIT:
den Kernel mit einer Option zu booten ist ja furchtbar umständlich, entweder
a) Serielle Konsole anschließen, im GRUB-Menu dann "edit" ...
b) das ganze temporär in die grub.cfg schreiben, update-grub und nacher wieder retour ???

Gruß,
Ingo
Zuletzt geändert von ingo2 am 09.03.2018 17:27:49, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von DeletedUserReAsG » 07.03.2018 19:15:58

ingo2 hat geschrieben: ↑ zum Beitrag ↑
07.03.2018 18:39:06
[…] aber nicht den Check der anderen beiden Partitionen.
Möglicherweise solltest du die Datei auf jedem FS erstellen, das du geprüft haben möchtest?

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

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 07.03.2018 20:23:31

@ niemand

Das bringt leider nichts. Auch werden die "forcefsck" nur auf der root-Partition gelöscht, auf den anderen beiden nicht.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von rendegast » 08.03.2018 03:55:11

In der legacy.conf von Debiansystemd:
# /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the
# kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and
# 'quotacheck.mode=force'

r! /forcefsck
r! /fastboot
r! /forcequotacheck
/forcefsck resp. "forcefsck" in der cmdline wird in init.d/checkfs.sh / init.d/checkroot.sh benutzt,
diese sind unter systemd maskiert.

Eine Datei "forcefsck" im root-Verzeichnis einer Partition ist irrelevant.
Nur eine /forcefsck, also im root-Verzeichnis der root-Partition, ist (unter sysv) von Belang.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

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

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 08.03.2018 15:34:57

So, habe jetzt mal mit dem Kernel-Parameter

Code: Alles auswählen

fsck.mode=force
gebootet.
Der einzige Unterschied ist, dass damit die Warnung wegen "depreciated forcefsck" verschwindet. bem Booten wird jetzt ebenfalls nur das root-filesystem gecheckt - allerdings mit schöner Fortschrittsanzeige wie früher. Der Parameter wirkt also nur auf den Check innerhalb der initramfs und nicht auf später zu mountende Filesysteme.
Die anderen Partitionen/Dateisysteme werden meines Erachtens überhaupt nicht geprüft, wie man auch an den Timestamps im syslog sieht:
16:57:15 apu systemd[1]: Started File System Check on /dev/disk/by-uuid/aed0a2f1-dbd2-4973-88c3-b006449163ed.
16:57:15 apu systemd[1]: Mounting /home...
16:57:15 apu systemd[1]: Mounted /home.
So ein 'fsck -f' und mount ist niemals in weniger als 1 Sekunde erledigt, schon garnicht bei größeren Partitionen.

Wie kann man also aktuell die anderen Filesysteme überhaupt checken?
Erwartet man etwa, dass ich jede der Partitionen einzeln umounte, checke und wieder mounte???

DeletedUserReAsG

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von DeletedUserReAsG » 08.03.2018 16:12:53

Normalerweise kannst du auch fsck drauf loslassen, wenn die betreffende Partition readonly gemountet ist. Nur, falls wirklich Sachen zu fixen sind, ist’s wohl besser, sie für die Zeit auszuhängen.

Benutzeravatar
detix
Beiträge: 1699
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von detix » 08.03.2018 17:07:43

Wie wärs mit tune2fs anstatt touch?
Einfach den „Mount count:” höher setzen als den „Maximum mount count:”

Code: Alles auswählen

tune2fs -l /dev/sda1 # oder so ähnlich gibt Auskunft
Mount count:              3
Maximum mount count:      40
tune2fs -C 41 /dev/sda1 # sollte einen fsck bei fs_passno 1, 2 oder 3 ausführen
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

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

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 08.03.2018 18:11:51

Tja, auf allen Stretch-Partitionen ist

Code: Alles auswählen

Maximum mount count:      -1
gesetzt.

Die mam page von tune2fs sagt dazu:

Code: Alles auswählen

OPTIONS
       -c max-mount-counts
              Adjust the number of mounts after which the filesystem  will  be
              checked  by e2fsck(8).  If max-mount-counts is 0 or -1, the num‐
              ber of times the filesystem is mounted will  be  disregarded  by
              e2fsck(8) and the kernel.
Danach wird also nie gecheckt ???
Und dein Vorschlag funktioniert dann ja auch nicht.

Und auch die Zeitsteuerung ist wohl lahmbelegt:

Code: Alles auswählen

Check interval:           0 (<none>)
Die man page sagt:

Code: Alles auswählen

      -i  interval-between-checks[d|m|w]
              Adjust  the maximal time between two filesystem checks.  No suf‐
              fix or d will interpret the  number  interval-between-checks  as
              days, m as months, and w as weeks.  A value of zero will disable
              the time-dependent checking.
Nach meinem Test mit fsck.mode=force (s. vorheriger Post) waren die mount counts bei beiden Partitionen auf 1. Jetzt habe ich nochmal rebootet und sie sind auf 2. Ist ja soweit korrekt, bloß ich glaube einfach nicht, dass meine Datenpartition von 1TB in weniger als 1 Sekunde gecheckt wurde.

Da muß es doch irgendeine Dokumentation zu geben, wie Debian die fs-checks jetzt unter Stretch löst/konfiguriert. Selbst das Arch-Wiki https://wiki.archlinux.org/index.php/fsck giobt da nicht viel her.

Benutzeravatar
detix
Beiträge: 1699
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von detix » 08.03.2018 19:56:13

Stimmt, ist die fs_passno 0 oder -1 wird niemals geprüft und dementsprechend musst du dich selbst drum kümmern.
Standard ist mbMn der Wert 30 bei „Maximum mount count:”
Warum ist das bei dir anders und steht auf -1?
Ein neusetzen des Wertes ist allerdings recht einfach mit zB:
# tune2fs -c 30 /dev/sda1
dann sollte es funktionieren, 30 mounts sollte auch eine ältliche Platte ungestraft aushalten können.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

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

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 08.03.2018 20:10:03

Könnte dies der Fehler/Bug sein?

Das ganze ist ja seit systemd offenbar völlig anders.

Wenn ich mir das Log vom root-fsck in /run/initramfs/fsck.log anschaue, dann steht da:

Code: Alles auswählen

Log of fsck -C -a -T -t ext4 /dev/sda2
Habe mal die Optionen in der man-page von fsck nachgeschaut:
die Option "-a" gibt es dort garnicht, aber die Option "-A", und die besagt:
-A
Walk through the /etc/fstab file and try to check all filesystems in one run. This option is typically used from the /etc/rc system initialization file, instead of multiple commands for checking a single filesystem.

The root filesystem will be checked first unless the -P option is specified (see below). After that, filesystems will be checked in the order specified by the fs_passno (the sixth) field in the /etc/fstab file. Filesystems with a fs_passno value of 0 are skipped and are not checked at all. Filesystems with a fs_passno value of greater than zero will be checked in order, with filesystems with the lowest fs_passno number being checked first. If there are multiple filesystems with the same pass number, fsck will attempt to check them in parallel, although it will avoid running multiple filesystem checks on the same physical disk.
Dann müßte man nur noch wissen, wo diese Option konfiguriert ist und "-a" -> "-A" ändern?
Kann da Jemand helfen?

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

Re: Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 09.03.2018 17:27:22

detix hat geschrieben: ↑ zum Beitrag ↑
08.03.2018 19:56:13
Stimmt, ist die fs_passno 0 oder -1 wird niemals geprüft und dementsprechend musst du dich selbst drum kümmern.
Standard ist mbMn der Wert 30 bei „Maximum mount count:”
Warum ist das bei dir anders und steht auf -1?
So, habe das jetzt nach deimem Vorschlag gelöst und auf allen Filesystemen „Maximum mount count” manuell gesetzt:
Server -> alle Partitionen auf "1"
(der wird so selten rebootet, da spielt es keine Rolle wenn der Bootprozess ein paar Sekunden länger dauert)
Desktop -> 20

Und das funktioniert jetzt zuverläsig und die Checks werden auch im syslog aufgeführt. Beispiel:

Code: Alles auswählen

Mar  9 13:03:29 apu systemd[1]: Starting File System Check on /dev/disk/by-uuid/778df4f7-36f2-47da-87d7-4d974798eaf5...
Mar  9 13:03:29 apu systemd-fsck[302]: user has been mounted 1 times without being checked, check forced.
Mar  9 13:03:29 apu systemd-fsck[307]: share has been mounted 1 times without being checked, check forced.
Mar  9 13:03:29 apu systemd-fsck[302]: user: 21/521216 files (0.0% non-contiguous), 53645/2097152 blocks
Mar  9 13:03:29 apu systemd[1]: Started File System Check on /dev/disk/by-uuid/aed0a2f1-dbd2-4973-88c3-b006449163ed.
Mar  9 13:03:29 apu systemd[1]: Mounting /home...
Mar  9 13:03:29 apu systemd[1]: Mounted /home.
Mar  9 13:03:29 apu systemd-fsck[307]: share: 1475/2621440 files (0.4% non-contiguous), 943103/10485760 blocks
Mar  9 13:03:29 apu systemd[1]: Started File System Check on /dev/disk/by-uuid/778df4f7-36f2-47da-87d7-4d974798eaf5.
Mar  9 13:03:29 apu systemd[1]: Mounting /srv...
Mar  9 13:03:29 apu systemd[1]: Mounted /srv. 
Verstehe absolut nicht, wie Debian bei einer Neuinstallation die Werte für Maximum mount count alle auf "-1" setzt. Selbst wenn jetzt "systemd-fsck@.service" alle Partitionen irgendwie prüfen sollte, ohne Logging und/oder Dokumentation ist das ziemlich sinnfrei.

Ich setze das jetzt mal auf "solved", auch wenn es in meinem Augen ein Konfigurations-Fehler in Debian ist, der berichtigt werden sollte.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [solved] Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von rendegast » 09.03.2018 22:20:32

mke2fs.conf 'enable_periodic_fsck = 0' -> e2fsprogs/RELEASE-NOTES -> Debian Bugreport632637
Ab 1.42 ~ 2011 wird wohl davon ausgegangen, daß ext3/4 keine Checks mehr braucht.
Beim journaled ext3/4 wird auch nie ein dirty-bit gesetzt.
Zuletzt geändert von rendegast am 10.03.2018 08:26:26, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

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

Re: [solved] Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von ingo2 » 09.03.2018 23:07:47

rendegast hat geschrieben: ↑ zum Beitrag ↑
09.03.2018 22:20:32
mke2fs.conf 'enable_periodic_fsck = 0' -> e2fsprogs/RELEASE-NOTES -> Debian632637
Korrigier doch bitte den Link, sollte eine Bug-Nr. sein: https://bugs.debian.org/cgi-bin/bugrepo ... ug=632637
Na, ja eine sonderbare Entscheidung, nur weil es offenbar einen Bug/Probleme gibt mit dem Setzen von "Maximum Mount Count =0", welches dann nach dem ersten Mount den Wert auf "20" setzt.
Jetzt als Würgeround "-1" zu setzen und damit das ganz abschalten - ich versteh's nicht.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [solved] Stretch: wird nur noch das root-filesystem gecheckt?

Beitrag von rendegast » 10.03.2018 08:32:36

0 oder -1 ist da erstmal nur ein technisches Problem in der Umsetzung, darum ging es mir nicht.
Sollte zeigen / ein Beleg sein, daß schon zu der Zeit die periodic-Checks für ext3/4 deaktiviert wurden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten