Discussion:
Ist es moeglich, in laufendem Betrieb mit dd ein Backup der Systempartition zu machen?
(zu alt für eine Antwort)
Martin Erdtmann
2004-11-03 17:02:42 UTC
Permalink
Hallo,
bisher habe ich mein System immer mit einer Gentoo-LiveCd gestartet und mit
dd mein System auf eine USB Platte geschrieben. Dieses ist sehr umständlich,
da u. a. ich noch keine LiveCd mit funktionierenden USB2.0 zur Verfügung
habe und außerdem extra booten muß. Ist es auch möglich, eine sauberes
Backup Image im laufenden Betrieb zu ziehen, wenn ich z. B. mein System ro
mounte oder sind Probleme zu erwarten?
Mein System ist ein AMD64 Gentoo 2.6.7-r14 auf Shuttle SN85G4V2

vielen Dank und Grüße
Martin Erdtmann
Alexander Skwar
2004-11-03 17:42:19 UTC
Permalink
Post by Martin Erdtmann
habe und außerdem extra booten muß. Ist es auch möglich, eine sauberes
Backup Image im laufenden Betrieb zu ziehen, wenn ich z. B. mein System ro
mounte oder sind Probleme zu erwarten?
Wenn Du eine Partition ro (re-)mounten kannst, dann kannst Du mit
dd ein Image ziehen und später zurückspielen. Da das Image/FS dann
natürlich nicht sauber ge-unmounted war/ist, wird ein fsck notwendig
sein. Der sollte schnell gehen und keine Fehler feststellen.

*ABER*: Wie willst Du / ro remounten?

Wenn / ein LVM volume ist, dann kannst Du einfach ein Snapshot
Volume erstellen und dann ein Backup der Dateien von / machen.
Aber kein dd image (wie dd if=/dev/daten/sys).

Alexander Skwar
--
Speer's 1st Law of Proofreading:
The visibility of an error is inversely proportional to the
number of times you have looked at it.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Hansjoerg Lipp
2004-11-03 20:58:41 UTC
Permalink
Post by Alexander Skwar
Post by Martin Erdtmann
habe und außerdem extra booten muß. Ist es auch möglich, eine sauberes
Backup Image im laufenden Betrieb zu ziehen, wenn ich z. B. mein System ro
mounte oder sind Probleme zu erwarten?
Wenn Du eine Partition ro (re-)mounten kannst, dann kannst Du mit
dd ein Image ziehen und später zurückspielen. Da das Image/FS dann
natürlich nicht sauber ge-unmounted war/ist, wird ein fsck notwendig
sein.
Das würde mich sehr wundern. Siehe auch den Aufruf von
ext3_mark_recovery_complete() in ext3_remount() in fs/ext3/super.c bzw.
analogen Code für andere Dateisysteme.
Post by Alexander Skwar
*ABER*: Wie willst Du / ro remounten?
Geht hier fast problemlos:

# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
# grep /dev/root /proc/mounts
/dev/root / ext3 rw 0 0
# mount -o remount,ro /
# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
# grep /dev/root /proc/mounts
/dev/root / ext3 ro 0 0

Das einzige "Problem" ist hier /etc/mtab. Bei /var und /tmp könnte das
anders aussehen.

