Rechner hängt gelegentlich beim Booten

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 06.01.2009 19:03:49

Dies ist eine Fortsetzung/Verlegung dieses Strangs aus dem Netzwerk-Unterforum, weil es jetzt nur noch um die Frage geht, warum der Rechner beim Booten gelegentlich hängt.

Vorgeschichte: Ich habe in einer frischen Debian lenny-Installation an die Datei "/etc/dhcp3/dhclient.conf" die Zeile

Code: Alles auswählen

prepend domain-name-servers 156.154.70.1,156.154.71.1;
angehängt. Im anderen Strang habe ich gelernt, daß ich das Ziel, das ich damit erreichen will, auch auf andere Weise erreichen kann. Mich interessiert aber immer noch, wie es zu diesem gelegentlichen Hängen während des Bootens kommt und ob sich ein Bug dahinter verbirgt, den ich melden sollte.

Bisher trat das Hängen während des Bootens gelegentlich, also längst nicht immer, auf, nachdem die Zeilen

Code: Alles auswählen

Cleaning up ifupdown...
Loading kernel modules...
ausgegeben wurden. Danach geschah nichts mehr, auch die NumLock-Taste zeigte keinerlei Reaktion. Den Reboot-Vorgang löste ich dann durch Drücken des Hard-Reset-Knopfes am Computer aus.

Seit ein paar Tagen führe ich über die Boot- und Shutdownvorgänge an meinem Rechner Buch, mit Zeitangaben, damit ich eventuell in den Dateien im Verzeichnis "/var/log/" irgendeinen Hinweis finden kann. Seit Beginn dieser Buchführung gab es zunächst 8 erfolgreiche Bootvorgänge hintereinander und dann zwei gescheiterte Bootvorgänge direkt hintereinander, die wie oben beschrieben abliefen. Dann wieder ein erfolgreicher Bootvorgang und in dieser Sitzung habe ich in der Datei "/etc/default/rcS" VERBOSE=yes gesetzt. Dann habe ich rebootet und dieses Mal geschah etwas Neues: Der Rechner hing bereits nach Ausgabe von

Code: Alles auswählen

Cleaning up ifupdown...
und kam gar nicht mehr zur Ausgabe von "Loading kernel modules...". Dann habe ich wieder rebootet und diesmal funktionierte der Bootvorgang. Leider rauschten die Ausgaben so schnell vorbei, daß ich nicht mehr sehen konnte, ob durch das Setzen des VERBOSE-Flags irgendwelche neuen, aufschlußreichen Ausgaben hinzu kamen. Kann man diese Ausgaben nachträglich noch irgendwo einsehen?

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 07.01.2009 06:06:27

In den /var/log/boot*
Die Meldungen davor mit 'dmesg'
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 07.01.2009 11:18:07

Ich habe heute morgen (erfolgreicher Bootvorgang) noch einmal versucht, in den vorbeirauschenden Zeilen etwas zu erkennen. Da stand hinter der Zeile "Loading kernel modules..." nur etwas davon, daß das Modul "loop" eingebunden würde. Weitere Module waren da nicht aufgeführt. Ich kann nicht genau sagen, ob die Zeile, in der "Loading kernel modules" stand, vielleicht noch mehr enthielt. Vielleicht gelingt es mir beim nächsten Mal, die Zeile genau zu erkennen.

In /var/log/ habe ich nur eine einzige Datei "boot", keine weiteren, die mit "boot" anfangen. Und diese Datei "boot" enthält nur die Zeile "(Nothing has been logged yet.)"

Mit "dmesg" erhalte ich nicht genau die Ausgaben, die beim Bootvorgang auf dem Bildschirm zu sehen waren, aber es steht auch etwas davon, daß das Modul "loop" geladen wurde. Ich poste mal einen Ausschnitt der Ausgabe von "dmesg":

Code: Alles auswählen

