오픈인디아나에서는 리눅스에서 기본적으로 활성화되어있는 가상콘솔이 비활성화되어있다. 이것을 활성화시키기 위해서는 가상콘솔 서비스데몬을 올려야한다.

svcadm enable vtdaemon
svcadm enable console-login:vt2
svcadm enable console-login:vt3
svcadm enable console-login:vt4
svcadm enable console-login:vt5
svcadm enable console-login:vt6
svccfg -s vtdaemon setprop options/hotkeys=true
svcadm refresh vtdaemon
svcadm restart vtdaemon

오픈인디아나는 리눅스와 다르게, 가상콘솔을 이동하면 이전 콘솔은 비밀번호로 잠궈진다. 유용한 기능인데, 귀찮아하시는 분들도있을 것 같아 스크린잠금기능 해제방법을 알려드린다.
svccfg -s vtdaemon setprop options/secure=false
svcadm refresh vtdaemon
svcadm restart vtdaemon

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

pfexec pkgadd -d http://get.opencsw.org/now

cd /opt/csw/bin
./pkg-get -i clamav
pfexec ./freshclam
su -
vi ~/.profile
PATH에 /opt/csw/bin 추가

 

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

pfexec vi /etc/nsswitch.conf
host: files dns 확인
pfexec vi /etc/resolv.conf
nameserver 123.123.123.123
pfexec vi /etc/nwam/llp
lancard_name static 123.123.123.123
netstat -nr
pfexec route add default 123.123.123.1
pfexec route delete default old_gateway
netstat -nr
pfexec ifconfig lancard_name 12.123.123.123 up

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

USB 외장하드를 원하는 경로에 붙이는 경우
zpool create -m /원하는경로 pool이름 DEVICE_NAME
예) zpool create -m /Data exhdd c3t0d0

이후 zfs에서 스냅샷을 찍을려면 파일시스템을 생성해줘야한다.
zfs create exhdd
zfs set mountpoint=/Data exhdd

이하 새로운 폴더를 만들고 역시 스냅샷을 찍기 위한 파일시스템을 만들 경우
zfs create exhdd/Movie
zfs set mountpoint=/Data/Movie exhdd/Movie

뗏다붙였다 하고싶을 땐
분리: zpool export exhdd
연결: zpool import exhdd

참고: 분리시킨다고 zpool destroy 쳤다간 모든 자료가 싸그리 날아간다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

현재 사용 중인 하드: c1d0
추가 예정 중인 하드: c1d1
 
su - root

format
Searching for disks...
AVAILABLE DISK SELECTIONS:
0. c1d0 <ATA-SAMSUNGHM251JI-0_03 cyl 30398 alt 2 hd 255 sec 63>
/pci@0,0/pci104d,9045@1f,2/disk@0,0
1. c1d1 <WD-My Book 1140-1003-1.82TB>
/pci@0,0/pci104d,9045@1d,7/storage@2/disk@0,0
Specify disk (enter its number):

1번을 눌러 새로 추가한 하드 선택

format> fdisk
3번을 눌러 기존의 파티션을 삭제한 뒤, 1번을 눌러서 파티션을 생성해준다. 1번 Solaris를 고르고 사이즈에서 100을 누르면 100%가 된다. 그리고는 6번을 눌러 빠져나온다.
format> partition
partition> modify

1번 All Free Hog 선택, yes, 0, 엔터x6번, yes, 이름 알아서, y
partition> quit
format> verify
format> quit

zpool attach pool c1d0s0 c1d1s0
여기서 re-silvering이라는 걸 하는데 시간이 좀 걸린다. 얼마나 했는지 확인하는 방법은
zpool status rpool
8.05G resilvered, 91.59% done 이런 식으로 나옴
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1d1s0

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

오픈인디아나에서 기존 오픈솔라리스의 pfexec는 제대로 작동하지 않는다. 따라서, sudo를 쓰거나 혹은 pfexec를 쓰기위한 관리자를 추가해준다.

pfexec 사용하고 싶을 때: usermod -P "Primary Administrator" username

 

su - root 했는데

Password:

Roles can only be assumed by authorized users

su: Sorry 라고 나오면서 전환이 안될시

sudo -i 를 입력해서 root 권한을 획득한 뒤, vi /etc/user_attr 해서 본인의 계정이 적힌 곳을 확인한다. 아래와 같이 되어있을 것이다.
username::::type=normal;profiles=Primary Administrator
아래처럼 해준다. 
username::::type=normal;profiles=Primary Administrator;roles=root

 

사용자 추가명령어useradd -d /export/home/jswlinux -c "Brian Jung" -g staff -m -u 101 -s /bin/bash jswlinux

 

