파일을 삭제하고 즉시 후회한 적이 있습니까? 신속하고 신속하게 반환해야 합니다. 그러나 파일이 너무 새 것이고 아직 백업되지 않은 경우에는 어떻게 합니까? 다행히도 할 수 있는 일이 있습니다.
목차
rm: Remorse의 줄임말인가요?
rm 명령을 사용하는 것은 너무나 쉬운 일이며 깊은 후회로 터미널 창을 응시하고 있는 자신을 발견하게 됩니다. 와일드카드를 사용한 작은 실수로 의도한 것보다 훨씬 더 많은 것을 지울 수 있습니다.
기본 Linux 파일 시스템인 ext4는 inode를 사용하여 각 파일에 대한 데이터를 저장하고 inode 테이블을 사용하여 inode를 추적합니다. inode에는 파일 이름, 소유자, 사용 권한 등과 같은 파일에 대한 메타데이터가 포함되어 있습니다.
또한 파일을 가리키는 하드 링크에 대한 진입점도 포함합니다. 각 파일에는 적어도 하나의 하드 링크가 있습니다. 새 하드 링크를 만들 때마다 하드 링크 수가 하나씩 증가합니다. 하드 링크를 제거할 때마다 inode의 하드 링크 수가 하나씩 줄어듭니다.
inode가 사용되지 않은(그리고 재사용할 준비가 된) 것으로 표시된 파일을 삭제하면 마지막 하드 링크가 제거됩니다. 이 경우 파일은 디렉토리 목록에 나타나지 않으며 사용하거나 액세스할 수 없습니다.
그러나 파일의 내용을 구성하는 데이터는 여전히 하드 드라이브에 있습니다. 그러나 올바른 정보를 포함하도록 inode를 패치할 수 있다면 파일이 복원될 것입니다. 물론 이것은 하드 드라이브의 파일을 구성하는 데이터가 손상되지 않고 덮어쓰여지지 않은 경우에만 작동합니다.
또는 새 inode를 만들고 이전 inode에서 남아 있는 데이터를 복사한 다음 누락된 비트를 교체할 수 있습니다.
사소한 활동들입니다. 일반적으로 실수로 파일을 삭제하면 최악의 순간입니다. 항상 그 파일이 필요할 때, 그리고 지금 필요합니다. 섹터 편집기 및 기타 유틸리티를 사용하고 더러워질 시간이 없습니다. 또한 방금 만든 파일이라면 아직 백업되지 않았을 가능성이 높으므로 도움이 되지 않습니다.
여기에서 testdisk가 필요합니다. 사용하기 쉽고 파일 시스템에 대한 상세하고 낮은 수준의 지식이 필요하지 않습니다. 사용방법에 대해 알아보겠습니다!
테스트 디스크 설치
Ubuntu에 testdisk를 설치하려면 다음 명령을 사용하십시오.
sudo apt-get install testdisk
Fedora에서는 다음을 입력해야 합니다.
sudo dnf install testdisk
Manjaro에서는 pacman을 사용해야 합니다.
sudo pacman -Sy testdisk
테스트 디스크 사용
터미널 창에서 실행되지만 testdisk에는 기본적인 인터페이스가 있습니다. 화살표 키를 사용하여 탐색하고 Enter 키를 사용하여 선택합니다. 깔끔하게 유지하려면 복원된 파일을 위한 디렉토리를 만드는 것이 가장 좋습니다.
복원된 파일에 대해 “restored”라는 디렉터리를 만들기 위해 다음을 입력합니다.
mkdir restored
다음을 입력하여 새 디렉토리로 전환하고 거기에서 testdisk를 시작합니다.
cd restored/
testdisk와 함께 sudo를 사용해야 하므로 다음을 입력합니다.
sudo testdisk
testdisk가 묻는 첫 번째 질문은 로깅에 관한 것입니다. 새 로그 파일을 만들거나 기존 파일을 사용하거나 아무 것도 기록하지 않을 수 있습니다. 어떤 옵션을 선택하든 상관 없습니다. testdisk가 작동하는 방식에는 영향을 미치지 않습니다.
Enter 키를 눌러 강조 표시된 옵션을 수락하고 새 로그 파일을 만들 수 있습니다. testdisk를 시작한 디렉토리에 생성됩니다. 선택하면 testdisk는 작업하려는 파일 시스템이 있는 하드 드라이브를 묻습니다.
찾을 수 있는 하드 드라이브와 squashfs “/dev/loop” 파일이 나열됩니다. 스냅에서 설치한 각 애플리케이션에 대해 이들 중 하나가 있을 것입니다. 읽기 전용이므로 이러한 파일 시스템에서 아무 것도 삭제하지 말았어야 합니다.
이 테스트 컴퓨터에는 물리적 하드 드라이브가 하나만 있으므로 아래쪽 화살표를 사용하여 “/dev/sda” 옵션을 강조 표시했습니다. 그런 다음 오른쪽 화살표를 사용하여 “진행”을 선택한 다음 Enter 키를 누릅니다.
testdisk는 파티션 유형도 알아야 합니다. 하단에 자동 감지되는 파티션 유형과 함께 옵션 메뉴가 표시됩니다.
합당한 이유가 없는 한 자동 감지된 파티션 유형을 강조 표시한 다음 Enter 키를 누릅니다.
표시되는 기능 메뉴에서 “고급”을 강조 표시한 다음 Enter 키를 누릅니다.
파티션 선택 메뉴가 나타납니다.
우리가 찾고 있는 파일은 Linux 파일 시스템 파티션에 있습니다. 하드 드라이브에는 Linux 파티션이 하나만 있지만 더 있을 수도 있습니다.
파일이 있던 파티션을 선택하고 왼쪽 및 오른쪽 화살표 키를 사용하여 “목록”을 선택한 다음 Enter 키를 누릅니다. 파일 선택 메뉴가 나타납니다.
위쪽 및 아래쪽 화살표 또는 PgUp 및 PgDn 키를 사용하여 파일 및 디렉터리 목록을 탐색합니다. 디렉토리로 들어가려면 오른쪽 화살표 또는 Enter를 누르고 디렉토리를 종료하려면 왼쪽 화살표 또는 Esc를 누르십시오.
dave가 소유한 파일을 찾고 있습니다. 모든 사용자 계정에 대한 파일은 “홈” 디렉토리에 있습니다. 따라서 “홈” 디렉토리를 강조 표시한 다음 오른쪽 화살표 또는 Enter를 눌러 해당 디렉토리로 들어갈 수 있습니다.
그러면 모든 사용자 계정이 나열됩니다. dave를 강조 표시한 다음 오른쪽 화살표 또는 Enter를 눌러 해당 디렉토리로 들어갑니다.
이제 dave 계정에 속한 파일을 볼 수 있습니다. 빨간색으로 표시된 항목은 삭제되었습니다. 복구하려는 파일을 찾을 때까지 파일과 디렉토리를 탐색합니다.
파일을 복구하려면 해당 파일을 강조 표시한 다음 c(소문자)를 누르십시오.
디스플레이가 변경되고 복구된 파일의 대상을 선택하라는 메시지가 표시됩니다. “Restored”라는 디렉토리를 만들고 이 디렉토리에서 testdisk를 시작했기 때문에 목록(.)의 첫 번째 항목이 해당 디렉토리입니다. 이 삭제된 파일을 해당 디렉토리로 복구하려면 C(대문자)를 누릅니다.
이렇게 하면 파일 선택 화면으로 돌아갑니다. 더 많은 파일을 복구하려면 이 과정을 반복하면 됩니다. 삭제된 파일을 선택하고 c(소문자)를 눌러 복사한 다음 C(대문자)를 눌러 복구합니다.
복원된 파일 작업
파일을 복원한 후 디렉터리 트리가 원래 위치로 재구성되어 하드 드라이브에서 원래 파일이 있던 위치를 알려 주기 때문에 유용합니다. 즉, 다시 복사해야 하는 경우 어디에 저장할지 알 수 있습니다.
동일한 파일 이름을 가진 다른 파일 시스템 위치에서 여러 파일을 복구하는 경우 어쨌든 별도로 저장해야 합니다.
다음을 입력하여 “Restored” 디렉토리의 내용을 볼 수 있습니다.
ls
testdisk에 로그 파일을 생성하도록 요청했다면 “Restored” 디렉토리에 있을 것입니다. 복구된 파일은 “/home/dave”에 있기 때문에 동일한 이름의 디렉토리에 중첩된 “Restored” 디렉토리에 복사되었습니다.
cd를 사용하여 복사된 “dave” 디렉토리로 변경할 수 있습니다. 경로에 선행 슬래시(/)를 포함하지 않았는지 확인하십시오. 시스템 “/home”이 아닌 로컬 “home”으로 변경하려고 합니다.
다음을 입력합니다.
cd home/dave
복구된 파일은 해당 디렉토리에 있으므로 다음을 입력합니다.
ls
-l(긴 목록) 옵션을 사용하여 복구된 파일을 다시 살펴보겠습니다.
ls -l
testdisk를 실행하기 위해 sudo를 사용했기 때문에 복구된 파일은 “루트” 소유자로 복원되었습니다. chown을 사용하여 소유자를 다시 “dave”로 변경할 수 있습니다.
sudo chown dave.dave *
올바른 소유권이 복원되었는지 확인하기 위해 다음을 입력합니다.
ls -l
testdisk: 구호를 위한 코드
방금 전에 복구할 수 없을 정도로 잃어버렸던 중요한 파일을 복구한 후의 그 안도감은 항상 감사하게 생각하는 것입니다.
이것이 바로 testdisk가 편리한 유틸리티인 이유입니다. 메뉴를 통과하고 파일 복원을 시작할 수 있으면 하이라이트, c, c, 반복의 리듬에 빠지기 쉽습니다.