누군가가 신을 플레이하고 기적을 행하고 싶다면 좋아.
그래서 6 개월이 지난 파일을 찾아서 압축 한 다음 삭제하는 스크립트를 작성해야했습니다. tihs 스크립트를 만드는 도중에 나는 이것을 실행했다 :
find / -type f -mtime -400 ! -mtime -180 | xargs gzip blablabla
그리고 그것은 모든 단일 파일에 .gz 확장자를주었습니다. 이제는 눈치 채지 못했지만 너무 늦었습니다. 명령이 완료되면 $ PATH 변수가 자체 비워 져서 내 bash 명령이 작동하지 않습니다. 나는 문제가 무엇인지 깨닫기 전에 많은 것을 시도했다.
그래서 여전히 부팅 할 수없는 모든 것을 압축 해제하십시오. 나는 다음에 대한 온라인 지침을 따른 후에 구조를 제거하기 위해 관리했습니다.
root (hd0,0)
setup (hd0)
kernel (hd0,0)/boot/vml[...]
initrd (hd0,0)/boot/initrd.im[...]
리눅스가 부분적으로 부팅되었지만 다음과 같은 오류가 발생합니다.
Begin : Running /scripts/init-bottom ... mount : mounting /dev on /root/dev failed : No such file or directory
mount: mounting /sys/ on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed : No such file or directory
Target filesystem doesn't have requrested /sbin/init.
No init found. Try passing init= bootarg.
파일 시스템 복구를 시도했는데 3 개의 다른 LiveCD / Rescue 디스크에서 부팅했으며 2 개의 다른 dicsc에서 부팅 복구를 실행했습니다. 나는 fscks를 강요했다 …
나는 정말로 아이디어가 없어서이 서버를 최소한 부팅해야 SQL 데이터베이스를 복구 할 수 있어야합니다. 도움이 절실합니다. 필요한 경우 비용을 지불 할 수도 있습니다.
가능한 해결책을 찾기 위해 하루 종일 3 일 동안 포럼을 숨겨 왔는데 여전히 같은 시점에 있습니다. 도와주세요?
답변
이는 파일 시스템이 LiveCD에서 해당 파티션을 마운트 할 수있을만큼 복구되었는지 여부에 따라 다릅니다. 아직 시스템 부팅을 방해하지 마십시오. 먼저 파티션을 마운트하고 모든 .gz 파일을 압축 해제하십시오. 그러면 init 및 시스템 바이너리의 작업 사본이 제공됩니다. 그런 다음 grub을 사용하여 부팅 섹터를 복구 할 수 있습니다. 그런 다음 단일 사용자 모드로 부팅하고 파일 시스템을 다시 fsck하십시오. 작동하면 실행중인 시스템이있는 것입니다. 또한 실제로 압축해야하는 압축이 풀린 파일 (예 : 맨 페이지)이 많이 있지만 부팅 할 수없는 시스템을 사용하는 것보다 낫습니다.
LiveCD에서 파티션을 마운트 할 수 없다면 불행히도 운이 없습니다. 그 시점에서 시스템을 복구하는 것은 없습니다.
답변
가장 먼저 시도 할 것은 LiveCD 환경을 실행하고 시스템을 부팅 가능한 상태로 되돌릴 것으로 기대하면서 모든 것을 압축 해제하려고 시도하는 것입니다. 참고 : 원래 gzip 프로세스가 중단되면 잠재적 인 데이터 손상이 걱정됩니다.
그렇지 않으면 다른 사람들이 제안한 것처럼 DB를 새 시스템으로 마이그레이션하려고 시도했지만 발생하는 것처럼 노동 집약적 종속성 및 구성 문제가 개별적으로 해결되어야 할 수도 있습니다.
답변
작업 시스템에 디스크를 마운트하고 파일을 구출해야한다는 일반적인 합의는 잘못된 것이 아닙니다. 현명한 일입니다. 그러나 다른 방법은 더 재미 있고 교육적입니다. 다른 사람들이 방금 포기하고 처음부터 다시 설치했을 것 같은 지저분한 상황에서 벗어나기 위해 많은 것을 배웠습니다. (다른 사람들이 의존하는 서버는 아닙니다 …)
어쨌든 지금까지 실행되는 initramfs (initrd)가 있습니다. 좋은 시작입니다. 그러나 init가 init.gz
아마도 어쩌면 init 로의 핸드 오프를 완료 할 수 없습니까? 진전을 이루려면 Linux 배포판이 무엇인지 정확히 아는 것이 도움이되므로 비상용으로 initramfs에서 어떤 도구를 사용할 수 있는지 찾아 볼 수 있습니다.
제시 한 오류 메시지는 데비안의 initramfs에서 온 것 같습니다. 데비안이라면 (initramfs)
, 마지막 오류 후 다음 줄에 쉘 프롬프트가 나타납니다. 만약 그렇다면, 실패한 마운트에서 무슨 일이 일어나고 있는지 조사해야합니다. 되어 /root/dev
실종? ( /root
initramfs를 실행하는 동안 일반 루트 fs를 마운트해야하는 곳)
쉘 프롬프트를 얻지 못했다면 다음에 나오는 No init found. Try passing init= bootarg.
것이 흥미로울 것입니다. 커서가 깜빡이는 것 일지라도 단서입니다. 완전히 멈춘 것처럼 보이는 경우 매직 sysrq 또는 Ctrl + ScrollLock을 사용하여 어떤 프로세스가 여전히 사용 중인지에 대한 정보를 얻으십시오.
데비안 initramfs를 사용하면 break=
커널 명령 행에 매개 변수를 추가하여 몇 가지 특별한 랜드 마크에서 쉘을 요청할 수 있습니다 . 예를 들어, Running /scripts/init-bottom
줄 앞에 쉘을 얻으려면을 사용하십시오 break=bottom
.
따로 : 나는 find
명령이 모든 파일을 어떻게 압축 했는지 알 수 없습니다 … 180에서 400 일 사이의 파일을 선택할 목적으로 나에게 맞습니다.