Forum: PC Hard- und Software swap auf nicht (mehr) vorhandenem device


von Dergute W. (derguteweka)


Lesenswert?

Moin,

Folgendes Problem:
Auf nem (Linux)rechner mit eingebauten Platten sda und sdb hatte ich per 
usb eine weitere Platte angeschlossen (sdc).
Auf der sdc war eine swap-partition, die ich per swapon /dev/sdc2 
verwendet hatte.
Nun gabs ein kleines Kabeloopsie am USB-Stecker, sdc war weg.
Die und andere Platten werden seither (hab' noch nicht rebootet) nur 
noch als sdd,sde, etc. "erkannt", weil ja diese olle Swappartition noch 
"an" ist. (swapon listet die noch auf, mit swapoff /dev/sdc2 kommt 
natuerlich nur "swapoff: /dev/sdc2: swapoff failed: No such file or 
directory")
Zusaetzlich sind natuerlich im kernellog jede Menge Meldungen 
"Write-error on swap-device (8:32:xyzblafasel)".
Ich bin mir ziemlich sicher, dass das nach einem reboot alles wieder gut 
sein wird.
Nur frag' ich mich/euch - gibt's fuer diese Situation einen Weg, ohne 
reboot den Kernel davon zu ueberzeugen, den swap auf /dev/sdc2 
"loszulassen"? (Der wird eh' grad nicht gebraucht ;-))

Gruss
WK

von Harald K. (kirnbichler)


Lesenswert?

Lustige Idee, einem Rechner im laufenden Betrieb die Swap-Partition zu 
klauen und zu erwarten, daß der das unbeschadet übersteht.

Bitte: Welche Aufgabe hat eine Swap-Partition, und warum werden da 
überhaupt irgendwelche Daten draufgeschrieben?

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

Dergute W. schrieb:
> Ich bin mir ziemlich sicher, dass das nach einem reboot alles wieder gut
> sein wird.

denn mach das doch :-]

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Harald K. schrieb:
> und zu erwarten, daß der das unbeschadet übersteht.

Ich hab' nicht erwartet, dass der das unbeschadet uebersteht, es hat 
mich auch erstaunt, dass so garnix "schlimmes" passiert ist. Ich hab' 
das mit dem swap eher nur zufaellig deutlich spaeter entdeckt, wollte im 
kernellog eigentlich was ganz anderes gucken...


Gruss
WK

von Fred F. (fred08151)


Lesenswert?

Die Frage ist eher, was läuft auf dem Rechner?
Wenn nur der Browsercache in den Swap gewandert ist, wird wohl nicht 
viel passieren.
Bei einer DB kann das schon übler sein.
Ansonsten vm.swappiness=1 setzen, damit er nach Möglichkeit keinen Swap 
benutzt, in der fstab die UUIDs der Partitionen angeben, statt /dev/sda 
etc.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich hab' nicht gefragt, was ich in Zukunft machen kann (und ich glaube 
nicht, dass uuids bei dieser Konstellation auch nur einen Furz besser 
gewesen waeren)
und  - ja - tataechlich weiss ich auch, fuer was swap gut ist. Das ist 
alles nicht der springende Punkt.
Ich hab' gefragt, ob jemand was weiss, was ich momentan machen kann 
(ausser Reboot).
Und ja, ein reboot ist auf dem Rechner kein Problem. Aber es gibt 
Rechner, auf denen waere das ein Problem. Und weil ich gerne auch mal 
was dazulerne, waere es interessant gewesen, wenn da wer "einen Trick17" 
kennt...

Gruss
WK

von Harald K. (kirnbichler)


Lesenswert?

Dergute W. schrieb:
> Aber es gibt
> Rechner, auf denen waere das ein Problem. Und weil ich gerne auch mal
> was dazulerne, waere es interessant gewesen, wenn da wer "einen Trick17"
> kennt...

Rechnern das Swap wegzunehmen ist vergleichbar mit dem Ausbau von RAM im 
Betrieb.

Da ist der einzige Trick ein Reboot, und beten, daß nichts wichtiges im 
Swap stand.

von Lu (oszi45)


Lesenswert?

1. Es gibt SW, die will/muss unbedingt was auslagern, andere nicht. Im 
Prinzip ist man hinterher nur klüger. Mit etwas Glück war der RAM noch 
groß genug und es wurde wenig ausgelagert.

2. Mannn könnte natürlich die jetzt ausgebaute Swap-Platte lesend 
genauer ansehen/vergleichen?

3.> gibt's fuer diese Situation einen Weg, ohne reboot den Kernel davon 
zu ueberzeugen
Ob das gut geht, weiß ich nicht.

: Bearbeitet durch User
von Bauform B. (bauformb)


Lesenswert?

Du bist doch ein Gefahrensucher und hast ein aktuelles Backup und suchst 
ein neues Abenteuer ;)