Grüße, Hansjörg
Martin Erdtmann
2004-11-03 21:06:51 UTC
Permalink
Post by Hansjoerg Lipp
Post by Alexander Skwar
Post by Martin Erdtmann
habe und außerdem extra booten muß. Ist es auch möglich, eine sauberes
Backup Image im laufenden Betrieb zu ziehen, wenn ich z. B. mein System
ro mounte oder sind Probleme zu erwarten?
Wenn Du eine Partition ro (re-)mounten kannst, dann kannst Du mit
dd ein Image ziehen und später zurückspielen. Da das Image/FS dann
natürlich nicht sauber ge-unmounted war/ist, wird ein fsck notwendig
sein.
Das würde mich sehr wundern. Siehe auch den Aufruf von
ext3_mark_recovery_complete() in ext3_remount() in fs/ext3/super.c bzw.
analogen Code für andere Dateisysteme.
Post by Alexander Skwar
*ABER*: Wie willst Du / ro remounten?
# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
# grep /dev/root /proc/mounts
/dev/root / ext3 rw 0 0
# mount -o remount,ro /
# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
# grep /dev/root /proc/mounts
/dev/root / ext3 ro 0 0
Das einzige "Problem" ist hier /etc/mtab. Bei /var und /tmp könnte das
anders aussehen.
Grüße, Hansjörg
Was würde eigentlich passieren, wenn ich mit dd ein image ziehe, ohne vorher
ro zu remounten? Könnte ich dann das image wegschmeissen oder geht schon
das Lesen der Platte auf die Bretter? (ich möchte das nicht so gerne
testen)
Hansjoerg Lipp
2004-11-03 21:27:11 UTC
Permalink
Post by Martin Erdtmann
Was würde eigentlich passieren, wenn ich mit dd ein image ziehe, ohne vorher
ro zu remounten? Könnte ich dann das image wegschmeissen oder geht schon
das Lesen der Platte auf die Bretter? (ich möchte das nicht so gerne
testen)
Das Lesen der Platte ist kein Problem. Du hättest halt mit großer
Wahrscheinlichkeit ein inkonsistentes Dateisystem gesichert. Ein fsck
ist auf jeden Fall nötig, und Dateien, die während des Sicherungs-
vorgangs verändert wurden, können korrumpiert sein. Wenn Anwendungen
mehrere Dateien gleichzeitig verändern, hat man ein noch größeres
Problem. Das ist also keine gute Idee.

Grüße, Hansjörg
Alexander Skwar
2004-11-04 05:49:36 UTC
Permalink
Post by Hansjoerg Lipp
Post by Martin Erdtmann
Was würde eigentlich passieren, wenn ich mit dd ein image ziehe, ohne vorher
ro zu remounten? Könnte ich dann das image wegschmeissen oder geht schon
das Lesen der Platte auf die Bretter? (ich möchte das nicht so gerne
testen)
Das Lesen der Platte ist kein Problem. Du hättest halt mit großer
Wahrscheinlichkeit ein inkonsistentes Dateisystem gesichert.
Richtig.

Aber, andererseits ändert sich an der "Systempartition" doch
reichlich wenig. Oder zumindest kann man es so einrichten, das
sich in /, /opt oder /usr während des Backups nichts ändert. Klar,
bei /var, /tmp, /home mag das anders aussehen.

Aber ein fsck wird dann auf jeden Fall notwendig.

OP: Durch das Lesen machst Du *nichts* kaputt! Da brauchst Du
gar keine Angst zu haben.

Alexander Skwar
--
Oh, I've seen copies [of Linux Journal] around the terminal room at The Labs.
-- Dennis Ritchie
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Martin Erdtmann
2004-11-04 08:40:28 UTC
Permalink
Post by Alexander Skwar
Post by Hansjoerg Lipp
Post by Martin Erdtmann
Was würde eigentlich passieren, wenn ich mit dd ein image ziehe, ohne vorher
ro zu remounten? Könnte ich dann das image wegschmeissen oder geht schon
das Lesen der Platte auf die Bretter? (ich möchte das nicht so gerne
testen)
Das Lesen der Platte ist kein Problem. Du hättest halt mit großer
Wahrscheinlichkeit ein inkonsistentes Dateisystem gesichert.
Richtig.
Aber, andererseits ändert sich an der "Systempartition" doch
reichlich wenig. Oder zumindest kann man es so einrichten, das
sich in /, /opt oder /usr während des Backups nichts ändert. Klar,
bei /var, /tmp, /home mag das anders aussehen.
Aber ein fsck wird dann auf jeden Fall notwendig.
OP: Durch das Lesen machst Du *nichts* kaputt! Da brauchst Du
gar keine Angst zu haben.
Alexander Skwar
--
Oh, I've seen copies [of Linux Journal] around the terminal room at The Labs.
-- Dennis Ritchie
Theoretisch müßte es doch schon reichen, wenn ich in den single user mode
gehe, den syslog abschalte (wenn das nicht schon der fall ist) und eine
Weile warte bis das das Dateisystem syncronisiert ist ..