...
[   10.354675] input: PC Speaker as /class/input/input3
[   10.764612] ACPI: PCI Interrupt Link [LAZA] enabled at IRQ 23
[   10.764664] ACPI: PCI Interrupt 0000:00:05.0[B] -> Link [LAZA] -> GSI 23 (level, low) -> IRQ 23
[   10.764789] PCI: Setting latency timer of device 0000:00:05.0 to 64
[   10.798804] hda_codec: Unknown model for ALC883, trying auto-probe from BIOS...
[   10.827673] input: PS/2 Generic Mouse as /class/input/input4
[   10.854922] parport_pc 00:06: reported by Plug and Play ACPI
[   10.855025] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
[   11.751540] Adding 3943948k swap on /dev/sda4.  Priority:-1 extents:1 across:3943948k
[   12.056879] EXT3 FS on sdb6, internal journal
[   12.646283] loop: module loaded
[   13.358401] kjournald starting.  Commit interval 5 seconds
[   13.358401] EXT3 FS on sdb3, internal journal
[   13.358401] EXT3-fs: mounted filesystem with ordered data mode.
[   17.651555] powernow-k8: Found 1 AMD Sempron(tm) Processor 3200+ processors (1 cpu cores) (version 2.20.00)
[   17.651555] powernow-k8:    0 : fid 0xa (1800 MHz), vid 0xc
[   17.651555] powernow-k8:    1 : fid 0x2 (1000 MHz), vid 0x12
[   18.512008] lp0: using parport0 (interrupt-driven).
[   18.553716] ppdev: user-space parallel port driver
[   18.969587] NET: Registered protocol family 10
[   18.970173] lo: Disabled Privacy Extensions
[   19.748042] Clocksource tsc unstable (delta = -112004050 ns)
[   22.273288] vboxdrv: Trying to deactivate the NMI watchdog permanently...
[   22.273288] vboxdrv: Successfully done.
[   22.273288] vboxdrv: Found 1 processor cores.
[   22.273288] vboxdrv: TSC mode is 'synchronous', kernel timer mode is 'normal'.
[   22.276090] vboxdrv: Successfully loaded version 2.1.0 (interface 0x000a0008).
[   22.724442] warning: `avahi-daemon' uses 32-bit capabilities (legacy support in use)
[   41.472036] eth0: no IPv6 routers present
[   42.032910] NET: Registered protocol family 4
[   42.267259] NET: Registered protocol family 3
[   42.420445] NET: Registered protocol family 5
...

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 07.01.2009 16:36:03

meikart76 hat geschrieben:Und diese Datei "boot" enthält nur die Zeile "(Nothing has been logged yet.)"
Tschuldigung, muß erst eingeschaltet werden:
/etc/default/bootlogd :

Code: Alles auswählen

# Run bootlogd at startup ?
#BOOTLOGD_ENABLE=No
BOOTLOGD_ENABLE=YES
BOOTLOGD_ENABLE wird hier abgefragt, /etc/init.d/bootlogd :

Code: Alles auswählen

...
case "$BOOTLOGD_ENABLE" in
  [Nn]*)
	exit 0
	;;
esac
...
Dann werden die vorbeirauschenden Meldungen aufgezeichnet.

Alternativ können in solchen Startskripten beliebige "Marker" untergebracht werden, zBsp

Code: Alles auswählen

echo Marker $Irgendeine_Variable

echo "Zustand erreicht" >> LOG-Datei
um erweiterte Ausgaben zum Systemzustand oder zum Fortschreiten einer Schleife anzuzeigen.
Oder "Stopper" wie sowas:

Code: Alles auswählen

echo "10s Halt"; sleep 10
um zBsp Meldungen direkt lesen zu können.

Zu Beachten ist hier, daß dies ja die Skripte verändert,
was bei Updates der entsprechenden Pakete dazu führen kann, daß das Skript nicht ausgetauscht wird, wenn das Paketsystem solche manuellen Änderungen präferiert.
In solchen Fällen wird allgemein eine Kopie der Datei angelegt: *.dpkg-new, *.dpkg-old
Nach meinen Erfahrungen ändern sich jedoch init-Skripte fast nie, sodaß das Risiko eines "Ostereis" gering ist.


'dmesg' gibt die Kernel-Meldungen wieder.
Beim Booten sind das zBsp die Meldungen über erkannte Hardware,
Ab Starten des Init-Systems, also ab dem Script /etc/rcS.d/S01glibc.sh, kommen jedoch Nicht-Kernel-Meldungen dazu,
also zBsp. echo-Ausgaben der Skripte oder der Dienste.
Dann kommt ein Log-Dämon zum Zug, in diesem Fall der bootlogd.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von habakug » 07.01.2009 17:12:52

Hallo!
[ 22.724442] warning: `avahi-daemon' uses 32-bit capabilities (legacy support in use)
[ 41.472036] eth0: no IPv6 routers present
In erster Linie nimmt sich der "avahi-daemon" hier 20 Sekunden Zeit. Wenn du ihn nicht brauchst, einfach deinstallieren oder den Dienst ausschalten (mDNS).

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

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 07.01.2009 19:59:38

Bootlogd habe ich jetzt eingeschaltet. Eben habe ich gebootet und da blieb er wieder hängen. Diesmal kam er nicht einmal so weit, noch "Cleaning up ifupdown..." ausgeben zu können. Ich habe mir die letzten Zeilen vom Bildschirm abgeschrieben:

Code: Alles auswählen

Setting boot logger: bootlogd.
Setting parameters of disc: (none).
Setting the system clock.
System Clock set to: Wed Jan  7 19:32:17 CET 2009.
Activating swap:swapon on /dev/sda4
[11.828723] Adding 3943948k swap on /dev/sda4. Priority:-1 extents:-1 across:
2942948k
.
Will now check root file system:fsck 1.41.3 (12-Oct-2008)
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a -C0 /dev/sdb6
Debian5.0-271220: clean, 205319/915712 files, 1240418/3662812 blocks
.
[12.1368880] EXT3 FS on sdb6, internal journal
Setting the system clock.
System Clock set to: Wed Jan  7 19:32:18 CET 2009.
Dann hing er. Nach dem harten Reset habe ich erneut gebootet und diesmal erfolgreich. In "/var/log/boot" finde ich leider nur den Log von diesem erfolgreichen Bootvorgang und der sieht so aus:

Code: Alles auswählen