리눅스의 sudo와 비슷한 사용자 루트권한 주기

 

1. 권한 줄 사람의 역할을 /etc/security/exec_attr 에서 고른다.

예) Primary Administrator:suser:cmd:::*:uid=0;gid=0
여기서 Primary Administrator는 uid=0, gid=0 이므로 root나 마찬가지다.

User Management는 exec_attr 파일 안에 명시된 명령어에 한해서 root처럼 명령어를 수행한다.

 

역할부여 전
jswlinux@opensolaris:~$ useradd
UX: useradd: ERROR: Permission denied.

2. 권한을 줄 때는 반드시 루트에서 실행
usermod -P 'User Management' USERNAME
만약 해당유저가 로그인 중이라면 다시 로그인해야 적용

 

3. 역할확인
id -a
sudo id -a

4. 역할에 해당하는 명령어는, 명령어 앞에 pfexec/sudo를 붙임으로서 실행 가능.
예) sudo useradd

 

역할부여 후
jswlinux@opensolaris:~$ sudo useradd
UX: useradd: ERROR: invalid syntax.
usage:  useradd [-u uid [-o] | -g group | -G group[[,group]...] |-d dir | -b base_dir |
-s shell | -c comment | -m [-k skel_dir] | -f inactive |
-e expire | -A authorization [, authorization ...] |
-P profile [, profile ...] | -R role [, role ...] |
-K key=value | -p project [, project ...]] login
useradd -D [-g group | -b base_dir | -f inactive | -e expire
-A authorization [, authorization ...] |
-P profile [, profile ...] | -R role [, role ...] |
-K key=value ... -p project] | [-s shell] | [-k skel_dir]
jswlinux@opensolaris:~$ 


5. pfexec를 매번 붙이는 게 귀찮을 경우
pfexec bash

6. 해당사용자의 역할(직위) 해제
usermod -P '' USERNAME
이후
pfexec id -a

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

vmstat : 메모리 확인

 

psrinfo -v : CPU 상태확인

 

fmdump: 장애발생시 정보기록툴

 

svcadm disable gdm : X-Windows 끄고 텍스트모드로만 사용

 

shutdown -y -i5 -g0 : 셧다운, -y는 yes, -i5는 런레벨5(셧다운, 6은 리부팅), -g0 셧다운 시간(초)


touch response;pkgadd -d . -r ./response -a ./default YUKONXsolx : Marvell Yukon 랜카드 사용시 드라이버 설치법

 

sudo scanpci -v : PCI 장치 스캔

 

cat /etc/release : 릴리즈 정보

 

isainfo -kv : 커널 확인

 

/usr/sbin/prtconf | grep Mem : 메모리 용량확인

 

/usr/bin/prstat -Z : 현재 명령어별 메모리 사용량 확인

 

/etc/security/exec_attr : Roles 리스트

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

Zone 설정은 반드시 root권한을 갖고 해야한다. 따라서 아래의 두 명령어 중 하나를 고른다.

 

pfexec bash

혹은

su - root

 

zoneadm list -cv (ID값 0을 가진 global이라는 존은 솔라리스 설치시 생성되어있는 기본 존이다)

zone_web이라는 이름의 존 생성. 보안을 위해 퍼미션은 700. 위치는 어디든 상관없다. 여기서는 /export/zone_web으로 한다.

mkdir -m 700 /export/zone_web

 

ifconfig -a 해서 자신의 랜카드 이름을 메모해둔다. 잘 모른다면 lo0과 다른 이외의 것이 하나 나올텐데 그것이 분명하다.

 

zone_web 설정파일 생성

zonecfg -z zone_web

zonecfg:zone_web> create

zonecfg:zone_web> set zonepath=/export/zone_web

zonecfg:zone_web> set autoboot=true

zonecfg:zone_web> add net

 

IP는 반드시 같은 서브넷에 있어야한다. 예를 들어 본인의 솔라리스 머신의 IP가 192.168.0.2라면 Zone의 IP 주소는 192.168.0. 안에 있어야한다.

zonecfg:zone_web:net> set address=10.0.1.20/24

zonecfg:zone_web:net> set physical=yuconx0

zonecfg:zone_web:net> end

zonecfg:zone_web> verify

zonecfg:zone_web> commit

zonecfg:zone_web> exit

 

존이 생성됐는지 확인한다.

zoneadm list -cv

zonecfg -z zone_web info

 

존을 설치한다. 시스템 사양에 따라서 시간이 조금 걸리고, 패키지를 인터넷에서 받아오므로 시간이 좀 걸릴 수 있다.

zoneadm -z zone_web install

 

Ready 상태가 되어야 존을 부팅시킬 수 있다