Gruß
Martin
Alexander W. Skwar
2004-11-04 09:12:15 UTC
Permalink
Post by Martin Erdtmann
Theoretisch müßte es doch schon reichen, wenn ich in den single user mode
gehe, den syslog abschalte (wenn das nicht schon der fall ist) und eine
Weile warte bis das das Dateisystem syncronisiert ist ..
Nun, ja, aber dann kann man auch direkt booten und ein Rescue System
dabei starten.

Alexander Skwar
--
panic("aha1740.c"); /* Goodbye */
2.2.16 /usr/src/linux/drivers/scsi/aha1740.c
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Alexander Skwar
2004-11-04 05:45:38 UTC
Permalink
Post by Hansjoerg Lipp
Das würde mich sehr wundern. Siehe auch den Aufruf von
ext3_mark_recovery_complete() in ext3_remount() in fs/ext3/super.c bzw.
analogen Code für andere Dateisysteme.
Weil das FS ro gemounted ist?
Post by Hansjoerg Lipp
Post by Alexander Skwar
*ABER*: Wie willst Du / ro remounten?
# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
# grep /dev/root /proc/mounts
/dev/root / ext3 rw 0 0
# mount -o remount,ro /
Hmm...

[06:43:03 ***@server:~] $ mount | grep ' / '
/dev/hda7 on / type ext3 (rw,noatime)
[06:43:05 ***@server:~] $ grep /dev/root /proc/mounts
/dev/root / ext3 rw,noatime 0 0
[06:43:20 ***@server:~] $ sudo mount -o remount,ro /
mount: / wird gerade benutzt

[06:43:25 ***@server:~] $ mount
/dev/hda7 on / type ext3 (rw,noatime)
none on /dev type devfs (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw)
none on /dev/shm type tmpfs (rw)
/dev/system_vg/usr on /usr type xfs (rw)
/dev/system_vg/Users on /home type xfs (rw)
/dev/system_vg/Various on /var type xfs (rw)
/dev/system_vg/CCACHE on /ccache type ext3 (rw)
/dev/system_vg/Portage on /portage type jfs (rw,noatime)
/dev/hde5 on /opt type xfs (rw)
/dev/daten/filme on /daten/filme type jfs (rw)
/dev/daten/Distfiles on /portage/tree/distfiles type jfs (rw)
/dev/shm on /tmp type none (rw,bind)
/portage/tree on /usr/portage type none (rw,bind)
/portage/tree/distfiles on /usr/portage/distfiles type none (rw,bind)
/portage/build on /var/tmp/portage type none (rw,bind)
/portage/logs on /var/log/portage type none (rw,bind)
none on /proc/bus/usb type usbfs (rw)
/dev/daten/lvol0 on /mnt/test type reiserfs (rw)
Post by Hansjoerg Lipp
Das einzige "Problem" ist hier /etc/mtab.
Was meinst Du damit?
Post by Hansjoerg Lipp
Bei /var und /tmp könnte das
anders aussehen.
Ja. Wobei sich halt die Frage stellt, was eine "Systempartition"
sein soll. Ich habe einfach mal / geraten. Genauso könnte man
aber auch /usr als diese ansehen (bzw. halt das Volume, auf dem
/usr liegt).