Dergute W. schrieb:

> "swapoff: /dev/sdc2: swapoff failed: No such file or directory"
> "Write-error on swap-device (8:32:xyzblafasel)"

und nicht "No such device or address". Wenn man das wörtlich nimmt...
1
cd /dev
2
mknod sdc b 8 32
3
mknod sdc2 b 8 34
4
swapoff /dev/sdc2
So richtig gute Vorsichtsmaßnahmen fallen mir jetzt keine ein, 
vielleicht vorher die meisten Programme beenden und remount,ro oder sync 
machen? Oder gerade das nicht? Aber beim normalen Runterfahren passiert 
genau das.

Ein interessanter Fall; wie robust ist der kernel bei einem 
Fehler-der-eigentlich-nicht-passieren-kann?

von G. K. (zumsel)


Lesenswert?

Dergute W. schrieb:

> Und ja, ein reboot ist auf dem Rechner kein Problem. Aber es gibt
> Rechner, auf denen waere das ein Problem.

Lerne durch Schmerz das du solche Rechner nicht von Deppen betreiben 
lässt.

von G. K. (zumsel)


Lesenswert?

Bauform B. schrieb:

> Ein interessanter Fall; wie robust ist der kernel bei einem
> Fehler-der-eigentlich-nicht-passieren-kann?

Dann klappt die CPU ihre Beinchen nach oben um nicht noch mehr kaputt zu 
machen.

von Jörg (jrg_e)


Lesenswert?

Reboot und gut ist...
Wenn irgendwas kaputt geht, dann auf sdc1 und das ist eh schon zu spät.

: Bearbeitet durch User
von Carypt C. (carypt)


Lesenswert?

ich habe keine Ahnung davon, aber Wikipedia sagt zu swap-Partitionen, 
daß man auch mehrere anlegen und löschen kann.

von Hmmm (hmmm)


Lesenswert?

Bauform B. schrieb:
> Ein interessanter Fall; wie robust ist der kernel bei einem
> Fehler-der-eigentlich-nicht-passieren-kann?

In so einem Fall kann er nichts tun. Sobald etwas vom jetzt fehlenden 
Swap-Device gebraucht wird, dürfte mindestens der entsprechende Prozess 
abschmieren, auch eine Kernel Panic wäre denkbar.

Mit Swap auf einem RAID-Array ist das entspannter.

Carypt C. schrieb:
> ich habe keine Ahnung davon

Warum sagst Du dann etwas dazu?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Bauform B. schrieb:
> und nicht "No such device or address". Wenn man das wörtlich nimmt...cd
> /dev
> mknod sdc b 8 32
> mknod sdc2 b 8 34
> swapoff /dev/sdc2

Der einzig adequate Vorschlag bis jetzt :-)
Gab aber auch nur ein
1
swapoff: /dev/sdc2: swapoff failed: No such device or address
Auch wenn /dev/sdd2 die naemliche swap partition ist, und ich in /dev 
ein
1
ln -s sdd2 sdc2
gemacht habe, kommt
1
swapoff: /dev/sdc2: swapoff failed: Invalid argument

Und weils vielleicht nicht jedem klar ist:
Ich frag' nicht aus Verzweiflung, sondern aus reiner technischer 
Neugier.

Gruss
WK

von Norbert (der_norbert)


Lesenswert?

Dergute W. schrieb:
> Der einzig adequate Vorschlag bis jetzt :-)

Ähm … nein.

Jede swap Partition hat natürlich eine eigenständige, einmalige UUID.
So leicht lässt der Kernel sich nun auch wieder nicht verarsc…  ;-)

von Bauform B. (bauformb)


Lesenswert?

Norbert schrieb:
> Ähm … nein.

Ja, viel Hoffnung hatte ich nicht. Mach' einen besseren Vorschlag!

> Jede swap Partition hat natürlich eine eigenständige, einmalige UUID.
> So leicht lässt der Kernel sich nun auch wieder nicht verarsc…  ;-)

