Operating System/Solaris2007/08/07 10:55

21장. Systen ERROR 및 문제해결(Q&A)

21.1 Emergency Keyboard Commands

Command

Description

STOP

- A (from keyboard)    


Redirect Input to Come from Keyboard(CRASH)

STOP

-F(from keyboard)


Output to ttya(Press/Hold during Power-Cycle)

STOP

-D(from keyboard)


Set System to Diag Mode(diag-switch? ture)

STOP

-N(from keyboard)


Reset all NVRAM parameters to default value

(Press/Hold during Power-Cycle)


21.2 directory write problem-/home & /net ( Solaris2.x )

Q) /home & /net directory 의 permission 이 555 로 되어있으며, permission 을 변경해도 root 조차 write 할 수 없음.

A) /home 과 /net directory는 특별한 directory 로써 automounter 를 위한 mount points 이다. automounter 를 disable 하려면 /etc/rc2.d/S74autofs 를 /etc/rc2.d/s74autofs 로 rename 하면 되고, autofs 을 다른 file system 을 사용하여 configuration 하고 /net 이나 /home directory는 autofs 에서 제외하려면 /etc/auto_master file에서 /net 이나 /home 을 comment out 시키면 일반적인 file system으로 쓸 수 있다.

  보기  : /etc/auto_master

           # Master map for automounter
           #

            +auto_master

            /net           -hosts         -nosuid
            /home          auto_home
            /xfn           -xfn

21.3 ROOT Password 잊어버렸거나, 중요 System File 오류 발생시

(2.x Admin 2장4-19)

* Password File에 오류가 있을 때 조치 순서 Single Mode로 boot 한다.

1. Solaris 2.x O/S CD-ROM으로 boot한다.
2. File System을 mount하여 File을 수정한다.
3. File System을 umount한다.
4. System을 Reboot한다.

   ok boot cdrom -s 혹은 boot sd(0,0,0) -s

        :
        :

      INIT: SINGLE USER MODE

     #mount /dev/dsk/cot3d0s0 /mnt
     #TERM=sun          -> * 중요부분
     #export TERM       
     #setenv TERM sun
     #cd /mnt/etc           
     #vi passwd
     #cd /
     #umount /mnt
     #reboot

21.4 File System이 손상된 경우(Boot Block 복구)

(1.x Admin 5-147참고)

1. OS installation Tape나 CD로 부터 MINIUNIX를 Load 하여 System을 Booting 하고,

   1) Boot block을 생성한다.

      #mount /dev/sd0a /a
      #cd /usr/mdec
      #installboot /a/boot bootsd /dev/rsd0a

   2) System을 Reboot 한다.

      #cd /
      #umount /a
      #fsck /dev/rsd0a
      #[stop]+[a] or sync;sync;halt

      >b

(2.x Admin 22-24참고)

21.5 Inode가 full인 경우 조치

  # umount /user
  # newfs -i 1024 /dev/rid000h
  # fsck
  # mount /dev/rid000h /user
  # df -i

21.6 System DISK 옮길 때

  1) 기존 disk로 Booting
  2) newfs로 새로운 disk의 File System 생성
  3) mkdir /a
  4) mount /dev/sd3a /a
  5) dump 0uf - /dev/rsd0a | (cd /a; restore xvf -)
  6) installboot 실행해서 새로운 disk에 boot_block 생성
  7) fstab에 새로운 target_ID로 수정
  8) 새로운 disk로 REBOOT

21.7 ORACLE용 DISK Addon

  ※ format 명령에서 partition 잡고, labeling만 하고, newfs는 하지 않는다.(low format 상태)

     새로운 ORACLE-partition이 c0t0d0s5 라고 했을 때,

     #chown oracle /dev/dsk/c0t0d0s5
     #chgrp dba(?) /dev/dsk/c0t0d0s5
     #chown oracle /dev/rdsk/c0t0d0s5
     #chgrp dba(?) /dev/rdsk/c0t0d0s5

       Owner와 Group을 Oracle 용으로 바꾼 후 Oracle용 Partition으로 생성 시킨다.

    ※ Oracle에서 System Reboot 후 Oracle용 Partition의 Permission이 바뀌는 경우, Oracle의 STARTUP이 이루어 지지 않을 경우가 있으므로 주의!
     -----> rc2.d 에 자동으로 Permission 변경해주는 File을 포함시켜 해결.