Alexander Skwar
--
Kockac shouts to Beus: BTW napadlo ma: vat~ je sloveso od van~a a rvat~ je odvodene od vat~ ako rcp od cp...
Beus shouts to Kockac: sloveso od van~a :))) to znie skoro ako minule trpne pricastie od fortuny :))) a inac hej, potom remote je odvodene od emote :)))
Kockac shouts to Beus: jo, a radost od "a dost!" :)
Beus shouts to Kockac: a RUS je potom odvodeny od US, cize rusi su tiez amici, len dialkovi, hej? :)))
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Hansjoerg Lipp
2004-11-04 16:30:02 UTC
Permalink
Post by Alexander Skwar
Post by Hansjoerg Lipp
Das würde mich sehr wundern. Siehe auch den Aufruf von
ext3_mark_recovery_complete() in ext3_remount() in fs/ext3/super.c bzw.
analogen Code für andere Dateisysteme.
Weil das FS ro gemounted ist?
Genau. Das Image eines ro gemounteten Dateisystems sollte sich nicht von
dem eines nicht gemounteten unterscheiden. Sonst wäre ja auch beim
unmounten des ro gemounteten fs ein Schreibzugriff notwendig, was IMHO
nicht wirklich gut wäre.
Post by Alexander Skwar
Post by Hansjoerg Lipp
Post by Alexander Skwar
*ABER*: Wie willst Du / ro remounten?
[...]
Post by Alexander Skwar
mount: / wird gerade benutzt
Merkwürdig. Bei mir greift nur mount schreibend auf / zu (mtab), da
/var, /tmp und /home eigene Partitionen spendiert bekommen haben.
[...]

Sieht bei Dir also auch nicht viel anders aus... Vielleich kannst Du ja
mit lsof/fuser herausfinden, welcher Prozess hier die Probleme
verursacht.
Post by Alexander Skwar
Post by Hansjoerg Lipp
Das einzige "Problem" ist hier /etc/mtab.
Was meinst Du damit?
mount kann /etc/mtab nicht mehr verändern. Deshalb auch
Post by Alexander Skwar
Post by Hansjoerg Lipp
# mount -o remount,ro /
# mount | grep /dev/hda6
/dev/hda6 on / type ext3 (rw)
^^^^
Post by Alexander Skwar
Post by Hansjoerg Lipp
# grep /dev/root /proc/mounts
/dev/root / ext3 ro 0 0
Grüße, Hansjörg
Dietrich Hernmarck
2004-11-05 14:05:26 UTC
Permalink
Hallo Hansjoerg,
Post by Hansjoerg Lipp
Post by Alexander Skwar
Post by Hansjoerg Lipp
Das einzige "Problem" ist hier /etc/mtab.
Was meinst Du damit?
mount kann /etc/mtab nicht mehr verändern. Deshalb auch
deshalb verwendet man in diesem Fall den Schalter -n der ein schreiben in
die mtab unterbindet, also

mount -n -o remount,ro /

und nachher

mount -n -o remount,rw /


Gruß Didi (rm-rf)
--
http://dietrich.hernmarck.de.vu
http://rm-rf.net.tc/

Für Fehler Haftet die Tastatur!
Hansjoerg Lipp
2004-11-05 15:46:56 UTC
Permalink
Post by Dietrich Hernmarck
Post by Hansjoerg Lipp
mount kann /etc/mtab nicht mehr verändern. Deshalb auch
deshalb verwendet man in diesem Fall den Schalter -n der ein schreiben in
die mtab unterbindet,
Keine Ahnung, wie mir diese Option bisher entgehen konnte.
Danke für den Hinweis!

Grüße, Hansjörg
Alexander Skwar
2004-11-05 16:55:33 UTC
Permalink
Post by Hansjoerg Lipp
Sieht bei Dir also auch nicht viel anders aus... Vielleich kannst Du ja
mit lsof/fuser herausfinden, welcher Prozess hier die Probleme
verursacht.
[17:48:56 ***@server:~/NESI] $ fuser -v -m /