Was habt ihr immer mit dieser UUID? Der Kernel kennt sowas nicht¹. Das 
ist eine Notlösung für Distributionen damit die Installation einfacher 
wird. Vor allem ist die UUID für diese Aufgabe hier mehrere Ebenen zu 
weit oben angesiedelt.


1) inzwischen vielleicht doch? Wäre schade.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wenn auf dem Rest nicht zu viel ausgelagert ist, könntest du schauen, ob 
er bei "swapoff -a" nicht bloß dumm in /etc/fstab guckt (und dann wieder 
"No such file or directory" sagt), sondern stattdessen eine interne 
Liste durchgeht. Viel Hoffnung hätte ich aber da nicht.

Ansonsten ist das Device zwar halt intern noch geöffnet jedoch nicht 
mehr zugreifbar, und es kommt natürlich auch durch erneutes Anstecken 
nicht wieder herbei, da das erneute Anstecken natürlich ein neues Device 
produziert, denn das vorige ist ja noch belegt, und irgendeine 
persistente Kennung in Form eines "Fingerabdrucks", die dem Kernel sagt, 
dass das Gerät jetzt das gleiche ist wie das zuvor, gibt es (sehr 
wahrscheinlich) nicht.

Dumm gelaufen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Habe mir mal den Sourcecode von swapon/swapoff in FreeBSD angesehen, wie 
zu erwarten, wird dort bei -a nur die fstab durchgegangen.

von Bauform B. (bauformb)


Lesenswert?

Jörg W. schrieb:
> Wenn auf dem Rest nicht zu viel ausgelagert ist, könntest du schauen, ob
> er bei "swapoff -a" nicht bloß dumm in /etc/fstab guckt (und dann wieder
> "No such file or directory" sagt), sondern stattdessen eine interne
> Liste durchgeht. Viel Hoffnung hätte ich aber da nicht.

swapoff -a macht beides?
1
strace swapoff -a
2
openat(AT_FDCWD, "/proc/swaps", O_RDONLY|O_CLOEXEC) = 3
3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
4
read(3, "Filename\t\t\t\tType\t\tSize\t\tUsed\t\tPr"..., 1024) = 39
5
read(3, "", 1024)                       = 0
6
close(3)                                = 0
7
getuid()                                = 2024
8
newfstatat(AT_FDCWD, "/etc/fstab", {st_mode=S_IFREG|0644, st_size=713, ...}, 0) = 0
9
openat(AT_FDCWD, "/etc/fstab", O_RDONLY|O_CLOEXEC) = 3
10
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=713, ...}, AT_EMPTY_PATH) = 0
11
read(3, "# /etc/fstab: static file system"..., 4096) = 713

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bauform B. schrieb:

> swapoff -a macht beides?

Naja, dann doch lieber den Sourcecode ansehen:

https://github.com/util-linux/util-linux/blob/master/sys-utils/swapoff.c
1
  /*
2
   * In case /proc/swaps exists, unswap stuff listed there.  We are quiet
3
   * but report errors in status.  Errors might mean that /proc/swaps
4
   * exists as ordinary file, not in procfs.  do_swapoff() exits
5
   * immediately on EPERM.
6
   */

Könnte also funktionieren.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Norbert schrieb:
> Dergute W. schrieb:
>> Der einzig adequate Vorschlag bis jetzt :-)
>
> Ähm … nein.

Aehm - doch.
Ich erwarte ja nicht, dass jeder Vorschlag gleich ootb funktioniert. 
Aber er passt wenigstens zu meiner Problemstellung.
Ich brauch' niemanden, der mir erklaert, was ein swap ist, oder dass es 
nicht so toefte ist, den im laufenden Betrieb zu entfernen, oder mir aus 
der wikipedia vorliest (Wenigstes ist mir hier ChatGPT noch erspart 
geblieben). Sonst haett' ich das angefragt.
Insofern danke ich explizit fuer diesen Beitrag, wie auch fuer die 
anderen fachlich fundierten Beitraege.

Beim rebooten ist nix unerwartetes/aussergewoehnliches passiert.

Gruss
WK

von Norbert (der_norbert)


Lesenswert?

Dergute W. schrieb:
> Beim rebooten ist nix unerwartetes/aussergewoehnliches passiert.

Den hättest du auch ohne all die Kapriolen machen können.
Im bequemsten Fall sogar mir Alt-SysReq und dem reisub Limbo.

Vor allem hast du keinerlei Information darüber ob und wenn ja wie mit 
dirty pages umgegangen wurde.

Aber nach einem reboot ist ja nun alles automagisch bereinigt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.