Wed Jan  7 19:37:43 2009: .
Wed Jan  7 19:37:43 2009: Setting parameters of disc: (none).
Wed Jan  7 19:37:43 2009: Setting the system clock.
Wed Jan  7 19:37:43 2009: System Clock set to: Wed Jan  7 19:37:43 CET 2009.
Wed Jan  7 19:37:43 2009: Activating swap:swapon on /dev/sda4
Wed Jan  7 19:37:43 2009: .
Wed Jan  7 19:37:43 2009: Will now check root file system:fsck 1.41.3 (12-Oct-2008)
Wed Jan  7 19:37:43 2009: [/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a -C0 /dev/sdb6
Wed Jan  7 19:37:43 2009: Debian5.0-271220: Superblock last write time is in the future.  FIXED.
Wed Jan  7 19:37:43 2009: Debian5.0-271220: clean, 205319/915712 files, 1340418/3662812 blocks
Wed Jan  7 19:37:43 2009: .
Wed Jan  7 19:37:43 2009: Setting the system clock.
Wed Jan  7 19:37:43 2009: System Clock set to: Wed Jan  7 19:37:44 CET 2009.
Wed Jan  7 19:37:44 2009: Cleaning up ifupdown....
Wed Jan  7 19:37:44 2009: Loading kernel module loop.
Wed Jan  7 19:37:44 2009: Will now check all file systems.
Wed Jan  7 19:37:44 2009: fsck 1.41.3 (12-Oct-2008)
Wed Jan  7 19:37:44 2009: Checking all file systems.
Wed Jan  7 19:37:44 2009: [/sbin/fsck.ext3 (1) -- /media/Dateien] fsck.ext3 -a -C0 /dev/sdb3
Wed Jan  7 19:37:44 2009: Dateien: clean, 30333/61046784 files, 98525508/122069902 blocks
Wed Jan  7 19:37:44 2009: Done checking file systems. A log is being saved in /var/log/fsck/checkfs if that location is writable..
Wed Jan  7 19:37:44 2009: Setting kernel variables (/etc/sysctl.conf)...done.
Wed Jan  7 19:37:44 2009: Will now mount local filesystems:.
Wed Jan  7 19:37:44 2009: Will now activate swapfile swap:done.
Wed Jan  7 19:37:45 2009: Cleaning /tmp...done.
Wed Jan  7 19:37:45 2009: Cleaning /var/run...done.
Wed Jan  7 19:37:45 2009: Cleaning /var/lock...done.
Wed Jan  7 19:37:45 2009: Checking minimum space in /tmp...done.
Wed Jan  7 19:37:45 2009: Setting up resolvconf...done.
Wed Jan  7 19:37:45 2009: Setting up networking....
Wed Jan  7 19:37:45 2009: Configuring network interfaces...done.
Wed Jan  7 19:37:45 2009: Starting portmap daemon....
Wed Jan  7 19:37:45 2009: Starting NFS common utilities: statd.
Wed Jan  7 19:37:47 2009: Setting sensors limits.
Wed Jan  7 19:37:47 2009: Setting console screen modes and fonts.
Wed Jan  7 19:37:47 2009: ^[]RSetting up general console font...Setting up per-VC fonts...done.
Wed Jan  7 19:37:48 2009: ^[[9;30]^[[14;30]Setting up ALSA...done.
Wed Jan  7 19:37:48 2009: Initializing random number generator...done.
Wed Jan  7 19:37:48 2009: Setting up X server socket directory /tmp/.X11-unix....
Wed Jan  7 19:37:48 2009: Setting up ICE socket directory /tmp/.ICE-unix....
Wed Jan  7 19:37:49 2009: INIT: Entering runlevel: 2
Wed Jan  7 19:37:49 2009: Loading cpufreq kernel modules...done (powernow-k8).
Wed Jan  7 19:37:49 2009: Starting enhanced syslogd: rsyslogd.
Wed Jan  7 19:37:49 2009: Starting ACPI services....
Wed Jan  7 19:37:49 2009: Starting system message bus: dbus.
Wed Jan  7 19:37:49 2009: Starting virtual private network daemon:.
Wed Jan  7 19:37:49 2009: CPUFreq Utilities: Setting ondemand CPUFreq governor...CPU0...done.
Wed Jan  7 19:37:50 2009: Starting auto nice daemon: and.
Wed Jan  7 19:37:50 2009: Starting Common Unix Printing System: cupsd.
Wed Jan  7 19:37:50 2009: Starting DirMngr: dirmngr.
Wed Jan  7 19:37:51 2009: Starting MTA: exim4.
Wed Jan  7 19:37:52 2009: Not starting fancontrol; run pwmconfig first. ^[[33m(warning).^[[39;49m
Wed Jan  7 19:37:52 2009: Not starting estmaster - edit /etc/default/hyperestraier and change NO_START to be 0.
Wed Jan  7 19:37:52 2009: Starting kerneloops:
Wed Jan  7 19:37:52 2009: Starting LAN Information Server: lisa.
Wed Jan  7 19:37:52 2009: Starting NFS common utilities: statd.
Wed Jan  7 19:37:53 2009: Starting internet superserver: inetd.
Wed Jan  7 19:37:53 2009: Starting VirtualBox kernel module:done..
Wed Jan  7 19:37:55 2009: Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon.
Wed Jan  7 19:37:55 2009: Starting DHCP D-Bus daemon: dhcdbd.
Wed Jan  7 19:37:55 2009: Starting Hardware abstraction layer: hald.
Wed Jan  7 19:37:57 2009: Starting network connection manager: NetworkManager.
Wed Jan  7 19:37:57 2009: Starting network events dispatcher: NetworkManagerDispatcher.
Wed Jan  7 19:37:58 2009: Starting GNOME Display Manager: gdm.
Wed Jan  7 19:37:58 2009: Starting System Tools Backends: system-tools-backends.
Wed Jan  7 19:37:58 2009: Starting anac(h)ronistic cron: anacron.
Wed Jan  7 19:37:58 2009: Starting deferred execution scheduler: atd.
Wed Jan  7 19:37:59 2009: Starting periodic command scheduler: crond.
Wed Jan  7 19:37:59 2009: Not starting K Display Manager (kdm); it is not the default display manager.
Wed Jan  7 19:37:59 2009: Running local boot scripts (/etc/rc.local).
Wed Jan  7 19:37:59 2009:

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 07.01.2009 22:10:44

melkart76 hat geschrieben:Diesmal kam er nicht einmal so weit, noch "Cleaning up ifupdown..."
/ = /dev/sdb6, /media/Dateien = /dev/sdb3, swap = /dev/sda4
Die anderen Systeme haben keine Probleme?

Mir fallen da nur sporadische Hardwarefehler ein.

Haben Deine Festplattenkabel / Stromkabel keine Wackelkontakte? und sind fest aufgesteckt?

Wenn es ein Speicherfehler wäre, würde wohl ein kernel-oops gemeldet, und der Fehler würde häufiger auftreten,
dennoch, memtest86+ läuft fehlerfrei durch?

möglicherweise Überhitzung?
CPU-Lüfter, Chipsatz-Lüfter, laufen? Rechner ist nicht mit Staub zugesetzt?

Netzteil ist nicht unterdimensioniert?
(Beim Zugriff auf viele devices fällt möglicherweise der Strom zum Betrieb der Festplatte soweit, daß sie aussetzt)

/etc/rcS.d/ :

Code: Alles auswählen

...
S10checkroot.sh
S11hwclock.sh
S12mtab.sh
S18ifupdown-clean
S20module-init-tools
S30checkfs.sh
...
ifupdown-clean ist nur ein Schreibvorgang:

Code: Alles auswählen

    if [ -f $IFSTATE -a ! -L $IFSTATE ]; then
      rm -f "$IFSTATE"
    elif [ -f $IFSTATE ]; then
      # This is kinda bad :(
      >$IFSTATE
    fi
Die Dateisysteme sind zwar "clean", aber führe doch mal eine Reboot mit Dateisystemprüfung aus.

Code: Alles auswählen

shutdown -r -F now

# Gibt SMART etwas aus?
smartctl -s on -S on -o on [-d ata] /dev/sdb
smartctl -a [-d ata] /dev/sdb
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 07.01.2009 23:38:38

rendegast hat geschrieben: / = /dev/sdb6, /media/Dateien = /dev/sdb3, swap = /dev/sda4
Die anderen Systeme haben keine Probleme?
Ich habe im letzten Monat einige verschiedene Distributionen ausprobiert, jeweils auf verschiedenen Partition, davon einige auch viele Male gebootet. Und zuvor hatte ich lange Zeit mit derselben Hardware unter Kubuntu 7.10 gearbeitet, ohne irgendwelche Auffälligkeiten. Daß der Rechner beim Booten hängt, ist mir nur bei genau dieser Debian lenny Installation mit der "prepend"-Zeile passiert. Auch nicht auf einer anderen Debian lenny-Installation auf einer anderen Partition, bei der ich das Internetproblem mit dem Bootparameter "ipv6.blacklist=yes" zu lösen versucht habe. Aus diesem Grund scheint mir ein Hardwarefehler unwahrscheinlich.
Mir fallen da nur sporadische Hardwarefehler ein.

Haben Deine Festplattenkabel / Stromkabel keine Wackelkontakte? und sind fest aufgesteckt?

Wenn es ein Speicherfehler wäre, würde wohl ein kernel-oops gemeldet, und der Fehler würde häufiger auftreten,
dennoch, memtest86+ läuft fehlerfrei durch?

möglicherweise Überhitzung?
CPU-Lüfter, Chipsatz-Lüfter, laufen? Rechner ist nicht mit Staub zugesetzt?

Netzteil ist nicht unterdimensioniert?
(Beim Zugriff auf viele devices fällt möglicherweise der Strom zum Betrieb der Festplatte soweit, daß sie aussetzt)
Also memtest habe ich vor ca. 2 Monaten das letzte Mal gemacht, ich weiß nicht mehr genau, wie viele Passes er durchgelaufen ist, es dauerte jedenfalls länger als eine Stunde. Gefunden wurde nichts. Alle Lüfter laufen und es ist alles entstaubt. Ich habe zwei SATA-Festplatten, ein CD/DVD-Lese-Laufwerk und einen CD-Brenner angeschlossen, sonst nichts. Ich kann mir deshalb nicht vorstellen, daß das Netzteil damit überfordert wäre.

Code: Alles auswählen

# Gibt SMART etwas aus?
smartctl -s on -S on -o on [-d ata] /dev/sdb
smartctl -a [-d ata] /dev/sdb

Code: Alles auswählen

desktop:~# smartctl -s on -S on -o on -d ata /dev/sdb
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART Attribute Autosave Enabled.
SMART Automatic Offline Testing Enabled every four hours.

desktop:~# smartctl -a -d ata /dev/sdb
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     ST3640323AS
Serial Number:    9VK07T8M
Firmware Version: SD13
User Capacity:    640.135.028.736 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Wed Jan  7 23:19:31 2009 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
See vendor-specific Attribute list for marginal Attributes.

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                 ( 617) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 135) minutes.
Conveyance self-test routine
recommended polling time:        (   2) minutes.
SCT capabilities:              (0x103b) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   111   100   006    Pre-fail  Always       -       41567332
  3 Spin_Up_Time            0x0003   097   097   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       7
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   100   253   030    Pre-fail  Always       -       241430
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       179
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       211
184 Unknown_Attribute       0x0032   099   099   099    Old_age   Always   FAILING_NOW 1
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       21
189 High_Fly_Writes         0x003a   093   093   000    Old_age   Always       -       7
190 Airflow_Temperature_Cel 0x0022   064   058   045    Old_age   Always       -       36 (Lifetime Min/Max 36/36)
194 Temperature_Celsius     0x0022   036   042   000    Old_age   Always       -       36 (0 16 0 0)
195 Hardware_ECC_Recovered  0x001a   034   034   000    Old_age   Always       -       41567332
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Über das Ergebnis des Reboots mit Dateisystemprüfung kann ich morgen berichten.

Ich habe aber auch noch eine Frage: Läuft der Bootvorgang strikt sequentiell ab, also ein Skript nach dem anderen? Ich habe nicht daran rumgespielt, nichts zu optimieren versucht und auch nicht "insserv" installiert. Ich frage, weil ich mich natürlich auch wundere, warum dieses Hängen nur gelegentlich auftritt und ich an eine Race condition gedacht habe.

Ich habe vor einiger Zeit schon mal die logs in /var/logs/ nach Auffälligkeiten durchsucht. Dabei fiel mir folgendes in "syslog" auf, weil es mit dhclient zusammenhängt:

Code: Alles auswählen

Dec 28 13:56:47 desktop NetworkManager: <debug> [1230469007.292231]
nm_print_open_socks(): Open Sockets List Done.
Dec 28 13:56:47 desktop NetworkManager: <info>  Deactivating device eth0.
Dec 28 13:56:47 desktop dhclient: There is already a pid file
/var/run/dhclient.eth0.pid with pid 2839
Dec 28 13:56:47 desktop dhclient: killed old client process, removed PID
/file
Dec 28 13:56:47 desktop dhclient: DHCPRELEASE on eth0 to 192.168.2.1 port 67
Dec 28 13:56:47 desktop avahi-daemon[2665]: Withdrawing address record for
192.168.2.100 on eth0.
Das wurde bei einem Shutdown ausgegeben, der einem Bootvorgang, bei dem es zum Hängen kam, vorausging. Es wirkt auf mich, als würde der Prozeß "ifupdown-clean" irgendwie gelegentlich mit dem Vorgang, bei dem der Kernel die Module lädt, in Konflikt geraten, vielleicht weil er länger braucht als vorgesehen oder irgendeinen Vorgang im Hintergrund ablaufen lässt, während der Kernel die Module zu laden versuchen, und der im Hintergrund ablaufende Prozeß und der Kernel-Modul-Lade-Prozeß kommen sich in die Quere?

Was bewirken denn diese Zeilen im ifupdown-clean-Skript? Der Autor scheint sie ja selber nicht optimal zu finden.

Code: Alles auswählen

elif [ -f $IFSTATE ]; then
      # This is kinda bad :(
      >$IFSTATE
fi

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 08.01.2009 01:28:15

/etc/init.d/ifupdown-clean :

Code: Alles auswählen

# Note: The state file location is hardcoded in ifup|ifdown
# it is used as a variable in this script order to ease transitions
# to other locations by the package (not by the sysadmin), if you want
# to setup an alternate location please use a symlink
IFSTATE=/etc/network/run/ifstate

case "$1" in
  start)
    log_begin_msg "Cleaning up ifupdown..."
    if [ -f $IFSTATE -a ! -L $IFSTATE ]; then
      rm -f "$IFSTATE"
    elif [ -f $IFSTATE ]; then
      # This is kinda bad :(
      >$IFSTATE
    fi
Macht nichts anderes, als die Datei /etc/network/run/ifstate zu löschen,
oder, wenn es nur ein Link ist, sie mit leerem Inhalt zu füllen.
Mit anderen Worten: 'Schreibe "Nichts" in Datei'
(-> Ausprobieren ;) )

Idee: Wenn hier wirklich der Punkt ist, bei dem der Bootvorgang "hängt",
also beim Schreiben/Löschen von /etc/network/run/ifstate,
Vielleicht ist die Datei nur von einem anderen Prozeß gesperrt? -> habakug hat auf den avahi-daemon aufmerksam gemacht.
(Daher zuerst die Datei mit der Dateisystemprüfung: vielleicht liegt /etc/network/run/ifstate auf einem kaputten Inode?)
Test, /etc/init.d/ifupdown-clean modifizieren:

Code: Alles auswählen

...
    log_begin_msg "Cleaning up ifupdown..."
lsof | grep ifstate ; cat /etc/network/run/ifstate; sleep 10
    if [ -f $IFSTATE -a ! -L $IFSTATE ]; then
...
sollte entsprechende handles anzeigen.
Der Autor scheint sie ja selber nicht optimal zu finden.
Ist scheinbar ein Walkaround für den Fall, daß es sich um einen Symlink handelt.
Ich finde Schreibvorgänge in /etc beim Booten (zBsp /etc/mtab, /etc/blkid.tab) suboptimal, gehört eigentlich nach /var, besser noch /proc oder /tmp. (Könnte bei einem nicht erreichbaren /var wiederum zu Problemen führen)

melkart76 hat geschrieben:Läuft der Bootvorgang strikt sequentiell ab, also ein Skript nach dem anderen?
Ja, das zeichnet sysv-init aus.
Andere init-Systeme haben parallele Ansätze, zBsp init-ng oder upstart.
Und zBsp init-ng benutzt dazu noch stark kastrierte Startskripte, die oft nur den reinen Startbefehl enthalten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 08.01.2009 15:15:14

Die Dateisystemprüfung (also die, die sehr lange dauert) habe ich durchgeführt. Bei den beiden anschliessenden Bootvorgängen hing der Rechner wieder.

Mir ist leider jetzt erst etwas eingefallen, das ich von Anfang an hätte erwähnen sollen, weil es möglicherweise das Verhalten meines Systems entscheidend beeinflusst: Meine Installation ist zwar noch ziemlich frisch und unverändert, jedoch habe ich bereits ziemlich zu Anfang ein Fremdpaket installiert, nämlich AutoFsck in der Version 3.2-1. Das benutze ich schon ziemlich lange, früher unter Kubuntu 7.10, und hat bisher nie Probleme gemacht. Zweck dieses Pakets ist es, die periodische off-line Dateisystemprüfung vom Bootvorgang in den Shutdownvorgang zu verlegen, und zwar auf eine solche Weise, daß nach Erreichen des mount counts beim Shutdown ein Dialog angezeigt wird und wenn man diesen bestätigt, dann wird der Rechner nicht ausgeschaltet, sondern nur rebootet, und bei diesem darauffolgenden Reboot findet die große Dateisystemprüfung statt und unmittelbar danach wird der Rechner dann wirklich heruntergefahren.

Vielleicht ändert dieses Paket entscheidende Teile des normalen Bootvorgangs? Gibt es eine einfache Möglichkeit, dieses Paket unter die Lupe zu nehmen, was genau es am System verändert?

Außerdem ist mir noch aufgefallen, daß ich den meisten meiner Partitionen zu lange Namen gegeben habe. Die Partition /dev/sdb6 habe ich eigentlich "Debian5.0-27122008" genannt, anscheinend erkennt er aber nur die ersten 16 Buchstaben, wie in dem Bootlog zu erkennen ist, den ich gestern um 20:59:38 Uhr gepostet habe.

Die Zeile mit dem "lsof" habe ich in die Datei /etc/rcS.d/S18ifupdown-clean eingefügt, was zunächst dazu führte, daß er "lsof: command not found" ausgab. lsof liegt in /usr/bin/, und ist anscheinend zu diesem Zeitpunkt des Bootvorgangs nicht im Pfad. Ich habe dann in der Zeile "lsof" durch "/usr/bin/lsof" ersetzt, dies führte jedoch dazu, daß das Internet überhaupt nicht mehr hochgefahren wurde, aber auch keine Ausgaben getätigt oder eine 10-sekündige Pause eingelegt wurde. Ich habe die Zeile dann erst mal wieder ganz heraus genommen.

Ich habe zu viele Sachen auf einmal ausprobiert und möchte Schritt für Schritt vorgehen. Den avahi-daemon habe ich auch erst mal wieder eingeschaltet, um möglichst nahe am Ursprungszustand der frischen Installation zu bleiben. Das Dateisystem ist jetzt geprüft, zu den gelegentlichen Hängern beim Booten kommt es aber weiterhin. Zunächst würde ich gerne wissen, ob dieses AutoFsck-Paket der Übeltäter ist und ob es ein Problem sein könnte, daß ich meiner Partition einen zu langen Namen gegeben habe. Wenn beides ausgeschlossen werden kann, setze ich die "lsof"-Zeile wieder in die S18ifupdown-clean ein, wobei ich auch erst herausfinden muß, warum das vorhin nicht so funktioniert hat, wie ich dachte. Wenn Kommandos mit Semikolon getrennt in eine Zeile hintereinander gesetzt werden, werden sie dann eines nach dem anderen ausgeführt, auch wenn etwa das vorherige mit einem Fehler abbricht oder keine Ausgabe produziert?

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von habakug » 08.01.2009 16:02:33

Hallo!

Ja, das hättest du viel früher erwähnen sollen. Das liest sich nämlich so:
AutoFsck is a bash script using zenity to present GUI elements. The
script doesn't use "set -e" so errors will not be caught, this could
lead to problem circumstances.[...]
It seems to be impossible to reboot with this in place; if you reboot,
and your filesystem will need to be checked next time, you'd say yes.
Your machine would then reboot for the filesystem check, and then be
halted because it has finished the check. On reboot, it seems that
nothing needs to be done at all -- since you're getting the check one
way or another anyway.
Das ist gut gemeinte Software, die eigentlich für Ubuntu ist. In Debian könnte das zur Nervensäge werden.

Gruß, habakug

[1] https://lists.ubuntu.com/archives/ubunt ... 26028.html
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 08.01.2009 16:20:13

Ich habe AutoFsck jetzt mit "apt-get --purge remove autofsck" entfernt. Reicht das aus, um das System wieder in seinen ursprünglichen Zustand zu versetzen, oder bleiben noch Spuren von seiner ehemaligen Anwesenheit zurück?

Meine Partitionen habe ich auch umbenannt, so daß die Namen jetzt weniger als 16 Zeichen enthalten.

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 08.01.2009 16:33:35

Ich widerspreche habakug hier:
AutoFsck in der Version 3.2-1. Das benutze ich schon ziemlich lange, früher unter Kubuntu 7.10, und hat bisher nie Probleme gemacht.
...
Vielleicht ändert dieses Paket entscheidende Teile des normalen Bootvorgangs?
Soweit nichts besonderes, Du hast es gut beschrieben, es macht 'fsck -f -C -y' auf die ungemounteten Dateisysteme.
Eine wirklich nette Idee, außer ich will grad schlafen gehen ;)
Gibt es eine einfache Möglichkeit, dieses Paket unter die Lupe zu nehmen, was genau es am System verändert?
Paket entpacken, besteht nur aus 2 Skripten.


Außerdem ist mir noch aufgefallen, daß ich den meisten meiner Partitionen zu lange Namen gegeben habe. Die Partition /dev/sdb6 habe ich eigentlich "Debian5.0-27122008" genannt, anscheinend erkennt er aber nur die ersten 16 Buchstaben

Code: Alles auswählen

tune2fs -LUEBERLANGESLABEL ...
würde einfach nur zu einem Label "UEBERLANGESLABE" (15 Stellen) führen
Wenn Kommandos mit Semikolon getrennt in eine Zeile hintereinander gesetzt werden, werden sie dann eines nach dem anderen ausgeführt,
Ja, ist nur eine andere Schreibweise statt Kommandos untereinander zu schreiben.



--------------------------------
Die Zeile mit dem "lsof" habe ich in die Datei /etc/rcS.d/S18ifupdown-clean eingefügt, was zunächst dazu führte, daß er "lsof: command not found" ausgab. lsof liegt in /usr/bin/, und ist anscheinend zu diesem Zeitpunkt des Bootvorgangs nicht im Pfad. Ich habe dann in der Zeile "lsof" durch "/usr/bin/lsof" ersetzt, dies führte jedoch dazu, daß das Internet überhaupt nicht mehr hochgefahren wurde, aber auch keine Ausgaben getätigt oder eine 10-sekündige Pause eingelegt wurde.
Haehhh?
Wenn '/usr/bin/lsof | grep ifstate' da nichts ausgibt, heißt das eigentlich, daß diese Datei nicht gesperrt ist oder verwendet wird.
Leider, da die 10s-Pause von sleep scheinbar fehlt, ohne Fehlermeldung "sleep: command not found", kann nicht davon ausgegangen werden, daß 'sleep' ausgeführt wurde.
Das wiederum kann bedeuten, daß 'grep' auch nicht ausgeführt wurde,
somit auch der Nicht-Ausgabe von '/usr/bin/lsof | grep' nicht getraut werden kann. > Das System kann da schon gehangen haben.

Alles sehr ungewöhnlich und mysteriös. Ich hätte den Rechner gerne selbst in den Fingern.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 08.01.2009 18:32:14

rendegast hat geschrieben:Wenn '/usr/bin/lsof | grep ifstate' da nichts ausgibt, heißt das eigentlich, daß diese Datei nicht gesperrt ist oder verwendet wird.
Leider, da die 10s-Pause von sleep scheinbar fehlt, ohne Fehlermeldung "sleep: command not found", kann nicht davon ausgegangen werden, daß 'sleep' ausgeführt wurde.
Das wiederum kann bedeuten, daß 'grep' auch nicht ausgeführt wurde,
somit auch der Nicht-Ausgabe von '/usr/bin/lsof | grep' nicht getraut werden kann. > Das System kann da schon gehangen haben.

Alles sehr ungewöhnlich und mysteriös. Ich hätte den Rechner gerne selbst in den Fingern.
Ich habe jetzt die Zeile zuerst probehalber wieder eingesetzt - mit derselben Einrückung von 4 Leerzeichen, wie die anderen Zeilen der "start)"-Sequenz. Mit demselben Ergebnis, daß er ohne Pause durchläuft, gar nichts ausgibt - ich habe /var/log/boot geprüft - und das Internet nicht geht. Um dem Problem auf den Grund zu gehen, habe ich die Datei /etc/rcS.d/S18ifupdown-clean wie folgt geändert:

Code: Alles auswählen

[...]
# Note: The state file location is hardcoded in ifup|ifdown
# it is used as a variable in this script order to ease transitions
# to other locations by the package (not by the sysadmin), if you want
# to setup an alternate location please use a symlink
# /usr/bin/lsof | grep ifstate ; cat /etc/network/run/ifstate; sleep 10
IFSTATE=/etc/network/run/ifstate

case "$1" in
  start)
    log_begin_msg "Cleaning up ifupdown..."
    echo "Hallo" ; sleep 10
    cat /etc/network/run/ifstate ; sleep 10
    /usr/bin/lsof ; sleep 10
    if [ -f $IFSTATE -a ! -L $IFSTATE ]; then
      rm -f "$IFSTATE"
[...]
Wenn mit dieser so geänderten Datei gebootet wird, dann gibt er "Hallo" aus, wartet 10 Sekunden, macht dann aber ohne weitere Pausen weiter und das Internet geht auch. Die Datei /var/log/boot sieht so aus:

Code: Alles auswählen

[...]
Thu Jan  8 18:21:03 2009: Setting the system clock.
Thu Jan  8 18:21:03 2009: System Clock set to: Thu Jan  8 18:21:04 CET 2009.
Thu Jan  8 18:21:04 2009: Cleaning up ifupdown...Hallo
Thu Jan  8 18:21:14 2009: cat: /etc/network/run/ifstate: No such file or directory
Thu Jan  8 18:21:14 2009: Loading kernel module loop.
Thu Jan  8 18:21:14 2009: Will now check all file systems.
Thu Jan  8 18:21:14 2009: fsck 1.41.3 (12-Oct-2008)
Thu Jan  8 18:21:14 2009: Checking all file systems.
[...]
Ich hätte erwartet, daß er auch nach Ausgabe von "cat: /etc/network/run/ifstate: No such file or directory" noch mal 10 Sekunden wartet und dann nach der Ausgabe von /usr/bin/lsof nochmal 10 Sekunden.

Nachtrag: Ich habe gerade folgendes gefunden:
Every script you write should include set -e at the top. This tells bash that it should exit the script if any statement returns a non-true return value.
aus http://www.davidpashley.com/articles/wr ... ripts.html

Und in S18ifupdown-clean ist oben "set -e" gesetzt. Wenn "cat /etc/network/run/ifstate" einen nicht-wahren Rückgabewert hat, dann würde das doch erklären, warum er die nachfolgenden Befehle gar nicht mehr ausführt, oder?

Zweiter Nachtrag: Ich habe die mittlere meiner drei Zeilen "cat /etc/network/run/ifstate ; sleep 10" herausgenommen und zweimal neu gebootet. Beim ersten Mal hing er wieder. Beim zweiten Mal kam die Ausgabe von /usr/bin/lsof mit 10-sekündiger Pause, wie gewünscht. Ich habe die Ausgabe auch in /var/log/boot. Ein Eintrag mit "ifstate" ist allerdings nicht enthalten.

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 08.01.2009 18:54:04

Ich habe mit den Geschichten mit Markern in ifupdown-clean wohl falsch gelegen,
Schande über mich!
Und das paßt gut zu Deinem Nachtrag:

Habe jetzt auch mit Markern im start)-Block experimentiert:
1) Pipes, also "|" oder ">" funktionieren NICHT, und produzieren einen Fehler.
2) Ein solcher Fehler unterbricht die weitere Bearbeitung!!
3) Jeglicher andere Fehler, zBsp 'cat Datei' während Datei nicht existiert, unterbricht die weitere Bearbeitung!!

