싱글 모드 - 윈디하나의 솔라나라

목차

개요

시디를 이용한 싱글 유저 모드 부팅(솔라리스 9 x86 9/04)

그림 설명
Software 1/2 시디를 넣고 부팅하면 다음과 같은 화면이 나온다.
F2키를 눌러 하드웨어를 검색한다. F4키를 눌러 드라이버를 추가할 수도 있다.
하드웨어를 확인한다.
CD롬 부팅을 선택한다.
설명은 없지만 b -s라고 입력한다.
Arguments: -s이라는 문구에 주목하자.
INIT: SINGLE USER MODE이라는 문구가 보이면 성공한 것이다.

시디를 이용한 싱글 유저 모드 부팅(솔라리스 10 x86 5/08)

그림 설명
Solaris 10 u5 DVD를 넣고 부팅하면 다음과 같은 화면이 나온다. 첫번째 Solaris 를 선택한다.
6번 을 선택한다.
루트파티션을 검색해 마운트할 것인가 물어온다. 경로를 확인하고 맞으면 y를 눌러 /a 디렉토리에 자동으로 마운트한다.
Starting Shell이라는 문구가 보이면 성공한 것이다.

라이브 CD 부팅(솔라리스 11.4)

솔라리스 11부터 CD를 사용한 싱글모드 부팅의 개념이 없어졌다. Live Media로 부팅하거나, Shell 으로 부팅하면 된다. 부팅 방법은 윈디하나의 솔라나라: Solaris 11.4.42 설치를 참고하자.

예제: 루트 패스워드 변경하기(솔라리스 10)

이제 싱글 유저 모드로 부팅을 완료했다. 보통 시디롬을 이용한 싱글모드 부팅의 이유라 하면 루트 파티션을 수정해야 할 일이 있는 것이다. 여기서는 루트 패스워드를 잊어버렸다고 가정하고, 루트패스워드를 복원하는 방법에 대해 설명한다.
# pwd 1)
/tmp/root
# df -k 1)
# ls -al /a 2)
# mount -Fufs /dev/dsk/c0d0s0 /a 3)
# vi /a/etc/shadow 4) 5)
root:abcdefghijklm:6445:::::: 에서 root::6445:::::: 으로 abcdefghijklm 부분을 지운다.
# reboot # 작업이 끝나면 재시작 해준다.
이후 정상적으로(하드 디스크로) 부팅한 후 루트 패스워드를 입력하지 않고 엔터만 치면 로그인 될 것이다. 접속후 passwd(1)를 사용해 패스워드를 변경하는 것을 잊지 말자.

1) 현재 디렉토리가 /tmp/root이며, df(8)명령을 사용해 보면 /devices, /cdrom, /fd, /tmp 등이 마운트 되어있다.
2) 특정 슬라이스를 마운트 하려면 빈 디렉토리가 필요한데, 싱글모드에서는 디렉토리를 생성할 곳이 없다. 그래서 /a 디렉토리를 만들어 놓은 것이다. 솔라리스 10의 경우 3번 단계에서 마운트할 것인가를 물어오는데, 이때 마운트 했다면 기존의 루트 디렉토리의 내용이 보일 것이다. 만약 아무것도 없으면 아래의 내용대로 마운트해야한다. 만약 솔라리스 10 이고 부팅시 나오는 루트 파티션을 /a에 마운트 하겠냐는 질문에 y로 대답했다면, 이미 마운트되어있을 것이다.
3) ZFS라면 부팅시 자동으로 마운트 되지만, UFS 의 경우 수동으로 마운트 해야 한다. 이 경우 자신의 파일 시스템의 슬라이스 번호와 마운트 지점은 미리 메모해 놓는 것이 좋다. 루트 파일 시스템은 보통 슬라이스 0번이긴 하지만 설치할 때 또는 이후 유지보수중 어쩔 수 없는 상황으로 인해 변경하기도 하기 때문이다. 평시에 간단히 df명령을 이용해 자신의 마운트 지점과 디바이스/슬라이스 번호를 알 수 있다.
# 정상적인 시스템에서 실행(싱글모드 아닙니다)
windy@wl ~ $ df -k
파일시스템           K바이트    사용    가용   용량    설치지점
/dev/dsk/c0d0s0       491977  328744  114036    75%    /
/dev/dsk/c0d0s6      4127764 1617568 2468919    40%    /usr
/proc                      0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
fd                         0       0       0     0%    /dev/fd
/dev/dsk/c0d0s1       491977   34167  408613     8%    /var
swap                 1398792      20 1398772     1%    /var/run
swap                 1398772       0 1398772     0%    /tmp
/dev/dsk/c0d0s7      4123984 2989927 1092818    74%    /export/home
windy@wl ~ $
4) 루트 패스워드를 저장한 파일을 열어 첫번째 라인의 패스워드 컬럼을 지운다. shadow 파일은 : 으로 컬럼을 구분하며 패스워드 컬럼은 2번째 컬럼이다. root:abcdefghijklm:6445::::::되어있다면 root::6445:::::: 으로 abcdefghijklm 부분을 지우면 된다.
5) vi 에디터가 올바르게 동작하지 않으면(커서가 움직이지 않거나, 터미널 모드를 알 수 없다는 오류가 발생하면) TERM환경 변수를 sun 이나 sun-color 로 변경한다.
# vi /a/etc/shadow
I don't know what kind of terminal you are on - all I have is 'unknown'
[Using open mode]
"/a/etc/shadow" [Read only] ...
:q
# TERM=sun
# export TERM

예제: 루트 패스워드 변경하기(솔라리스 11.4)

Shell 모드로 진입한 후 아래와 같이 작업할 수 있다.

# zpool import -f rpool
# mkdir /a
# beadm mount solaris /a 1)
# vi /a/etc/shadow
# bootadm update-archive /R /a
# beadm umount solaris
1) 여기서 solarisBE 의 이름이다. beadm list를 실행해보면 BE 이름을 알아낼 수 있다.
RSS ATOM XHTML 5 CSS3