Linux 커널에는 루트 사용자로부터 하드 드라이브 영역(예: 하드 드라이브의 마지막 1GB)을 숨기거나 적어도 어떤 방식으로든 해당 영역을 완전히 쓸 수 없게 만드는 데 사용할 수 있는 기능이 있습니까?
답변1
ATA 사양에는 "호스트 보호 영역"이라는 것이 있습니다.
이는 장치의 용량이 인위적으로 전체 용량보다 작게 설정되었음을 의미합니다. 보고된 최대 LBA를 초과하는 영역은 해당 호스트에 대한 보호 영역이며 영역 잠금을 해제하는 특수 명령을 보낸 후에만 액세스할 수 있습니다.
이는 사용자가 실수로 디스크를 다시 파티션하고 결국 파티션이 아닌 복구 파티션을 지우지 않도록 복구 데이터를 저장하는 데 사용됩니다. 내 2004 IBM Thinkpad는 이것을 구현하고 완벽하게 작동합니다.
이는 귀하의 애플리케이션에 유용할 수 있습니다.
답변2
아니요, 블록 장치의 컨트롤러가 영역이 읽기 전용이라고 결정하지 않는 한 루트는 항상 블록 장치에 쓸 수 있습니다. 예: SD 카드의 읽기 전용 스위치를 켜면 SD 카드 컨트롤러가 쓰기를 허용하지 않습니다. 예를 들어 전화기나 TV에는 디코더 키가 포함된 읽기 전용 파티션이 있는 플래시 메모리 장치가 있습니다.
소비자 하드 드라이브의 경우 펌웨어를 수정해야 합니다. 그렇지 않으면 루트가 모든 바이트에 액세스할 수 있습니다.