>> Jegliche Befehle hier müssen scheinbar fehlerfrei laufen,
was bei ganz einfachen Sachen wie 'echo ABC' aber auch der Fall ist,

-------------------------------------
Solch produziertes Abbrechen von ifupdown-clean führte zu einem seltsam fehlerhaften Netzwerk:
zBsp. konnte lighttpd starten, aber der an localhost gebundene IMAP-Server dovecot NICHT 8O ?

(Jedoch war da Nichts mit einem abgebrochenen Bootvorgang, es wirkte sich nur auf andere Dienste / Netzwerk aus)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 09.01.2009 12:14:27

Ich habe jetzt nochmal meine Einfügungen in das S18ifupdown-clean-Skript überarbeitet, ich lasse mir jetzt mit "ps -A" auch alle Prozesse anzeigen und habe lange Pausen eingebaut, so daß ich das beim nächsten Hänger mit meiner Kamera, die griffbereit neben dem Computer steht, hoffentlich abfotografieren kann. Leider scheint bei einem fehlgeschlagenem Bootvorgang keine Ausgabe der Bootlogs nach /var/log/boot zu erfolgen - und die Datei /var/log/faillog besteht nur aus dem ASCII-Code "00" (??). Ansonsten bleibt mir wohl nur übrig, auf den nächsten Hänger zu warten und zu hoffen, daß ich den Hänger auf eine bestimmte Zeile in einem bestimmten Skript eingrenzen kann und sich die Liste der offenen Dateien oder die Prozeßliste irgendwie von der eines erfolgreichen Bootvorgangs unterscheidet.