zoneadm -z zone_web ready

 

Ready인지 확인한다.

zoneadm list -cv |grep zone_web

 

존을 부팅한다. ready가 아니고 installed 상태라면 자동으로 ready로 전환 후 boot 상태로 전환한다.

zoneadm -z zone_web boot

 

상태를 확인한다.

zoneadm list -cv

 

Zone이 아직 세팅이 되지 않았으니 세팅해준다. 터미널 고르는데서는 xterm을 고른다. 그외에는 맞는 것들을 적절히 넣으면 되겠다. 참고로 exit해도 안빠져나오니, 세팅이 다 끝나면 ~. 를 눌러서 빠져나오자.

zlogin -C zone_web

 

이제는 이렇게도 접속이 가능하다. 빠져나오는건 Ctrl+D 혹은 exit 하면 된다.

zlogin zone_web

 

nameserver를 설정해준다. Zone에서 빠져나와야한다.

pfexec cp /etc/resolv.conf /export/zone_web/root/etc/

zlogin zone_web

cp /etc/nsswitch.dns /etc/nsswitch.conf

 

존을 셧다운 시킬 때는 다음과 같이 한다. 서버 자체를 셧다운/리부팅 시켜면 오픈인디아나가 자동으로 halt 시켜준다.

zoneadm -z zone_web halt

 

만약 존을 언인스톨 하고싶으면 아래와 같이 한다.

zoneadm -z zone_web uninstall

zonecfg -z zone_web

zonecfg:zone_web> delete

zonecfg:zone_web> exit

zoneadm list -cv


Zone에서 mysql을 설치했는데 svcs에 등록이 안되어있을 때

svccfg import /var/svc/manifest/application/database/mysql_51.xml

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

오픈솔라리스 혹은 오픈인디아나 148

GNOME 데스크탑 메뉴에서
Package Manager -> Internet -> webstack-ui 설치 -> Applications -> Developer Tools -> Web Stack Initialize 클릭하거나, 혹은

초기화 명령어: /usr/share/webstack/libexec/initialize.sh 를 실행한다.
초기화는 한 번만 해주면 된다.
 

APM Start: /usr/share/webstack/libexec/start.sh

APM Stop: /usr/share/webstack/libexec/stop.sh

그놈메뉴 -> 프로그램 -> 개발자 도구 -> Webstack Admin -> Start Apache2/MySQL Servers

mysql -u root

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('비밀번호');

flush privileges;

exit



오픈인디아나 151a
오픈인디아나 151a부터는 오픈솔라리스의 저장소를 이용할 수 없다. 따라서 webstack-ui라는 패키지 자체가 없는데, 두 가지의 패키지만 설치하면 모두 해결이 가능하다.


pfexec pkg install amp SUNWcs

다음 SMF로 아파치를 시작해준다.

pfexec svcadm enable apache22

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,

마침내 염원하던 "솔라리스에서 맥 타임머신 사용하기"가 이루어졌다.

본 노하우를 여기에 공개한다. 본인이 설치부터 작동까지 모두 직접 실행했으며, 현재도 사용하고 있다.

 

작업은 항상 root에서 해야한다. 따라서

$ pfexec bash

혹은

$ su - root

를 사용하여 루트 권한을 획득한다.

 

작업에 필요한 필수 패키지를 설치한다.

GCC를 설치한다. 오픈인디아나 위키에 보면 GCC 4.3을 요구하는데 그러지 않아도 된다.

pkg install gcc-dev

 

그외 컴파일하는데 필수적인 툴들을 설치한다.

pkg install SUNWgcc SUNWgmake SUNWxorg-headers SUNWGtk SUNWsfwhea

pkg install pkg:/developer/gnome/gettext

echo y | pkgadd -d http://mirror.opencsw.org/opencsw/pkgutil-i386.pkg all

echo auto | /opt/csw/bin/pkgutil -i CSWlibgcrypt-dev

 

이제 afp 동작에 절대적으로 있어야하는 버클리DB를 설치해야한다. 버클리 DB는 오라클 웹사이트에서 받을 수 있으며, 본인은 4.8.30 버전으로 했다.

wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz .

 

netatalk를 다운받는다. 본인은 2.2.1 버전으로 했다.

wget http://sourceforge.net/projects/netatalk/files/netatalk/2.2.1/netatalk-2.2.1.tar.bz2/download

 

컴파일하는데 필요한 폴더를 만든다.

mkdir -p $HOME/src

mkdir -p $HOME/src/db-build

cd $HOME/src

 

버클리 DB의 압축을 해제한다.

gzcat $HOME/db-4.8.30.tar.gz | tar xf -

