단일 파티션이 있는 드라이브가 몇 개 있다고 가정해 보겠습니다. 어떤 이유에서인지 나는 fdisk
여러 개의 파티션을 생성한 다음 파티션 테이블에 쓰고 종료합니다 fdisk
. 이 시점에서 커널은 여전히 새 파티션 테이블에 대해 알지 못합니다. 초기 파티션은 여전히 NFS를 통해 마운트되어 있고 umount -l
이전에 "lazy unmounted"()였기 fdisk
때문에 "device or resources busy" 오류가 발생했습니다.
이제 마음을 바꾸고 fdisk
다시 부팅하여 원래와 똑같이 모든 파티션을 하나로 병합했습니다. 그런 다음 파티션 테이블에 다시 기록하고 종료했는데도 fdisk
커널은 방금 무슨 일이 일어났는지 전혀 모릅니다.
마지막으로 rm -rf
모든 것을 디스크에 복사한 다음 그 위에 새로운 데이터를 복사합니다.
문제는 다음에 재부팅할 때 커널이 "새"(그러나 이전과 동일한) 파티션 테이블을 보게 되면 어떻게 될까요? 시스템이 데이터를 직접 읽을 수 있나요?
답변1
파티션 테이블은 디스크와 RAM의 두 위치에 저장됩니다. 디스크는 업데이트했지만 RAM은 업데이트하지 않은 다음 디스크를 다시 변경한 것 같습니다. 따라서 커널이 여전히 RAM에 있는 것을 실행하고 있고 다음에 부팅할 때 디스크에서 동일한 내용을 읽는다면 작동할 것입니다.
그러나 이전 파일 시스템이 실제로 마운트 해제되었는지 매우 주의해야 합니다. umount -l
아무것도 제거하지 마십시오. 여전히 마운트된 상태에서 다시 마운트하고 데이터 변경을 시작하면 문제가 발생하는 것입니다.
귀하가 게시한 이 질문과 다른 질문에 따르면 재부팅이나 NFS 서버 재구성을 피하기 위해 이 디스크에서 점점 더 많은 작업을 수행하려고 시도하여 더 깊고 깊은 구멍을 파고 있는 것 같습니다. 이러한 팁이 모두 효과가 있을 수 있지만 어디에서든 실수가 발생하면 심각한 데이터 손상이 쉽게 발생할 수 있습니다. 백업이 최신 상태인지 확인하세요.