On Don, 30 Aug 2001, Bernd Brodesser wrote:
* Torsten Hallmann schrieb am 30.Aug.2001:
Wenn Du /cdrom oder /dev/hdc verwendest greifst Du auf die /etc/fstab zu und die versucht die CD unter dem Mountpoint /cdrom zu entfernen.
Nein, es wird in /etc/mtab nachgesehen, und da steht drin, wo wirklich gemountet ist.
Exakt: dh@slarty:~ $ mount /cdrec/ ## Mein Brenner, im ROM is keine CD ;) root@slarty:~ # strace -efile /bin/umount /cdrec/ ## [1] execve("/bin/umount", ["/bin/umount", "/cdrec/"], [/* 63 vars */]) = 0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 readlink("/cdrec", 0xbfffe2a0, 4095) = -1 EINVAL (Invalid argument) open("/etc/mtab", O_RDONLY) = 3 oldumount("/cdrec") = 0 lstat("/etc/mtab", {st_mode=S_IFREG|0644, st_size=562, ...}) = 0 open("/etc/mtab", O_RDWR|O_CREAT, 0644) = 3 open("/etc/mtab~5637", O_WRONLY|O_CREAT, 0) = 3 link("/etc/mtab~5637", "/etc/mtab~") = 0 unlink("/etc/mtab~5637") = 0 open("/etc/mtab~", O_WRONLY) = 3 open("/etc/mtab", O_RDONLY) = 3 open("/etc/mtab.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 rename("/etc/mtab.tmp", "/etc/mtab") = 0 unlink("/etc/mtab~") = 0 root@slarty:~ # [1] als non-root kommt (zu Recht): dh@slarty[3]:~ (0) $ strace -efile /bin/umount /cdrec/ execve("/bin/umount", ["/bin/umount", "/cdrec/"], [/* 72 vars */]) = 0 strace: exec: Operation not permitted Ach ja, noch was /etc/mtab kommt ab und an gern mal "out of sync", z.B. wenn Geraete (ausversehen) mehrfach gemountet werde oder anderes... Somit geraet auch die Ausgabe von mount (und ebenso umount Versuche) durcheinander. (ok, bei 2.4 koennen LWs mehrfach gemountet werden -- ABER auf UNTERSCHIEDLICHE mountpoints... Zweimal auf den gleichen ist nicht gut... root@slarty[0]:~ (0) # strace -efile mount > /dev/null execve("/bin/mount", ["mount"], [/* 63 vars */]) = 0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/dev/null", O_RDWR) = 3 open("/etc/mtab", O_RDONLY) = 3 Immer "aktuell" und korrekt ist hingegen /proc/mounts: root@slarty[0]:~ (0) # strace -efile cat /proc/mounts >/dev/null execve("/bin/cat", ["cat", "/proc/mounts"], [/* 63 vars */]) = 0 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 open("/lib/libc.so.6", O_RDONLY) = 3 open("/proc/mounts", O_RDONLY|O_LARGEFILE) = 3 Ausser "oldumount" habe alle Befehle in den trace-logs eigene manpages.
AFAIK gibt der Kernel irgendwann mal auf. Kann aber daueren. Mehere Minuten sind da einzuplanen.
Kann _sehr_ dauern... z.B. 1 h (okok, ist bei Kernel 2.4.0-test4)... ;) Ggfs. kann dann auch ein Shutdown scheitern... Dann ist ein 'init 1; umount von allem was such unmounten laesst; reboot noetig... -dnh -- The only sensible way to estimate the stability of a Windows server is to power it down and try it out as a step ladder. - Robert Crawford, in the Monastery