많은 Linux 사용자가 그렇게 생각하는 것처럼 저는 수년에 걸쳐 수많은 스레드, 블로그 게시물, 비디오 등의 조언을 따랐으며 설정을 개선하기 위해 시스템 파일을 다양하게 변경했습니다.
이들 중 일부는 키보드 레이아웃 또는 마우스 설정 변경/수정과 같은 개인 취향 및 사용자 정의를 위한 것입니다. 일부 제조업체별 문제로 인해 잠자기 상태에서 깨어나지 않는 노트북을 고치거나 오디오가 제대로 작동하도록 오디오 드라이버 구성을 조작하는 등의 문제 해결에 더 중점을 두는 경우도 있습니다.
이제 새로 설치하여 다시 시작하고 싶습니다. 나는 동일한 배포판과 동일한 노트북을 사용할 계획이므로 원하는 방식으로 작동하도록 하거나 전혀 작동하도록 하려면 이러한 변경을 다시 수행해야 할 가능성이 높습니다.
당신은 가지고 있습니까?영리한재설치 후 다시 적용해야 할 수 있는 몇 년 동안 변경한 사항이 무엇인지 어떻게 알 수 있나요?
나는 어떤 시스템 파일이 내가 수동으로 편집했는지 확인하거나(가능한 경우) 내 설치와 일반 설치 사이의 특정 폴더를 비교하는 것을 고려했습니다. 그러나 나는 내가 편집해야 했던 대부분의 파일을 확실히 기억하지 못하고, 어떤 파일/디렉토리가 중요한지, 안전하게 무시할 수 있는지 등을 알 수 있을 만큼 Linux에 대해 충분히 알지 못합니다.
편집: 명확히 하기 위해 도트 파일에 대해 말하는 것이 아닙니다. 버전 관리에 두는 것입니다.
편집 2: 문제의 배포판은 i3wm 버전인 Manjaro입니다.
답변1
pacman
Arch 및 그 파생물을 사용하여 패키지 데이터베이스를 쿼리할 수 있습니다.
pacman -Qii | awk '/^MODIFIED/ { print $2 }'
수정된 모든 파일 목록이 표시됩니다. 실제 수정 사항을 보려면 해당 파일을 해당 패키지의 원본과 비교해야 하지만 저는 그렇게까지 신경쓰지 않습니다. 대신 결과 목록에 있는 모든 파일을 백업한 다음 diff
새로 설치된 파일을 백업하십시오.
답변2
동일한 패키지를 사용하여 동일한 배포/버전을 새로 설치(예: 가상 머신에)합니다. 체크섬 등을 비교하는 것은 쉽지 않습니다.
답변3
이미 제안한 대로 새로 설치를 생성하고 모든 파일(임시 파일 제외)의 해시를 생성 /tmp
하고 /var/tmp
해시를 비교할 수 있습니다. 그러나 IMHO는 마치 시스템이 2~3개 설치된 것처럼 많은 정보를 제공하지 않습니다. 몇 년 전에는 새 버전의 패키지로 인해 변경된 (거의) 모든 파일을 볼 수 있습니다. 구성 파일과 관련하여 해당 파일을 백업하고 새 설치에서 복원하거나 diff
변경 사항을 표시하는 데 사용할 수 있습니다.
나중에 실제로 변경 사항을 추적하려면 audit
(거의) 모든 Linux 배포판에 존재하는 하위 시스템을 사용할 수 있습니다.
답변4
현재:
- USB로 부팅하고 다른 디스크에 시스템 백업
- 현재 사용 중인 버전과 동일한 버전을 사용하여 운영 체제를 다시 설치하세요.
- 모든 소프트웨어를 다시 설치하고 현재 사용하고 있는 것과 동일한 버전으로 업데이트합니다(단, 구성은 변경하지 마십시오).
- USB로 다시 부팅하고, 이전 시스템과 새 시스템을 어딘가에 설치하고 파일 간의 차이점을 비교합니다(예:
sudo diff -Naur /mnt/old /mnt/new
).
find를 창의적으로 사용하는 것도 도움이 될 수 있습니다.
예를 들면 다음과 같습니다. sudo find /mnt/old -xdev -mtime -100
지난 100일 동안 변경된 모든 파일을 표시합니다.
나는 이것을 추천하지 않는다정확히그렇지 않으면 당신이 얻는 정보가 엄청날 것이라고 언급했습니다. 필요에 따라 몇 가지 조정을 해야 합니다. (예: 특정 디렉토리만 비교) find
너를 도울 것이다.
미래를 위해:
- 추가 버전 제어(예
etckeeper
: ) - 더 많은 백업을 만들고(예
rsync
: ) 수시로 비교합니다(예:diff
) - COW가 있는 파일 시스템(예: btrfs)