Moin. Ich hätte da mal wieder eine frage...
Ich benutze für mein /opt verzeichnis einen USB Stick. Dieser ist derzeit ext2 formatiert. Das Problem: Mein System führt beim herunterfahren keinen unmount durch, was jedesmal in kleinen dateisystemfehlern resultiert.
mount beschwert sich beim booten zwar, dass das Dateisystem defekt ist, führt aber keinen check durch. Der Stick wird beim booten gemountet, allerdings kommt es dann gelegentlich vor, dass die shell abstürzt, wenn man versucht vom stick zu lesen oder ihn zu beschreiben. ein e2fsck später läuft alles wie gewünscht.
Welches Dateisystem wäre hier besser geeignet? FAT hatte ich von vornherein ausgeschlossen, da der stick ja /opt ist und einige tools die arbeit verweigern, wenn die berechtigungen nicht stimmen.
Linux 15.036 Themen, 107.107 Beiträge
Normalerweise sollte ein Script beim Herunterfahren ausgeführt werden , welches ALLE Partitionen und Datenträger automatisch unmounted. Wenn das nicht so ist, dann liegt ein Fehler vor.
Bei Debian lenny sind dafür die Scripte umountfs und umountroot vorgesehen , welche im Runlevel 0 und Runlevel 6 ausgeführt werden.
Durch das Unmounten wird das Dateisystem auf dem Datenträger syncronisiert und Daten aus dem Speicher auf den Datenträger geschrieben. Das Problem liegt also nicht beim Dateisystem, sondern beim fehlenden umount Befehl für diesen USB Stick.
cat /etc/init.d/umountfs
#! /bin/sh
### BEGIN INIT INFO
# Provides: umountfs
# Required-Start:
# Required-Stop: umountroot
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Turn off swap and unmount all local file systems.
# Description:
....
PS: Du kannst den USB Stick aber auch mit der sync Option mounten. Dadurch werden immer gleich alle Daten auf den Stick geschrieben und nicht erst noch im Speicher gehalten.
Der stick wird bereit mit sync gemountet, dummerweise sind die prozeduren für das rebooten(fürs ausschalten gibt es keine) ohne scriptmöglichkeiten gestaltet(es wird einfach ein reset ausgeführt). daher lässt sich diesbezüglich nix machen
Da ist was total falsch konfiguriert, nicht nur das Unmounten des USB Sticks.
Linuxrechner sollten immer mit einem shutdown Befehl heruntergefahren werden, weil sonst viele Aufräumarbeiten nicht durchgeführt werden.
Wenn man den Befehl shutdown -h now bei Debian lenny eingibt, werden alle Shellscripte im Runlevel 0 (Links im Verzeichnis /etc/rc0.d) ausgeführt:
ls -l /etc/rc0.d
insgesamt 4
lrwxrwxrwx 1 root root 13 3. Sep 11:52 K01kdm -> ../init.d/kdm
lrwxrwxrwx 1 root root 18 1. Nov 19:03 K08vmware -> /etc/init.d/vmware
lrwxrwxrwx 1 root root 17 3. Sep 18:57 K11anacron -> ../init.d/anacron
lrwxrwxrwx 1 root root 13 14. Nov 16:18 K11atd -> ../init.d/atd
lrwxrwxrwx 1 root root 20 3. Sep 11:52 K20fancontrol -> ../init.d/fancontrol
lrwxrwxrwx 1 root root 17 4. Sep 13:50 K20ifplugd -> ../init.d/ifplugd
lrwxrwxrwx 1 root root 20 4. Sep 12:31 K20nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 23 3. Sep 11:20 K20nvidia-kernel -> ../init.d/nvidia-kernel
lrwxrwxrwx 1 root root 17 3. Sep 18:54 K20postfix -> ../init.d/postfix
lrwxrwxrwx 1 root root 15 11. Sep 22:02 K20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 15 27. Jan 16:39 K20saned -> ../init.d/saned
lrwxrwxrwx 1 root root 13 3. Sep 11:52 K21fam -> ../init.d/fam
lrwxrwxrwx 1 root root 20 3. Sep 10:10 K25hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 root root 20 3. Sep 15:21 K50alsa-utils -> ../init.d/alsa-utils
lrwxrwxrwx 1 root root 26 3. Sep 10:10 K63mountoverflowtmp -> ../init.d/mountoverflowtmp
lrwxrwxrwx 1 root root 27 4. Sep 12:31 K80nfs-kernel-server -> ../init.d/nfs-kernel-server
lrwxrwxrwx 1 root root 22 3. Feb 11:22 K86avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root 15 3. Sep 10:10 K89klogd -> ../init.d/klogd
lrwxrwxrwx 1 root root 20 4. Sep 19:09 K89resolvconf -> ../init.d/resolvconf
lrwxrwxrwx 1 root root 18 3. Sep 10:10 K90sysklogd -> ../init.d/sysklogd
-rw-r--r-- 1 root root 353 23. Dez 2007 README
lrwxrwxrwx 1 root root 22 4. Sep 13:50 S15wpa-ifupdown -> ../init.d/wpa-ifupdown
lrwxrwxrwx 1 root root 18 3. Sep 10:10 S20sendsigs -> ../init.d/sendsigs
lrwxrwxrwx 1 root root 17 3. Sep 10:10 S30urandom -> ../init.d/urandom
lrwxrwxrwx 1 root root 22 3. Sep 10:10 S31umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx 1 root root 17 3. Sep 11:51 S32portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root 20 3. Sep 10:10 S35networking -> ../init.d/networking
lrwxrwxrwx 1 root root 18 3. Sep 10:10 S36ifupdown -> ../init.d/ifupdown
lrwxrwxrwx 1 root root 18 3. Sep 10:10 S40umountfs -> ../init.d/umountfs
lrwxrwxrwx 1 root root 20 3. Sep 10:10 S60umountroot -> ../init.d/umountroot
lrwxrwxrwx 1 root root 14 3. Sep 10:10 S90halt -> ../init.d/halt
Bei allen Links die mit K anfangen wird dem entsprechenden Shellscript der stop Parameter übergeben und bei den Links die mit S anfangen wird der start Parameter dem jeweiligen Shellscript von init übergeben.
Du sieht eventuell selbst das bei dir etwas falsch konfiguriert ist. Da werden eine Menge an Aufräumarbeiten durchgeführt, wenn der Rechner runtergefahren wird.
Es handelt sich uµ eine angepasste version für eine Embedded solution. Das board unterstutzt keinen soft power, und da es von einem ro System läuft(/var ist über /tmp gelinkt, viele configfiles ebenso), bringt es in der regel wenig, das system aufzuräumen, eben weil das rootfs ro ist. der Befehl Shutdown ist dementsprechend nicht verfügbar
Hallo Synthetic_codes,
sie sollten sich zunächst einmal um Ihren usb-stick kümmern. ext3 als fs formatieren und prüfen ob der stick hotplug läuft.
Wenn nicht muß der stick in /etc/fstab und /etc/mount oder mtab nachgetragen werden. Auch ein Blick in autofs wäre ebenso wichtig.
Der usb-stick muß wie alle usb-dev immer automatisch erkannt oder an.- und abgemeldet werden. In der Regel heißt der Einhängepunkt /media/dev.
Ist der usb-stick kleiner als 4gb können Sie auch überfat 32 nachdenken.
Damit läuft er dann auch auf windowsrechnern, ist umfangreich einsetzbar und das Problem mit den mountpoints entfällt.
MfG.
Violetta
Brauchst du zwingend Schreibrechte auf der /opt-Partition? Ansonsten kannst du auch ein Read-Only-Dateisystem nehmen, das für den Einsatz auf embedded-Systemen konzipiert ist. Squashfs ist so ein Kandidat.