집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux 시스템 오류 문제를 해결하고 복구하는 방법에 대한 팁
[소개] Linux 시스템의 시작 프로세스 중에 일부 오류가 발생하여 시스템이 정상적으로 시작되지 않는 것을 발견했습니다. 여기에서는 단일 사용자 모드, GRUB 명령 작동 및 Linux를 적용한 몇 가지 오류 복구 사례를 작성했습니다. 모든 사람이 문제 해결을 이해할 수 있도록 도와주는 구조 모드입니다. (1) 단일 사용자 모드 Linux 시스템은
Linux 시스템의 시작 프로세스 중에 일부 오류가 발생하여 시스템이 정상적으로 시작되지 않는 것을 발견했습니다. 여기에는 단일 사용자 모드, GRUB 명령 작동 및 Linux 복구 모드는 모든 사람이 이러한 문제를 해결하는 방법을 이해하는 데 도움이 됩니다.
(1) 단일 사용자 모드
Linux 시스템은 최소한의 환경에서 시스템 유지 관리를 수행할 수 있는 단일 사용자 모드(Windows 안전 모드와 유사)를 제공합니다. 단일 사용자 모드(런레벨 1)에서는 Linux가 루트 셸로 부팅되고 네트워킹이 비활성화되며 소수의 프로세스만 실행됩니다. 단일 사용자 모드는 파일 시스템 손상 수정, 구성 파일 복원, 사용자 데이터 이동 등에 사용할 수 있습니다.
다음은 단일 사용자 모드에서 시스템 오류를 복구하는 몇 가지 일반적인 사례입니다.
사례 1: 루트 비밀번호를 잊어버렸습니다
단일 사용자 모드에서 Linux에는 루트 비밀번호가 필요하지 않습니다(Red Hat 시스템에서는 루트 비밀번호가 필요하지 않습니다). 루트 비밀번호가 필요하지만 SuSe가 필요하며 Linux 시스템마다 약간 다릅니다. 이 기사에서는 Fedora Core 6을 예로 사용하므로 루트 비밀번호를 매우 쉽게 변경할 수 있습니다. 시스템이 다중 사용자 모드로 부팅하지 못한 경우 단일 사용자 모드로 들어가는 방법을 이해하는 것이 중요합니다.
1. 시스템 시작 프로세스 중에 아무 키나 눌러 GRUB 메뉴 옵션으로 들어갑니다.
앞으로 이 메시지를 피하려면 GRUB 메뉴 옵션으로 직접 이동하여 grub.conf 구성 파일에서 "hiddenmenu" 항목을 삭제하세요.
2. GRUB 부팅 메뉴 옵션을 편집하려면 "e" 키를 누르고, "e" 키를 누르면 GRUB 화면이 나타납니다. 화살표 키를 사용하여 커널 라인으로 이동한 후 "e" 키를 누릅니다.
3. 마지막 라인의 커서에 싱글을 추가하고 Enter 키를 눌러 이전 화면으로 돌아가고 "b"를 누릅니다. 키를 눌러 부팅하면 시스템이 자동으로 단일 사용자 모드로 전환됩니다. 루트 비밀번호를 변경하려면 sh-3.1# passwd root
명령을 실행하세요. 변경이 성공한 후 종료하고 다시 시작하려면 명령을 실행하세요.
다음과 같이 단일 사용자 모드에서 시스템이 정상적으로 시작되지 못하게 하는 많은 문제를 해결할 수 있습니다.
1. 시스템 작동을 방해할 수 있는 서비스를 비활성화합니다. 예를 들어 Samba 서비스를 비활성화하는 경우 다음을 실행합니다. 3.1# chkconfig smb off 다음 번 시스템 부팅 시 Samba 서비스가 시작되지 않습니다.
2. 시스템 기본 실행 수준을 변경합니다. X Window가 시작되지 않거나 실패하면 /etc/inittab 파일을 편집하고 텍스트 모드를 사용하여 로그인한 다음 initdefault 부팅 수준을 3: id: 3: initdefault:로 변경할 수 있습니다.
사례 2 : 하드 드라이브 섹터 장애
시작 과정에서 가장 흔히 발생하는 문제는 하드 드라이브에 불량 섹터 또는 무질서한 섹터(데이터 손상)가 있을 수 있다는 것입니다. 이 상황은 종종 비정상적인 정전 또는 비정상으로 인해 발생합니다. 일시 휴업. 이런 종류의 문제가 발생하면 시스템이 시작되면 화면이 표시됩니다:
루트 비밀번호를 누르거나 Ctrl+D를 누르세요. 이때 루트 비밀번호를 입력하면 시스템이 자동으로 "fsck -를 입력합니다. y /dev/hda6" (fsck는 파일 시스템 감지 및 복구 명령입니다. "-y"는 오류 감지 시 자동으로 오류가 복구되도록 설정합니다. /dev/hda6은 오류가 발생한 하드 디스크 파티션입니다. 이를 변경하십시오. 특정 상황에 따른 매개 변수), 시스템 복구가 완료된 후 "reboot" 명령을 사용하여 다시 시작하십시오.
사례 3, GRUB 옵션 설정 오류
"오류 15"는 시스템이 grub.conf에 지정된 커널을 찾을 수 없음을 나타냅니다. GRUB 부팅 오류 메시지 입력 오류로 인해 커널 파일의 "vmlinuz"가 "vmlinux"로 입력되어 시스템이 커널 실행 파일을 찾을 수 없는 것으로 나타났습니다. 아무 키나 눌러 GRUB 편집 인터페이스로 돌아가서 이 오류를 수정할 수 있습니다. Enter를 눌러 저장하고 "b" 키를 눌러 정상적으로 부팅하는 것을 잊지 마세요. 시스템에 들어갑니다. 이는 많은 초보 Linux 사용자가 GRUB 설정을 수정할 때 쉽게 저지르는 실수입니다. 이 검은 화면 메시지가 나타나면 오류 메시지에 주의하고 그에 따라 수정할 수 있습니다.
(2) GRUB 부팅 문제 해결
때때로 Linux가 시작된 후 GRUB 명령줄 인터페이스로 직접 들어가는 것을 발견했습니다(현재는 "grub>" 프롬프트만 해당). 많은 사용자가 재설치를 선택합니다. GRUB을 사용하거나 GRUB를 다시 설치하세요. 실제로 일반적으로 이 실패에는 가장 일반적인 두 가지 이유가 있습니다. 하나는 GRUB 구성 파일의 잘못된 옵션 설정이고, 다른 하나는 GRUB 구성 파일의 손실입니다(커널과 같은 몇 가지 이유도 있습니다). 파일 또는 이미지 파일이 손상되거나 누락되었거나 /boot 디렉토리가 실수로 삭제된 경우 등), 첫 번째 경우에는 먼저 GRUB 명령을 통해 시스템을 부팅하고 두 번째 경우에는 복구해야 합니다. Linux 복구 모드를 사용하여 복구합니다(이 문서 뒷부분에서 설명).
먼저 GRUB 부팅 시스템의 부팅 프로세스를 이해해야 합니다. grub.conf 파일의 주요 구성 옵션은 다음과 같습니다. (GRUB 구성 파일은 /boot/grub/grub.conf, / etc/grub.conf는 소프트 링크일 뿐입니다):
title Fedora Core (2.6.18-1.2798.fc6)root (hd0,0)kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img
"title" 섹션은 GRUB에 의해 부팅되는 시스템을 지정합니다. "root" 섹션은 /boot 파티션의 위치를 지정합니다. "kernel" 섹션은 커널이 로드될 때 권한 속성을 지정합니다. 읽기 전용("ro")이고 루트 파티션의 위치를 지정합니다(root=LABEL=/). initrd는 이미지 파일의 위치를 지정합니다. 따라서 GRUB 부팅 시 먼저 /boot 파티션을 로드한 다음 커널과 이미지 파일을 순서대로 로드하는 순서입니다.
사례: "제목 Fedora Core(2.6.18-1.2798.fc6)" 섹션이 실수로 삭제되었습니다.
이 때 시스템은 시작 후 자동으로 "GRUB>" 명령줄을 입력합니다. 다음 작업을 순서대로 수행할 수 있습니다.
1. /boot/grub/grub.conf 파일이 있는 파티션을 찾습니다. GRUB> find /boot/grub/grub.conf(hd0, 0)
2. GRUB>cat (hd0, 0)/boot/grub/grub.conf 오류에 대한 grub.conf 파일 시스템 설치 및 설정 후 grub.conf 파일을 백업하는 것이 좋습니다. grub.conf.bak와 같은 백업 파일을 보려면 이때 백업 파일을 보고 현재 파일과 비교할 수 있습니다. 오류: GRUB>cat (hd0, 0)/boot/grub/grub.conf.bak
3 오류를 확인한 후 먼저 명령줄을 통해 GRUB 부팅을 완료한 다음 시스템에 진입한 후 grub.conf 파일을 복구합니다. 오류: 1 ) /boot 파티션 루트를 지정합니다(hd0, 0)
2) 커널 로딩 kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb Quiet 3) 이미지 파일 위치 지정 initrd /boot/ initrd-2.6.18-1.2798.fc6.img
팁 : GRUB은 탭 키 명령 완성 기능을 지원합니다
4. /boot 파티션(hd0, 0)에서 부팅을 시작합니다
명령줄 모드는 GRUB 메뉴 모드에서 전달할 수 있으며 "c" 키를 눌러 호출합니다. 또한 새로 컴파일된 커널을 테스트하는 데에도 사용할 수 있습니다(새 커널과 이미지 파일을 부팅하기 위해 커널, initrd 설정). GRUB 부팅 및 Linux 시스템 부팅 지식에 대한 이해를 높이면 이러한 유형의 문제를 해결하는 데 큰 도움이 됩니다.
(3) Linux 복구 모드 응용 프로그램
시스템이 단일 사용자 모드로 들어갈 수 없거나 GRUB 명령줄로 해결할 수 없는 부팅 문제가 있는 경우 Linux 복구 모드를 사용해야 합니다. 문제 해결. 단계는 다음과 같습니다.
1. Linux 설치 CD를 CD-ROM 드라이브에 넣고(CD를 사용하는 경우 첫 번째 부팅 CD를 넣습니다) Linux 설치가 완료되면 CD에서 부팅하도록 펌웨어 CMOS/BIOS를 설정합니다. 화면이 나타나면 "boot: " 프롬프트에 "linux 복구"를 입력하고 Enter를 눌러 복구 모드로 들어갑니다. (복구 모드에 대한 자세한 내용을 알고 싶다면 F5 키를 눌러 볼 수도 있습니다.)
2. 시스템이 하드웨어를 감지하고 CD에서 Linux 환경을 부팅한 후 사용되는 언어를 선택하라는 메시지를 표시합니다. 복구 모드에서는(기본 영어를 선택하는 것이 좋습니다. 작성자의 테스트에 따르면 일부 Linux 시스템에서는 중국어를 선택할 때 잘못된 문자가 생성됩니다.) 키보드 설정에 기본 "us"를 사용하면 됩니다. 대부분의 오류 복구에는 네트워크 연결이 필요하지 않으며 이 설정을 지정하고 "아니요"를 선택할 수 없습니다.
3. 다음으로 시스템은 루트 파티션을 찾으려고 시도하고 마운트 프롬프트가 나타납니다. 기본 설정은 복구 모드입니다. CD-ROM Linux 환경. 기본 옵션 "계속"은 다운로드 권한이 읽기-쓰기임을 의미합니다. "읽기 전용"은 읽기 전용을 의미하며 건너뛰려면 "건너뛰기"를 선택하세요. 여기서는 시스템을 복구해야 하기 때문에 읽기 및 쓰기 권한이 필요합니다. 일반적으로 기본 옵션인 "계속"이 선택됩니다.
다음 단계에 들어가면 시스템은 "chroot /mnt/sysimage" 명령을 실행하여 루트 디렉터리를 하드 디스크 시스템의 루트 디렉터리에 마운트하라는 메시지를 표시합니다.
사례 1: 이중 시스템 시작 복구
이중 시스템 환경을 설치할 때 Linux를 먼저 설치한 다음 Windows를 설치하거나, Windows를 다시 설치한 후 GRUB를 저장합니다. MBR(마스터 부트 레코드(Master Boot Record))는 Windows 시스템 부트로더 NTLDR에 의해 덮어쓰기되어 Linux 시스템을 부팅할 수 없게 됩니다.
1. 이중 시스템 부팅을 복원하려면 먼저 위의 방법을 사용하여 복구 모드에 진입한 후 다음과 같이 chroot 명령을 실행합니다.
sh-3.1# chroot /mnt/sysimage
2. 루트 디렉터리를 하드 디스크 시스템의 루트 디렉터리로 전환합니다. 그런 다음 grub-install 명령을 실행하여 GRUB를 다시 설치하세요.
sh-3.1# grub-install /dev/hda
"/dev/hda"는 하드 디스크 이름입니다. SCSI 하드 디스크를 사용하거나 Linux가 두 번째 IDE 하드 디스크에 설치된 경우 이 설정이 필요합니다. 그에 따라 조정됩니다.
3. 그런 다음 chroot 모드와 복구 모드를 종료하려면 순서대로 종료 명령을 실행하십시오(exit 명령을 두 번 실행).
sh-3.1# exit
시스템이 다시 시작되면 GRUB 부팅 이중 시스템 시작이 복원됩니다.
사례 2: 시스템 구성 파일 손실 복구
시스템 부팅 중에 매우 중요한 프로세스는 init 프로세스가 구성 파일 /etc/inittab을 읽고 시스템의 기본 서비스 프로그램과 기본 실행 수준 서비스 프로그램을 시작하는 것입니다. 시스템 부팅 중에 /etc/inittab이 실수로 삭제되거나 잘못 수정되면 그림 7과 같이 Linux가 정상적으로 시작되지 않습니다. 이 시점에서 이러한 문제는 복구 모드를 통해서만 해결될 수 있습니다.
/etc/inittab 파일 누락 부팅 오류 예
1、有备份文件的恢复办法进入救援模式,执行chroot命令后,如果有此文件的备份(强烈建议系统中的重要数据目录,如/etc、/boot等要进行备份),直接将备份文件拷贝回去,退出重启即可。如果是配置文件修改错误,如比较典型的/boot/grub/grub.conf及/etc/passwd的文件修改错误,也可以直接修正恢复。假设有备份文件/etc/inittab.bak,则在救援模式下执行:
sh-3.1# chroot /mnt/sysimagesh-3.1# cp /etc/inittab.bak /etc/inittab
2、没有备份文件的恢复办法如果一些配置文件丢失或软件误删除,且无备份,可以通过重新安装软件包来恢复,首先查找到/etc/inittab属于哪一个RPM包(即便文件丢失,因为存在RPM数据库,一样可以查找到结果):sh-3.1# chroot /mnt/sysimage sh-3.1# rpm -qf /etc/inittab initscripts-8.45.3-1
退出chroot模式:
sh-3.1# exit
挂载存放RPM包的安装光盘(在救援模式下,光盘通常挂载在/mnt/source目录下):
sh-3.1# mount /dev/hdc /mnt/source
Fedora系统的RPM包存放在光盘Fedora/RPMS目录下,其他Linux存放位置大同小异,我在这里不一一列举;另外,因为要修复的硬盘系统的根目录在/mnt/sysimage下,需要使用——root选项指定其位置。覆盖安装/etc/inittab文件所在的RPM包:
sh-3.1# rpm -ivh ——replacepkgs ——root /mnt/sysimage /mnt/source/Fedora/RPMS/ initscripts-8.45.3-1.i386.rpm
其中的rpm命令选项“——replacepkgs”表示覆盖安装,执行完成后,即已经恢复了此文件。
如果想只提取RPM包中的/etc/inittab文件进行恢复,可以在进入救援模式后,执行命令:
sh-3.1# rpm2cpio /mnt/source/Fedora/RPMS/initscripts-8.45.3-1.i386.rpm | cpio -idv ./etc/inittabsh-3.1# cp etc/inittab /mnt/sysimage/etc
注意此命令执行时不能将文件直接恢复至/etc目录,只能提取到当前目录下,且恢复的文件名称所在路径要写完整的绝对路径。提取文件成功后,将其复制到根分区所在的/mnt/sysimage目录下相应位置即可。
救援模式是维护Linux的有力武器,本文以上述两个例子讲解了它的应用方法,希望能够给读者一点启示。解决Linux系统启动的故障,必须充分理解Linux的引导过程,才能够对故障进行有效的判断和处理。
위 내용은 Linux 시스템 오류 문제를 해결하고 복구하는 방법에 대한 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!