>  기사  >  시스템 튜토리얼  >  Linux 커널 패닉을 효과적으로 처리하기 위한 팁

Linux 커널 패닉을 효과적으로 처리하기 위한 팁

WBOY
WBOY앞으로
2024-01-10 21:06:30588검색

웹사이트 사용자 鸢一雨음을의 기여에 감사드립니다

이 글을 쓴 데에는 이유가 있습니다. 완전한 자동 부팅을 구성하기 위해 mkinitcpio.conf 파일의 논리 오류를 무시했기 때문에 작업 컴퓨터에서 실행 중인 Linux에서 부적절한 mkinitcpio 작업을 수행했습니다. 이로 인해 mkinitcpio가 새 커널 파일을 생성하지만 이 커널 파일은 제대로 작동하지 않습니다. 다시 시작하면 패닉 상태에서 커널 시작이 중단됩니다.

일반적으로 새 커널이 제대로 작동하지 않을 경우 initramfs 커널 파일의 폴백 버전을 사용하여 시스템을 일시적으로 시작하거나 폴백 버전을 직접 덮어써 변경 사항을 롤백할 수도 있는데 이번에는 mkinitcpio가 수정되었습니다. 동시에 vmlinuz 커널 파일이 있고 vmlinuz에는 대체 버전이 없습니다. 일반 사용자의 경우 시스템을 직접 재설치할 수 있지만 작성자의 워크스테이션 환경 구성이 매우 복잡하므로 작업 파일이 손실될 가능성 외에도 개발을 재구성하는 데 많은 추가 시간이 필요합니다. 환경.

참고:이 튜토리얼의 "복구"는 "인간의 파괴적인 변경 사항을 롤백하려고 시도하는 것"을 의미하므로 알 수 없는 커널 충돌을 복구하는 데 사용할 수 없습니다.

1. LiveCD에서 부팅하고 디스크 보기

리눅스 서버를 아르바이트로 운영하고 유지하면서 쌓은 경험을 바탕으로 LiveCD를 이용해 부팅하면 커널 복구를 위한 임시 리눅스 환경을 구할 수 있겠다는 생각이 바로 들었습니다.

저자는 64비트 버전의 Arch Linux를 사용하고 있어서 Arch Linux의 LiveCD로 부팅했습니다. LiveCD의 내장 루트 사용자를 올바르게 입력한 후 메인 하드 디스크의 장치 이름을 확인해야 합니다. fdisk -l을 실행한다. 저자의 경우 내 메인 하드디스크에 해당하는 장치 파일과 루트 디렉터리에 마운트된 파티션은 /dev/sdb2이다.

2. 하드 디스크의 시스템 루트 디렉터리로 chroot

하드 디스크의 시스템 루트 디렉터리로 루트를 지정하고 일반적으로 하드 디스크의 시스템 구성 요소를 호출하여 하드 디스크의 시스템을 변경하려면 먼저 하드 디스크에 루트 파티션을 수동으로 마운트해야 합니다. 실행(내 장치 파일은 /dev/sdb2입니다):

마운트 /dev/sdb2 /mnt

아직 서두르지 마세요. 이때, /mnt로 chroot하여 하드디스크의 메인 시스템의 bash에 진입할 수는 있지만, 아직 마운트되지 않은 중요한 디렉토리들이 남아 있기 때문에 복잡한 작업을 제대로 완료하기 어렵습니다. proc 디렉터리, /sys 디렉터리, /dev 디렉터리 및 /run 디렉터리를 각각 마운트하라는 지침을 실행합니다. /mnt를 입력하고 각각 실행합니다:

mount -t proc proc proc/

mount --rbind /sys sys/

mount --rbind /dev dev/

mount --rbind /run run/

이 디렉터리의 기능은 다음과 같습니다.

proc 디렉터리: 프로세스 상태 파일을 저장하는 데 사용되는 가상 Procfs 형식 파일 시스템(Linux에서는 이러한 파일이 표면적으로는 텍스트 파일로 보이지만 실제로는 프로세스 상태의 파일 매핑입니다.)

/sys 디렉토리: Arch Linux의 경우 이는 proc 디렉토리와 유사한 Sysfs 형식의 가상 파일 시스템으로, 기존 Unix 및 Unix 계열 시스템에 연결된 장치 파일을 저장하는 데 사용됩니다. 커널 코드 트리 소프트 링크

/dev 디렉토리: 장치 파일을 저장합니다. 예를 들어 하드 디스크는 /dev/sdXY입니다.

/run 디렉터리: 최근 시작한 후 일부 시스템 정보를 저장합니다.

이러한 사항을 마운트한 후 기본 하드 드라이브의 루트 디렉터리로 루트를 이동할 수 있습니다.

chroot /mnt

후회 약++. 제 경우에는 mkinitcpio.conf 파일을 수정하고 mkinitcpio 작업을 다시 실행하여 올바른 커널 파일을 재생성하기만 하면 되었습니다. 일반적으로 구성을 잘못 수정하여 커널 패닉이 발생한 경우 이 환경을 사용하면 대부분의 문제를 해결할 수 있습니다.

3. 일부 스킬

1. LiveCD에는 시스템에 맞는 버전이나 템플릿이 있는 경우가 많습니다.

2. Arch Linux의 경우 /mnt로 루트를 지정하지 않고 pacstrap 명령을 직접 사용하여 /mnt 마운트 지점에서 소프트웨어 패키지를 관리할 수 있습니다.

3. 두 개의 tty에서 작동할 수 있으므로 /mnt로 루트를 변경한 후에도 파일을 LiveCD 파일 시스템에서 /mnt로 전송할 수 있습니다.

이 튜토리얼은 대부분의 Linux 배포판에서 사용할 수 있으며 일부 Linux 사용자에게 도움이 되기를 바랍니다.

관련 추천:

Linux 시스템에서 듀얼 그래픽 카드를 구성하는 방법은 무엇입니까?

위 내용은 Linux 커널 패닉을 효과적으로 처리하기 위한 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제