USER PID ACCESS COMMAND
/ root 1 ....m init
root 714 ....m udevd
root 886 ....m devfsd
alexander 2365 .r.e. bash
root 3181 ....m xinetd
alexander 3616 .r..m wineserver
alexander 5558 .r.e. bash
alexander 5672 .r.e. wine
alexander 5673 .r..m wine-preloader
root 6278 ....m smbd
root 6280 ....m nmbd
root 6285 ....m smbd
alexander 6785 .r.e. bash
alexander 6881 .r.e. bash
alexander 7062 .r..m beep-media-play
alexander 7812 .r.e. bash
root 8001 ....m syslog-ng
root 8411 ....m ping
alexander 8875 .r.e. bash
root 9117 ....m qmgr
root 9165 ....m sshd
root 9212 ....m atd
root 9294 ....m hcid
root 9296 ....m sdpd
root 9298 ....m hidd
root 9344 ....m pppd
root 9345 ....m pppoe
alexander 9382 .r.e. bash
root 9409 ....m courierlogger
root 9410 ....m authdaemond.pla
alexander 9421 .r.e. LOGS
root 9422 ....m sh
root 9479 ....m authdaemond.pla
root 9480 ....m authdaemond.pla
root 9481 ....m authdaemond.pla
root 9482 ....m authdaemond.pla
root 9483 ....m authdaemond.pla
root 9559 ....m portmap
root 9569 ....m famd
root 9586 ....m couriertcpd
root 9588 ....m courierlogger
root 9659 ....m cupsd
root 9967 ....m dhcpd
root 10082 ....m esd
root 10261 ....m adsl-connect
root 10805 ....m master
root 11162 ....m squid
root 11165 ....m squid
root 11206 ....m cron
root 11282 ....m miniserv.pl
root 11496 ....m xfs
root 11638 ....m agetty
root 11639 ....m agetty
root 11640 ....m agetty
root 11641 ....m agetty
root 11642 ....m agetty
root 11643 ....m agetty
root 11645 ....m top
root 11646 ....m tload
root 11849 ....m gdm
alexander 12476 .r.e. bash
alexander 12497 .rc.m gconfd-2
alexander 12500 .r..m gnome-keyring-d
alexander 14026 .r..m courier-imapd
alexander 14030 .r..m courier-imapd
root 14141 ....m proxymap
root 14142 ....m trivial-rewrite
news 14240 ....m leafnode
news 14241 ....m leafnode
root 14251 ....m smtpd
root 14252 ....m cleanup
root 14253 ....m local
alexander 14357 .r.e. fuser
root 14403 ....m gdm
root 14412 ....m X
alexander 14581 .r.e. bash
alexander 14894 .r..m gnome-session
alexander 14919 .r..m gnome-keyring-d
alexander 14921 .rc.m bonobo-activati
alexander 14923 .rc.m gnome-settings-
root 14997 ....m xscreensaver
alexander 15021 .r..m gnome-smproxy
alexander 15026 .r..m metacity
alexander 15028 .r..m gnome-panel
alexander 15033 .rc.m gnome-vfs-daemo
alexander 15084 .rc.m wnck-applet
alexander 15086 .rc.m mixer_applet2
alexander 15088 .r..m gnome-terminal
alexander 15247 .rc.m clock-applet
root 15269 ....m gnome-pty-helpe
alexander 16880 .r..m gftp-gtk
root 19640 ....m named
alexander 20048 .r.e. LOGS
root 20049 ....m sh
alexander 20544 .r..m nautilus
alexander 20548 .rc.m mapping-daemon
alexander 22785 .r.e. bash
alexander 22811 .r.e. bash
alexander 23296 .r.e. bash
alexander 23650 .r.e. firefox
alexander 23698 .r.e. run-mozilla.sh
alexander 23705 .r..m firefox-bin
alexander 23852 .r.e. Thunderbird
alexander 23877 .r.e. thunderbird
alexander 23894 .r.e. run-mozilla.sh
alexander 23901 .r..m thunderbird-bin
alexander 23911 .r..m courier-imapd
alexander 25154 .r..m top
root 25231 ....m apache2
root 25236 ....m apache2
root 25237 ....m apache2
root 25238 ....m apache2
alexander 26025 .r.e. bash
alexander 26243 .r.e. bash
alexander 26307 .r.e. bash
alexander 26496 .r.e. bash
alexander 26553 .r.e. bash
alexander 28268 .rc.m nautilus-throbb
alexander 28411 .r.e. bash
alexander 29948 .r.e. bash
alexander 30008 .r.e. bash
alexander 30076 .r..m konqueror
alexander 30078 .r..m kdeinit
alexander 30081 .r..m kdeinit
alexander 30083 .r..m kdeinit
alexander 30085 .r..m kdeinit
alexander 30088 .r..m kdeinit
alexander 31259 .r.e. bash
alexander 31310 .r.e. bash
alexander 31369 .r.e. bash
alexander 31511 .r.e. bash
alexander 31642 .r.e. bash
alexander 31726 .r.e. bash
root Kernel mount /
root Kernel mount /opt