21.8 Printer 관련

 ※ Ultra 5,10,30,60 계열 parallel device_name

     /dev/ecpp0

21.9 Frame Buffer관련

 ※ MGX Frame Buffer : 현대 Ultima 계열들의 기본 Graphic Device

- 컬러 수 조정 : /usr/openwin/server/etc/OWconfig를 아래 내용으로 편집 후 저장. 내용 중 depth부분을 기본 8bit로 되어있는데, 이를 24bit로 조정한다.

21.10 Sun H/W 장애 Q&A

Q) Disk가 기존에 존재했던 Type을 인식하지 못하는데 어떻게 조치해야 하나요?

  즉, format 명령어 사용시 "drive type unknown" 이라고 출력하는데 만약 여기서 Partition 작업을 하면 기존의 Data를 잃어버릴 것으로 생각되는데 기존의 Data를 살릴 수 있는 방법이 무엇인지? Partition 정보를 다시 만들어서 Labeling을 다시 하였을 경우 그냥 newfs 안하고 사용가능 한지요?

A) 기존의 block을 정확히 안다면 별 문제 없이 Labeling 가능하다.
   물론 Data에도 별 영향 없다.
   fsck를 실행시켜서 정확한 Error 부분을 확인하여야 한다.
   fsck를 실행시켜 보면 어떠한 조치를 해야 하는지에 대하여 알 수 있다.
   fsck 명령 사용시 script 명령을 사용해서 정확한 내용을 알아둘 것.
   format 명령 중에서 partition 명령 중 la 명령을 사용할 때 "current disk unformatted" 라는 Message가 나오는데 이런 경우는 기존에 사용했던 내용이 일치하지 않기 때문인데 이때 /var/adm/message File을 참조해서 실행하면 된다.

Q) Network 장애 발생시 check 사항

A) > ifconfig hme0 plumb<enter>

   ---- H/W 적으로 이상이 없을 시에는 아무런 반응이 없음.
   ---- H/W 적으로 이상이 있을 시에는 error code값을 return 함.

   > ifconfig hme0 ipaddress netmask 255.255.255.0 up<enter>
   > ifconfig -a 로 확인

Q) 100BaseT hme0 interface check

A) ndd /dev/hme link_status          0 = link down
                                      1 = link up

   ndd /dev/hme link_speed           0 = 10 Mbit/sec
                                      1 = 100 Mbit/sec

   ndd /dev/hme link_mode            0 = half duplex
                                      1 = full duplex

Q) System Booting시 갑자기 화면이 오동작 (사라졌다가 나타나는 등..)하면서, 화면에 "watchdog reset" Message가 뜨면서 Booting이 이루어지지 않을 때.

A) ok test-memory 해서 Memory의 이상 유무를 확인한다.

Q) TFTP open of file /tftpboot/sgsce.abs
   TFTP open of file /tftpboot/sgsce.abs.Z

   위 두 file failed 시

A) dir 내에 두 file 존재 유무 확인 없으면, find / -name "sgs*" -print 로 찾아서 dir내에 copy 한 후, Terminal Rebooting

   ※ sgsce.abs.4.1.1 , sgsme.abs.4.1.1.Z 같은 형태로 System에 존재할 것임.

Q) PROM MODE에서 Booting 진행 중 아래 Message가 뜰 경우

   "Fast Data Access MMU Misc" Message 나오면서, Booting이 안된다.

A) boot block 의 손상일 경우 CD-ROM을 통한 Single Mode Booting 한 후 boot block 복구

