もはや存在しないスワップパーティションを削除する方法は?

もはや存在しないスワップパーティションを削除する方法は?

私のハードドライブにスワップパーティション(/dev/sdb3)がありますが、最終的に失敗しました。ドライブを取り外して交換しました。新しいスワップが作成され、fstabが更新され、開かれたが(/dev/sdc3)、古いスワップはまだ/proc/swapsにリストされていますが(deleted)

[root@server01 ~]# cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/sdc3                               partition   4194300 0   -2
/dev/sdb3\040(deleted)                  partition   4194300 0   -1
/dev/sda3                               partition   4194300 0   -3

スワップを外してみました。 swapoff /dev/sdb3失敗したそのファイルやディレクトリはありません。。 swapoff -aとswapon -aはエラーなしで動作しているようですが、/ proc / swapはまだ削除されたスワップを一覧表示します。

実際に存在しないスワップを削除する方法は?必要に応じて、システムはまだスワップスペースを使用しようとしますか?どうしたの?

追加の背景:サーバーが再起動に失敗し、ドライブがホットスワップインターフェイスを介して交換されました。これらのドライブはAHCI SATAドライブであり、RAIDコントローラ、HBA、またはその他の特別なインターフェイスを経由しません。 / dev / sdbが失敗してもはや存在しなくなりましたが、同じポートに接続すると、新しいドライブは/ dev / sdcになります。 /dev/sdaが存在し、全体的にうまく機能します。

注:別のネチズンが尋ねた。スワップが削除済みとしてマークされる原因、原因はわかりますが、削除方法がわかりません。

ベストアンサー1

システムを再起動する必要があります。

カーネルは、データを書き込むときに削除されたスワップパーティション/ファイルを無視する必要があります。

読み込み中にページを交換しようとするすべてのプロセスは終了します(どの信号が送信されるかはわかりませんが、修正不可能なメモリエラーを含むページにアクセスしようとしたときに送信されたのと同じ信号だと思います)。特定のカーネル構成によっては、カーネルパニックが発生し、システムクラッシュが発生する可能性があります。これは理想的に再起動する必要がある重要な理由です。スワップスペースを無効にすると、そこに保存されているすべてのページが再スワップまたは別のスワップスペースに移動されるため、存在せずにデータストアを含むスワップスペースを無効にするとプロセスが終了する可能性があるためです。予告なし。

お客様の場合は、スワップ領域に関するデータがないため、無効にしても安全です。ただし、見つかったようにスワップ領域を無効にするコマンドラインツールは、存在しないデバイスでは正しく機能しません。後で参照できるように同様の状況を回避するには、切断する前に障害が発生したストレージデバイスのすべてのスワップスペースを無効にする必要があります。

/etc/fstabまた、再起動後に再更新する必要があります。アクティブであるが存在しないスワップパーティションは、再起動時に解放される削除済みストレージデバイスへの参照を保持しています。デバイスの列挙順序は再起動するまで通常の順序とは異なるため、再起動後に/dev/sdc現在の順序に変更されることがあります/dev/sdb

おすすめ記事