Hmmm.... 'ne ganze Menge, oder? Mache ich was flasch?

Alexander Skwar
--
The best way to make a fire with two sticks is to make sure one of them
is a match.
-- Will Rogers
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Hansjoerg Lipp
2004-11-05 17:53:41 UTC
Permalink
Post by Hansjoerg Lipp
Sieht bei Dir also auch nicht viel anders aus... Vielleich kannst Du ja
mit lsof/fuser herausfinden, welcher Prozess hier die Probleme
verursacht.
[ viel output ]

Hmmm, wenn man fuser nicht beibringen kann, nur Prozesse auszugeben, die
das fs beschreiben, ist vielleicht etwas wie
lsof / | awk '$4~/^[0-9]+[wu]/'
besser?

Grüße, Hansjörg
Alexander Skwar
2004-11-06 05:55:54 UTC
Permalink
Post by Hansjoerg Lipp
Hmmm, wenn man fuser nicht beibringen kann, nur Prozesse auszugeben, die
das fs beschreiben, ist vielleicht etwas wie
lsof / | awk '$4~/^[0-9]+[wu]/'
besser?
[06:53:51 ***@server:~/NESI] $ /usr/sbin/lsof / | awk '$4~/^[0-9]+[wu]/'
[06:53:55 ***@server:~/NESI] $ sudo mount -n -o remount,ro /
mount: / wird gerade benutzt

Wie gesagt, / ro zu remounten ist *etwas* arg schwer :) Wäre aber
"trotzdem" an einer Lösung interessiert .

Alexander Skwar
--
Brian Griffin: Face it Peter, you get competitive about everything.
Peter Griffin: I am so not competitive. In fact, I am the least non-competitive.
So I win.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Hansjoerg Lipp
2004-11-06 14:05:03 UTC
Permalink
Post by Alexander Skwar
Post by Hansjoerg Lipp
Hmmm, wenn man fuser nicht beibringen kann, nur Prozesse auszugeben, die
das fs beschreiben, ist vielleicht etwas wie
lsof / | awk '$4~/^[0-9]+[wu]/'
besser?
Auch als root? Und um es wirklich auszuschließen: bei Dir gibt lsof in
der 4. Spalte auch den fd aus?
Post by Alexander Skwar
mount: / wird gerade benutzt
Wie gesagt, / ro zu remounten ist *etwas* arg schwer :)
Mit -f nicht ;)
Post by Alexander Skwar
Wäre aber "trotzdem" an einer Lösung interessiert .
Ich auch, da ich kürzlich ein ähnliches Problem hatte, aber keine Zeit,
die Ursache herauszufinden. Und natürlich kann ich es jetzt nicht mehr
reproduzieren...

Eigentlich sollten hier doch nur fs/super.c:do_remount_sb() und
fs/file_table.c:fs_may_remount_ro() relevant sein? Da die zweite
Bedingung (Writable file) nicht zutrifft (lsof) bleibt eigentlich nur
die Möglichkeit, dass ein Prozess noch eine gelöschte Datei geöffnet
hält.