Ich bin mir nur leider nicht mehr so sicher, daß es wirklich am ifupdown-clean-Skript liegt, weil er ja zunächst erst ab "Loading kernel modules..." und zuletzt schon ab "System clock set to.." hing. Ich habe auch kaum noch Hoffnung, daß ich den Fehler überhaupt finde, denn die Bootskripte sind doch wahrscheinlich schon seit Jahren unverändert geblieben und extrem durchgetestet, oder?

(Ich hatte meinem letzten Beitrag übrigens noch einen zweiten Nachtrag hinzugefügt. Als ich ihn abgeschickt habe, hattest Du Deine Antwort schon geschrieben.)

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 09.01.2009 13:09:37

Wenn "cat /etc/network/run/ifstate" einen nicht-wahren Rückgabewert hat, dann würde das doch erklären, warum er die nachfolgenden Befehle gar nicht mehr ausführt, oder?
Bringt auch nicht weiter:
"ifstate" oder "IFSTATE" taucht (bei mir) nur in ifupdown und ifupdown-clean auf.
ifupdown-clean löscht ifstate (oder im "Link"-Fall: leert sie)
ifupdown ruft beim Beenden ifupdown-clean auf.
Im Normalfall ist also nach einem Herunterfahren ifstate gar nicht vorhanden, 'cat ifstate' muß einen Fehler ausgeben.