Q) E4000; CPU Board #2에서 service led가 flash되면서 진행이 멈추는 현상

   CPU Board #1을 제거 후 다시 Power ON 할 것

A) 원인; system 이동 시 진동에 의한 충격 의심

!) Netra i, j 초기 설치 시 유의사항

  - 초기 Install 시에는 기존 Partition을 지우고 설치 진행한다.
    Netra 가 스스로 Partition 생성하며 설치를 하게 된다.

  - Netra 설치 Manual에 따라 모든 Package들이 설치 되도록 한다.
    setup으로 login후 S/W 설치 시 Cluster,Package,Patch... 모두 설치.

  - ATM(FORE Sbus Card)사용시 모든 Package가 Install 안되면 문제 될 수 있음.
    ATM Card의 S/W Install시 진행이 안되고 Killd Message 뿌리면서 중단되는 현상

!) Netra j에서의 한글 문제

   * Netra j Model은 기본적으로 한글화가 되지 않았기 때문에 한글을 사용키 위해서는 한글 관련 Package를 추가 설치 해야 된다.

   한글 Package 설치 방법.

   1) 한글 Solaris OS Media를 CD Drive에 넣고 Mount 한다.
      이때 설치하려는 Netra OS 와 동일한 Version 이어야 한다.

   2) #cd cdrom; cd ko_*; cd s0
      # pkgadd -d .

   3) Package 중에서 20개 ALE를 add 한다.

      ALE_number : 14,15,16,68,73,74,75,76,77,78,79,80,81,82,83,89,90,91,92,93

   4) System reboot !

21.11 Application 관련 ERROR

!) Compiler 설치 후 HOST_NAME이 바뀌었을 경우

   아래 File들을 확인 및 새 HOST_NAME으로 조정 해줄 것

   /etc/opt/licenses/licenses_combined    
   /etc/opt/licenses/LIC_CONFIG_SCRIPT
   /opt/SUNWspro/license_dir/sunpro.lic,1

   Host Name을 조정 후 LIC_CONFIG_SCRIPT 다시 실행하고,

   #ps -ef|grep lmgrd Daemon 확인 후
   #source /.cshrc 하고, test 해볼 것

!) OPENWIN에서 한글 입력 Server 안뜰 경우

   /.openwin.init file을 삭제 후 openwin을 실행
   /.openwin.init file의 내용 중

   * "toolwait /usr/openwin/bin/htt -root-geom 410x32+734+860" 부분이 없기 때문에 입력 Server가 안 나타남.

!) Compiler ERROR

   * Host-name이 바뀌었을 경우

     /etc/opt/licenses/licenses_combined
     /opt/SUNWspro/license_dir/sunpro.lic.1

     위 두 File에서 host_name이 틀리면 Compiler 실행 시 license error가 발생한다.
     Host Name 변경 시 이 File을 고쳐줘야 한다.

  * Compiler 시 ERROR

    - License Error : Cannot connect to the license server(vines)..
