Anzahl der "mounts" auslesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gunknown
Beiträge: 17
Registriert: 25.05.2006 20:28:11

Anzahl der "mounts" auslesen

Beitrag von gunknown » 06.07.2008 17:19:19

Hi,

bei ubuntu kommt beim booten alle 30 mal die Meldung "/dev/... has been mounted 30 times without being checked. Check forced."

Um einen workaround für einen bug zu erstellen würde ich gerne selbst in einem (shell) script die anzahl der "mounts" einlesen. Wo bekomme ich die her bzw. wie kann ich das machen?

Habe schon die manpage von tune2fs durchgeblättert, aber leider nichts brauchbares gefunden.

pluvo

Re: Anzahl der "mounts" auslesen

Beitrag von pluvo » 06.07.2008 17:30:00

gunknown hat geschrieben:Um einen workaround für einen bug zu erstellen würde ich gerne selbst in einem (shell) script die anzahl der "mounts" einlesen.
Wie meinst du das? Das Überprüfen vom Dateisystem ist kein Bug. It's not a bug, it's a feature :mrgreen:

Code: Alles auswählen

tune2fs -l /dev/sda1 | grep "Mount count"
Device musst du noch anpassen (sda1).

mfg pluvo :)

gunknown
Beiträge: 17
Registriert: 25.05.2006 20:28:11

Re: Anzahl der "mounts" auslesen

Beitrag von gunknown » 06.07.2008 18:35:10

Es geht um diesen bug, für den es scheinbar keine lösung gibt.
Dabei hängt sich fsck bei einem automatischen check nach 30 bootvorgängen auf. Erst ein erfolgreiches (manuelles) ausführen von fsck auf das device ermöglicht es das os wieder zu starten.

Mein idee war einfach nach dem 29. mal booten fsck manuell auszuführen. Jetzt habe ich allerdings bemerkt, dass man fsck nicht auf eingehängte partitionen anwenden kann bzw. sollte.

Somit bleibt also weiterhin nur die möglichkeit jedes 30. mal von einer live cd zu booten :(

Danke trotzdem für die schnelle hilfe.
Zuletzt geändert von gunknown am 06.07.2008 18:40:32, insgesamt 1-mal geändert.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Anzahl der "mounts" auslesen

Beitrag von lemak » 06.07.2008 18:39:26

Das kann man in der /etc/fstab/ doch auch abstellen. Oder nicht :?:
Ist das sechste Feld nicht vorhanden oder Null, wird Null verwendet und fsck geht davon aus, dass das Dateisystem keiner Prüfung bedarf.
Zuletzt geändert von lemak am 06.07.2008 18:51:31, insgesamt 1-mal geändert.

gunknown
Beiträge: 17
Registriert: 25.05.2006 20:28:11

Re: Anzahl der "mounts" auslesen

Beitrag von gunknown » 06.07.2008 18:42:13

i hat geschrieben:Das kann man in der /etc/fstab/ doch auch abstellen. Oder nicht :?:
Die Frage ist aber wie empfehlenswert es ist auf fsck vollständig zu verzichten.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Anzahl der "mounts" auslesen

Beitrag von lemak » 06.07.2008 18:49:26

Aso du willst es bei jedem 29. Start selbst prüfen...
Linux prüft beim booten ob die Datei /forcefsck exisiert. Ist dies der Fall startet es die Fesplattenüberprüfung.
Das sollte doch weiterhelfen :)

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Anzahl der "mounts" auslesen

Beitrag von habakug » 06.07.2008 20:27:33

Hallo!

Versuch es mal so:

Code: Alles auswählen

 tune2fs -l /dev/sda1 | grep "Mount count:" | awk ' { print $3 } '
tune2fs -l /dev/sda1 | grep "Maximum mount count:" | awk ' { print $4 } '
Die Partition musst du anpassen. tune2fs hat auch einen Parameter (-i interval-between-checks[d|m|w]) der einen zeitbasierten Dateisystemcheck erlaubt.

Gruß, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

gunknown
Beiträge: 17
Registriert: 25.05.2006 20:28:11

Re: Anzahl der "mounts" auslesen

Beitrag von gunknown » 06.07.2008 20:56:09

Hi,

danke für eure hinweise, allerdings helfen diese, aufgrund eines denkfehlers meinerseits, nicht für einen workaround.
Ich sehe keine möglichkeit im laufenden betrieb fsck auf die root partition auszuführen.
Dank der Ausgabe von tune2fs weiß ich nun zwar wann der bug auftritt, umgehen kann ich ihn deshalb aber leider nicht.

Wie gesagt, ich wusste nicht, dass ich fsck auf eingehängte partitionen nicht ausführen kann. Das macht meine idee für den workaround leider zunichte.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Anzahl der "mounts" auslesen

Beitrag von lemak » 06.07.2008 20:56:57

Schöne Sache mit AWK. So könnte ein Script aussehen wenn es mit dem -i argument von tune2fs nicht klappt...

Code: Alles auswählen

#!/bin/bash

STAT=`tune2fs -l /dev/sda1 | grep "Mount count:" | awk '{print $3}'`
DEF="28"

if [ $STAT == $DEF ]
then
	touch /forcefsck
else
	if [ -f /forcefsck ]
	then
		rm /forcefsck
	fi
fi
Zuletzt geändert von lemak am 07.07.2008 15:14:39, insgesamt 1-mal geändert.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Anzahl der "mounts" auslesen

Beitrag von lemak » 06.07.2008 21:12:00

gunknown hat geschrieben:aufgrund eines denkfehlers meinerseits
Funktioniert der Dateisystem-Check beim booten den überhaupt nicht?

Versuche doch mal

Code: Alles auswählen

shutdown -hF now
plus Neustart. Wenn das klappt könnte es ja mit dem Script oder tune2fs -i funktionieren, das es nie zum 30. mal ohne fsck kommt.

EDIT: es muss natürlich shutdown -hF now heissen
Zuletzt geändert von lemak am 06.07.2008 21:25:59, insgesamt 1-mal geändert.

gunknown
Beiträge: 17
Registriert: 25.05.2006 20:28:11

Re: Anzahl der "mounts" auslesen

Beitrag von gunknown » 06.07.2008 21:23:15

Nein, der automatische fsck beim booten funktioniert garnicht. Das programm scheint sich dabei einfach aufzuhängen.
Der fehler liegt auch nicht darin, dass er beim 30. bootvorgang auftritt, sondern vielmehr daran, dass das automatische fsck einfach nicht funktioniert. Nur ein manuell ausgeführtes fsck von einer live cd funktioniert vollständig und ermöglicht dadurch wieder ein einwandfreies booten.

Dem obigen link zufolge liegt der bug tief im kernel verborgen. Aber das gehört hier ja eigentlich nicht hin ...

Antworten