Zu diesem Zeitpunkt (ifupdown-clean) passiert einfach nichts Weltbewegendes:
...
S03udev
S04mountdevsubfs.sh
S05bootlogd
S05keymap.sh
S07hdparm
S08hwclockfirst.sh
S10checkroot.sh <<<<<<<<<<<<<<<<<<<<<<<<<<<
S11hwclock.sh <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
S12mtab.sh <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
S18ifupdown-clean <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
S20module-init-tools <<<<<<<<<<<<<<<<<<<<<<<<<<<
S30checkfs.sh <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
S30ebtables
S30procps
S34fuse
S35mountall.sh
S36mountall-bootclean.sh
In den *check*-Skripten würde sich fsck bei (Dateisystem)-Problemen melden.
Und bei Problemen mit dem Plattenzugriff meldet sich normalerweise der Kernel.

Zudem zeigen sich Hardwarefehler natürlich auch bei den anderen Betriebssystemen.

Ein spezieller debian-Kernel-Bug?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 09.01.2009 18:02:07

Ich habe noch eine Frage: Nachdem Umleitungen mit ">" in einem Bash-Skript nicht funktionieren, gibt es vielleicht doch noch eine andere Möglichkeit, die Ausgabe von lsof und "ps -A" irgendwie zu protokollieren, für den Fall, daß der Rechner beim Booten wieder hängt? Ich habe nämlich gerade festgestellt, daß es nicht funktionieren wird, das alles vom Bildschirm abzufotografieren, denn es ist soviel Ausgabe, daß ich selbst mit Shift+Pfeiltaste nicht mehr bis ganz zum Anfang zurückscrollen kann. Und wenn der Rechner beim Booten hängt, dann finde ich den Bootlog in keiner /var/log/boot*-Datei mehr.

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 10.01.2009 02:10:15