for product(SPARC Compiler C). (License server may not have been started)
Cannot connect to license server(-15,12:146)Connection refused
cc:acomp failed for test.c

    - /tmp/license_log File이 아래 Message 뿌리면서 lmgrd 가 잘 가동 안될 때

      12:12:56(lmgrd)FLEXlm(v4.1)started on vines(Sun)(7/19/97)
      12:12:56(lmgrd)FLEXlm Copyright 1988-1994, Globetrotter Software,Inc.
      12:12:56(lmgrd)License file: "/etc/opt/licenses/licenses_combines"
      12:12:56(lmgrd)Starting vendor daemons ...
      12:12:56(lmgrd)Started suntechd
      12:12:56(suntechd)Not logging IN messages
      12:12:56(suntechd)Not logging OUT messages
      12:12:56(suntechd)Not logging QUEUED messages
      12:12:56(suntechd)FEATURE sunpro.c LICENSE LINGER set to 300 seconds
      12:12:56(suntechd)FEATURE sunpro.sparcworks.tools INACTIVITY TIMEOUT set to

         3600 seconds

      12:12:56(suntechd)FEATURE sunpro.common INACTIVITY TIMEOUT set to 3600 seconds
      12:12:56(suntechd)Vendor daemon can't talk to lmgrd(Cannot read data from

         license server(-16,15:9) Bad file number)

      12:12:56(lmgrd)Vendor daemon died with status 240
      12:12:56(lmgrd)Since this is an unknown status,lmgrd will
      12:12:56(lmgrd)attempt to re-start the vendor daemon.
      12:12:56(lmgrd)REStarted suntechd(internet tcp_port 32920 pid 928)

               :
               :
               :

      위의 내용을 만들면서 lmgrd가 start가 안 되는 경우

    - /etc/rc2.d/S85lmgrd 내용 중 맨 윗줄에 아래 내용을 삽입한다.
      "ulimit -n -1024"

    - lmgrd Server를 Down 시킨다.
      /etc/opt/License/lmdown -c license_combined -q

    - /tmp/license_log & license_error 두 File 삭제 후 재 가동.
    - 원인 : license server가 열려는 port 개수가 모자란다.

!) Exeed

   * Exeed 실행이 안될 때 확인 사항.

     - 사용자 Home Directory의 ~/.cshrc File에서 xdm 실행 File이 있는 DIR이 PATH에 등록되어 있는지 확인(일반 사용자가 Exeed 사용시 PATH 문제로 실행이 안 되는 경우가 있다.)

!) Netscape

   * Solaris 2.x 에서 Netscape 운용 시 Library 관련 File 문제로 error 화면 발생시 .cshrc File의 setenv LANG ko 에서 ko 대신 "C" 로 대체

!) Sendmail queuename : Cannot create~error

    - Sendmail을 다시 install 한 후에 Mail을 보낸 후 다음과 같은 Error가 생겼다.
      queuename : Cannot create "qfRAA07462" in "/var/spool/mqueue" (euid=115):Permission denied
      이 경우 다시 Test 해보니 Super User의 권한으로 Mail이 가고, 일반사용자의 Mail 전송 시 위와 같은 Error가 생김을 알 수 있었다.

      ;  /usr/lib/sendmail의 mode를 맞추어 준다.
          Error가 생길 당시의 mode는 751이었는데, 정상적인 sendmail의 mode는 4551이다.
          따라서, 다음과 같은 명령어로 sendmail의 mode를 Change 시킨 후에 sendmail daemon을 다시 시작 하면 sendmail이 잘 실행된다.

          #chmod 4551 /usr/lib/sendmail
          #ls /usr/lib/sendmail

          -r-sr-x--x     1     root     sys     295544 12월 8일 08:49     sendmail *

21.12 MOD에서 media를 인식 못할 때

특별한 문제가 없는 걸로 판단되는데, 인식이 안되면 media의 SECTOR당 BYTE수를 확인하라. Solaris File System : 512bytes/sector 이보다 크다면, 인식 못할 것이다.

21.13 rm command로 지워지지 않는 file 지우는 방법

. su root             /* 먼저 Super mode로 들어간다. */

. ls -li filename     /* indode number를 확인한다. */

  82 -rw-r--r-- 1 kumars       0 Jun 26 09:13 filename

. df .                /* 현재 file system의 device file을 확인한다. */

  /home  (/dev/dsk/c0t3d0s7 ): 104682 블럭  236066 파일 /* Solaris 2.x 예. */

. clri /dev/dsk/c0t3d0s7 82             /* inode를 지운다. */

. Reboot if it's on root or else:

  A. sync ; sync ; sync

B. kill -i5 1 or shutdown now         /* for single user */

  C. umount filesystem

  D. fsck -y /dev/xxxxx -y

  E. ^D to multiuser

. fsck                /* fsck를 하는 동안 remove할 것인지를 물으면 "y"로 답한다. */

Creative Commons License
Posted by BLUEDAY™