Mal testen:

***@hobbes:~> touch /tmp/testrm && sleep 10000 < /tmp/testrm &
[1] 4840
***@hobbes:~> lsof /tmp
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sleep 4840 hj 0r REG 3,72 0 189 /tmp/testrm
***@hobbes:~> rm /tmp/testrm
***@hobbes:~> lsof /tmp
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sleep 4840 hj 0r REG 3,72 0 189 /tmp/testrm (deleted)
***@hobbes:~>

Was sagt "lsof / | grep deleted"?

Grüße, Hansjörg
Alexander Skwar
2004-11-06 14:55:27 UTC
Permalink
Post by Hansjoerg Lipp
Post by Alexander Skwar
Post by Hansjoerg Lipp
Hmmm, wenn man fuser nicht beibringen kann, nur Prozesse auszugeben, die
das fs beschreiben, ist vielleicht etwas wie
lsof / | awk '$4~/^[0-9]+[wu]/'
besser?
Auch als root?
Das ist mir peinlich :(

[15:39:41 ***@server:~] $ sudo /usr/sbin/lsof / | awk '$4~/^[0-9]+[wu]/'
udevd 787 root 0u CHR 1,3 36869 /dev/null
udevd 787 root 1u CHR 1,3 36869 /dev/null
udevd 787 root 2u CHR 1,3 36869 /dev/null
smbd 10687 root 4u REG 3,7 8192 4585 /etc/samba/private/secrets.tdb
smbd 10703 root 4u REG 3,7 8192 4585 /etc/samba/private/secrets.tdb

Hm, wie ist's bei anderen Distributionen (hier Gentoo)? Ist da die
secrets.tdb in /etc? Oder wo ist die? So spontan fände ich die
in /var/lib/samba passender aufgehoben.

Der laufende udevd ist übrigens *kein* Problem. Gerade ausprobiert.
Nachdem ich samba beendet habe, kann ich / ro,remount machen (Deutsch
toll Satz).
Post by Hansjoerg Lipp
Post by Alexander Skwar
mount: / wird gerade benutzt
Wie gesagt, / ro zu remounten ist *etwas* arg schwer :)
Mit -f nicht ;)
*G* Nach 'nem kill -9 1 auch nicht. :)
Post by Hansjoerg Lipp
Was sagt "lsof / | grep deleted"?
Nüscht.

Alexander Skwar
--
Don't worry if you're a kleptomaniac; you can always take something for it.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Hansjoerg Lipp
2004-11-06 15:55:06 UTC
Permalink
[...]
Post by Alexander Skwar
udevd 787 root 0u CHR 1,3 36869 /dev/null
udevd 787 root 1u CHR 1,3 36869 /dev/null
udevd 787 root 2u CHR 1,3 36869 /dev/null
smbd 10687 root 4u REG 3,7 8192 4585 /etc/samba/private/secrets.tdb
smbd 10703 root 4u REG 3,7 8192 4585 /etc/samba/private/secrets.tdb
Hm, wie ist's bei anderen Distributionen (hier Gentoo)? Ist da die
secrets.tdb in /etc? Oder wo ist die?
Isch 'abe keine Samba.
Post by Alexander Skwar
So spontan fände ich die in /var/lib/samba passender aufgehoben.
ACK
Post by Alexander Skwar
Der laufende udevd ist übrigens *kein* Problem. Gerade ausprobiert.
Nur reguläre Dateien sind problematisch.
Post by Alexander Skwar
Nachdem ich samba beendet habe, kann ich / ro,remount machen (Deutsch
toll Satz).
Gut das Nachricht sein.
Post by Alexander Skwar
Post by Hansjoerg Lipp
Was sagt "lsof / | grep deleted"?
Nüscht.
Dann haben wir ja den Schuldigen. Bei mir muss es aber eine andere
Fehlerursache geben :-/

Grüße, Hansjörg

Loading...