Nachdem Umleitungen mit ">" in einem Bash-Skript nicht funktionieren,
Nur in diesem speziellen Fall der Startskripte.

Lösung:
Die problematischen Befehle in ein Skript auslagern:

Code: Alles auswählen

#!/bin/sh
problembefehl
problembefehl
exit 0
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 18.01.2009 10:25:06

Ein kleiner Zwischenbericht, auch für mich selbst, damit ich hier ggf. mal nachschauen kann, was ich gemacht habe:

Am 10.1. hatte ich noch drei aufeinanderfolgende Hänger, jeweils nach Ausgabe von "System clock set to:...". Dann habe ich in drei Bootskripten folgende Änderungen vorgenommen:

S11hwclock.sh:

Code: Alles auswählen

[...]
    case "$1" in
        start)
            echo "UhrSkriptNull"
            ./checkscript0.sh
            echo "UhrSkriptEins"
            if [ -w /etc ] && [ ! -f /etc/adjtime ] && [ ! -e /etc/adjtime ]; then
                echo "0.0 0 0.0" > /etc/adjtime
            fi
[...]
S12mtab.sh:

Code: Alles auswählen

[...]
case "$1" in
  start|"")
        echo "MTabScriptNull"
        /checkscript.sh
        echo "MTabScriptEins"
        do_start
        ;;