cd $HOME/src/db-build

 

런타임 링크의 환경을 지정해준다.

crle -u -l /usr/local/lib


버클리 DB의 빌드를 시작한다.

$HOME/src/db-4.8.30/dist/configure --prefix=/usr/local

make

make install

cd $HOME

 

빌드가 끝나면 afp 동작에 필요한 avahi 데몬과 mdns 데몬을 설치해준다. 오픈인디아나 151a의 경우는 기본으로 포함하고 있었다. 혹시 모르니 아래의 명령어를 실행해본다.

pkg install system/network/avahi

pkg install service/network/dns/mdns


이제 netatalk를 빌드한다.

cd $HOME/src

bzcat $HOME/netatalk-2.2.1.tar.bz2 | tar xf -

cd $HOME/src/netatalk-2.2.1

./configure --with-pam --prefix=/usr --sysconfdir=/etc

make

make install

 

빌드가 끝나면 반드시 afpd.service와 deviceinfo.service 파일을 생성해줘야한다.

아래의 내용을 붙여넣기 한다. 마우스 드래그가 안되면 아래의 주소를 이용하시면 되겠다.

주소: http://jswlinux.tistory.com/m/94


cat > /etc/avahi/services/afpd.service <<EOF

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>

<type>_afpovertcp._tcp</type>

<port>548</port>

</service>

</service-group>

EOF


cat > /etc/avahi/services/deviceinfo.service <<EOF

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>

<type>_device-info._tcp</type>

<port>548</port>

<txt-record>model=RackMac</txt-record>

</service>

</service-group>

EOF

 

SMF를 이용하여 서비스 데몬을 시작한다.

svcadm enable network/dns/multicast:default

svcadm enable system/avahi-bridge-dsd:default

 

adisk.service 파일을 작성해준다. 역시 아래의 내용을 붙여넣기 하면 된다.

cat > /etc/avahi/services/adisk.service <<EOF

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>

<type>_adisk._tcp</type>

<port>9</port>

<txt-record>sys=waMA=0,adVF=0x100</txt-record>

</service>

</service-group>

EOF

 

서비스데몬을 재시작해준다.

svcadm restart multicast

svcadm restart avahi-bridge-dsd

 

맥OSX 라이언을 위한 설정을 넣어준다.

echo -e "\n- -noddp -transall -uamlist uams_dhx2.so -nosavepassword" >> /etc/netatalk/afpd.conf

 

타임머신 백업을 이용하기 위한 설정을 해준다. 잘 보시고 "원하는타임머신백업위치"에 원하는 위치를 넣으시면 된다.

예) /export/home/user/TimeMachine

 

echo -e "\nfor TimeMachine\n~ cnidscheme:dbd options:usedots,invisibledots,upriv fperm:0660 dperm:0770\n

/원하는타임머신백업위치/TimeMachine "TimeMachine" cnidscheme:dbd options:usedots,invisibledots,upriv,tm fperm:0660 dperm:0770" >> /etc/netatalk/AppleVolumes.default

 

여기까지만 하고나면 Finder 에서 오픈인디아나의 아이콘을 볼 수 있지만, 막상 연결을 하려면 지원되는 버전이 아니라고 나온다.

해외의 수많은 블로그/포럼을 검색했지만 제대로 된 답변을 찾을 수 없었다. 그래서 본인이 방법을 알아냈다. 특히 맥OSX 라이언에서도 정상 작동하며, 심지어는 타임머신 백업용으로도 사용이 가능하다.

 

smbpasswd 같은 명령어가 하나 있다. 이 명령어를 사용하여 유저를 추가해준다. 설정파일이 없으므로 빈 파일을 만들어준다.

touch /etc/netatalk/afppasswd

 

여기서 유저를 추가해주는데, 명령어를 실행하고 나면 비밀번호 설정을 요구한다. 하지만, 본 비밀번호는 afp 접속하고는 아무런 상관이 없다.

다시 말하면, afp://server를 하면 나오는 유저명과 비밀번호는 오픈인디아나 서버의 계정명과 비밀번호를 넣으면 된다는 얘기다. 나도 왜 그런지는 모르겠다. 아무튼 아래의 명령어에서 입력하는 비밀번호는 AFP 연결에 있어서 아무런 영향이 없다.

afppasswd -a USERNAME

 

netatalk를 재시작해준다. 아쉽게도 restart 옵션이 없다.

/etc/init.d/netatalk stop

/etc/init.d/netatalk start


이상이다. 모두 완벽하게 설치됐으며 완벽하게 작동하고 있다.

본 글을 보시고 잘 쓰시는 분이 계시면 리플 하나 남겨주시면 감사하겠습니다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,