더 이상 존재하지 않는 스왑 파티션을 삭제하는 방법은 무엇입니까?

더 이상 존재하지 않는 스왑 파티션을 삭제하는 방법은 무엇입니까?

내 하드 드라이브에 스왑 파티션(/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.

관련 정보