[...]
S18ifupdown-clean:

Code: Alles auswählen

[...]
case "$1" in
  start)
    echo "IfUpdownNull"
    log_begin_msg "Cleaning up ifupdown..."
    echo "IfupdownEins"
    /checkscript2.sh
    if [ -f $IFSTATE -a ! -L $IFSTATE ]; then
      rm -f "$IFSTATE"
[...]
Die Datei /checkscript.sh sieht so aus:

Code: Alles auswählen

#!/bin/sh
/usr/bin/lsof > /root/lsof.txt
/bin/ps -A > /root/psA.txt
exit 0
checkscript1.sh und checkscript2.sh sind genauso, nur daß an die Namen für die Ausgabedateien noch eine Ziffer angehängt ist. Es werden also bei jedem Bootvorgang 6 Ausgabedateien in das /root-Verzeichnis geschrieben. Nach jedem erfolgreichen Bootvorgang verschiebe ich diese Dateien in ein Verzeichnis, in dem ich sie nach Bootdatum und -uhrzeit ordne.

Seitdem ich dies gemacht habe, kam es zu keinem Hänger mehr, seitdem verliefen 20 Bootvorgänge problemlos. Nach dem 17. Mal habe ich das "Autofsck"-Paket wieder installiert.

Ich werde jetzt meine Veränderungen an den Bootskripten wieder rückgängig machen, eine nach der anderen und sehen, ob der Hänger wieder auftritt. Da ich die regelmässigen Aktualisierungen mitmache - ich habe ja ein Debian lenny-System - könnte es natürlich sein, daß der Fehler, falls er von einer Debian-Komponente verursacht wurde, inzwischen behoben wurde.

Ich fange mit der Datei S18ifupdown-clean an und entferne dort meine drei eingefügten Zeilen (2x echo und 1x /checkscript2.sh). Mal sehen, was jetzt passiert.

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 25.01.2009 15:28:03

Nach weiteren 20 erfolgreichen Bootvorgängen hintereinander habe ich jetzt auch S11hwclock.sh in den Ursprungszustand zurück versetzt.

melkart76
Beiträge: 53
Registriert: 12.05.2007 14:54:30

Re: Rechner hängt gelegentlich beim Booten

Beitrag von melkart76 » 26.01.2009 00:47:20

Jetzt ist der Fehler wieder da, im ersten Bootvorgang mit der wieder in den Originalzustand zurück versetzten Datei S11hwclock.sh. Der Bootvorgang hängt nach der Ausgabe von "System clock set to...".

Also scheint allein die Einfügung der oben aufgeführten Zeilen in der Datei S11hwclock.sh einen Effekt zu haben, der bewirkt, daß der Fehler nicht auftritt. Leider habe ich aber, nachdem ich in der Datei den Aufruf des Ausgabeskripts zur Diagnose entfernt habe, auch nichts mehr, was ich mit einem erfolgreichen Bootvorgang vergleichen kann.

Im Moment fällt mir nichts ein, wie ich weiter vorgehen könnte, um den Fehler einzugrenzen. Hat vielleicht jemand eine Idee?

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Rechner hängt gelegentlich beim Booten

Beitrag von McAldo » 03.11.2009 15:47:51

Gibt es hierzu neuere Infos? Vielleicht ein Kernelparameter, der das verhindert?

McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Rechner hängt gelegentlich beim Booten

Beitrag von McAldo » 04.11.2009 10:30:45

Ok, ich habe für meine Hardware eine Lösung:

/boot/grub/menu.lst

Code: Alles auswählen

kernel          /vmlinuz-2.6.26-2-686 root=/dev/mapper/notebook-root ro quiet noapic acpi=off
McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

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

Re: Rechner hängt gelegentlich beim Booten

Beitrag von rendegast » 04.11.2009 13:15:49

Jetzt ist der Fehler wieder da, im ersten Bootvorgang mit der wieder in den Originalzustand zurück versetzten Datei S11hwclock.sh. Der Bootvorgang hängt nach der Ausgabe von "System clock set to...".

Also scheint allein die Einfügung der oben aufgeführten Zeilen in der Datei S11hwclock.sh einen Effekt zu haben, der bewirkt, daß der Fehler nicht auftritt.
Dazu fällt mir nichts ein, außer beim walkaround zu bleiben.

Speziell zum Zugriff auf die BIOS-Uhr in hwclock.sh:
Bei mit ist in /etc/default/rcS :

Code: Alles auswählen

HWCLOCKACCESS=yes
HWCLOCKPARS="--directisa"
Das erste kann einen Zugriff auf die Systemuhr unterbinden/abschalten.
Das zweite brauche ich, damit es funktioniert:

Code: Alles auswählen

# hwclock --show
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
# hwclock --show --directisa
Wed 04 Nov 2009 01:13:53 PM CET  -0.331371 seconds
Aber ein Fehler dabei führt nur zu einer nicht richtigen Systemzeit,
nicht zu einem Hängen des Bootvorgangs.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten