
내 고객 사이트 중 한 곳에서 현지 직원이 로컬 Solaris 10 x86 서버를 종료하고 전원 입력을 뽑아 이동했는데 이제 제대로 시작되지 않습니다. 부팅된 다음 로그인할 수 있는 프롬프트가 표시됩니다. 이는 단일 사용자 마일스톤(또는 이에 상응하는) 것으로 보입니다.
자세히 살펴보면 SMF가 시스템의 다중 사용자 전환을 허용하지 않는 것 같습니다. SMF는 autofs에서 수많은 오류를 생성하고 있었습니다. SMF를 조작한 후 대신 inetd 및 nfs/client에서 오류를 생성하게 되었습니다. 이 모든 것은 문제가 수정/삭제/재작성되어야 하는 일부 SMF 상태 파일이나 데이터베이스에 있다는 것을 알려주지만 실제 문제가 무엇인지는 알 수 없습니다.
"오류 생성"이란 매초마다 "메소드 또는 서비스 종료 시간이 초과되었습니다"라는 메시지가 콘솔에 표시된다는 의미입니다. 살인 계약 <#>.” 이로 인해 컴퓨터와의 상호 작용이 어려워집니다.
svcs –xv를 실행하면 서비스가 "활성화됨"으로, 상태는 "비활성화됨"으로, 이유는 "시작 방법이 실행 중입니다"로 표시됩니다. 서비스에서 svcadm을 사용하면 서비스가 유지 관리 상태가 아닌지 확인하는 것 외에는 아무 작업도 수행되지 않습니다.
/lib/svc/log/$SERVICE에 로그인하면 이 루프가 초당 한 번씩 발생했음을 알 수 있습니다. /etc/svc/휘발성/$SERVICE에 로그인하면 부팅 시 서비스가 시작을 시도하고 즉시 중지되며 추가 항목이 없음을 확인합니다. system-log는 autofs에 의존하기 때문에 system-log가 시작되지 않으므로 syslog나 dmesg가 없습니다.
이 모든 용어를 인터넷 검색하면 autofs, nfs/client, inetd 또는 rpc/gss를 디버깅/수정하는 방법을 알 수 있습니다. 이는 SMF가 nfs/client가 "시작"되는 것을 방지하기 위한 핑계로 사용했던 종속성이었습니다. rpc/gss는 "정의되지 않음"이었습니다. 이는 모두 작동했기 때문에 잘못된 것입니다. inetadm으로 다시 활성화했지만 inetd는 여전히 제대로 시작되지 않습니다. 하지만 문제는 개별 서비스가 아니라 SMF 전반에 있다고 생각합니다.
"manifest_import"에 Restore_repository를 수행해도 상황이 개선되거나 눈에 띄게 바뀌지는 않습니다. 마지막 부팅이 유용하지 않았기 때문에 부팅 백업을 사용하지 않았습니다.
나는 고객에게 귀중한 데이터 디렉토리가 별도의 파일 시스템(fsck가 깨끗하여 손상되지 않음)에 있으므로 / 파티션에 Solaris 10을 다시 설치하면 된다고 말했습니다. 하지만 이는 이 문제를 해결하기 위한 끔찍한 창과 같은 솔루션인 것 같습니다.
그래서. 어떤 부분이 깨졌는지, 어떻게 고칠 수 있는지 아시나요?
업데이트 1: 이 시스템에는 /와 /export라는 두 개의 파일 시스템이 있다는 점을 언급해야 할 것 같습니다. fsck 둘 다 정리되고 올바르게 마운트됩니다.
답변1
이러한 문제의 일반적인 근본 원인은 일부 파일 시스템 손상으로 인해 파일 시스템을 마운트하는 동안 발생하는 문제입니다. 이는 특히 로컬 사례의 경우 매우 드물어지고 있지만 고객은 ufs 로깅을 비활성화하고(갑작스러운 전원 끄기로 인한 대부분의 파일 시스템 손상을 방지함) ZFS를 사용하지 않음으로써(갑작스러운 전원 꺼짐으로 인한 대부분의 파일 시스템 손상 방지) 자신의 편에 서지 않았습니다. 애초에 설계상 손상될 수 없습니다).
/boot/grub/menu.lst를 편집하여 자세한 smf 시작을 활성화할 수 있습니다. 정확한 방법은 Solaris 버전 및 업데이트에 따라 다르지만 일반적으로 커널을 로드하는 라인에서 console=graphics
로 대체하여 수행됩니다.console=text -v -m verbose
단일 사용자 모드에서 시작하려면 를 사용하십시오 console=text -v -m verbose,milestone=single-user
.
smf 디버그 모드를 활성화하려면 다음을 사용하십시오.console=text -v -m debug
grub 편집 모드를 사용하여 이러한 옵션을 일시적으로 설정할 수 있습니다.