サーバエンジニアになりたい無職の生活

元メジャー通信技術のマイナーエンジニアで今はサーバエンジニアになろうかなと思ってる無職ですが

CentOS6.7にVNCサーバ導入

複数台のPC立ち上げて作業する時に、
操作するPCを変更する度に移動したりするのが面倒なので
CentOS6.7上にVNCサーバ導入してWindows7から接続した時のメモ。


環境
サーバ側
OS: CentOS 6.7 64bit
サーバソフト: tigervnc (公式サイト)

クライアント側
OS: Windows7 Professional
クライアントソフト: VNC Viewer (公式サイト)


注意
自宅で使うだけなのでこの手順では暗号化は考慮していない。
暗号化する場合はsshポートフォワーディングを使う


tigervncサーバの起動方法について
お便利サーバー.com(http://www.obenri.com/_vnc/vnc_server1.html)によると
tigervncサーバの起動方法は2つあるらしい。

1: /etc/sysconfig/vncserversに利用するアカウント情報を記載して
   起動スクリプトから起動する方法
2: 任意のユーザでvncserverコマンドを実行してデーモンを起動する方法

1つ目の方法の方が一般的だと思うので、
今回は1つ目の方法で導入して、2つ目は試してみるだけ試してみます。


手順
1. サーバ側設定
2. 動作確認
おまけ: 任意のユーザでデーモンを起動する


1. サーバ側設定
サーバ側の手順は、
パッケージインストール →
/etc/sysconfig/vncserverにVNCを使用するアカウントを追加 →
ログインパスワード設定 →
デーモン起動 →
必要ならiptablesの設定を行う。

まず、パッケージインストールする


[root@localhost ~]# yum install tigervnc-server

================================================================================
パッケージ アーキテクチャ
バージョン リポジトリー
容量
================================================================================
インストールしています:
tigervnc-server x86_64 1.1.0-16.el6.centos base 1.0 M

トランザクションの要約
================================================================================
インストール 1 パッケージ

総ダウンロード容量: 1.0 M
インストール済み容量: 2.6 M


インストールされたファイル見てみる。
起動スクリプト、設定ファイル、コマンド、manページっていう感じ。


[root@localhost ~]# rpm -ql tigervnc-server
/etc/rc.d/init.d/vncserver
/etc/sysconfig/vncservers
/usr/bin/Xvnc
/usr/bin/vncconfig
/usr/bin/vncpasswd
/usr/bin/vncserver
/usr/bin/x0vncserver
/usr/share/man/man1/Xvnc.1.gz
/usr/share/man/man1/vncconfig.1.gz
/usr/share/man/man1/vncpasswd.1.gz
/usr/share/man/man1/vncserver.1.gz
/usr/share/man/man1/x0vncserver.1.gz


次に設定ファイル「/etc/sysconfig/vncserver」にVNCを使用するアカウント情報を追加する。
このファイルに記載した内容は起動スクリプト内で解釈されてデーモン起動時に引数として渡される。

   VNCSERVERSの設定
   ディスプレイ番号とユーザ名を設定する。
   ディスプレイ番号0は通常のディスプレイで使用済み。
   5900+ディスプレイ番号がTCPのポート番号となる。
   書式: VNCSERVERS="ディスプレイ番号1:ユーザ名1 [ディスプレイ番号2:ユーザ名2 ...]"

   VNCSERVERARGSの設定
   -geometryは画面サイズを指定する
   (デフォルトが1024x768なので、-geometry 1024x768は省略しても同じ結果)
   -nolisten tcpを指定すると、X用のTCPポート番号6001での待受が行われない。
   書式: VNCSERVERARGS[ディスプレイ番号]="設定"


ということで設定する。


[root@localhost ~]# vi /etc/sysconfig/vncservers
...
VNCSERVERS="1:test" #追記
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp" #追記


次にログインするユーザにスイッチしてパスワード設定する。


[test@localhost ~]$ which vncpasswd
/usr/bin/vncpasswd
[test@localhost ~]$ vncpasswd
Password:
Verify:


manページ(man vncserver)によると、
$HOME/.vnc配下にpasswdファイルが保存されているとあるので見てみる。
(logなども同じフォルダに保存されるらしい。)


[test@localhost ~]$ ls -l .vnc
合計 4
-rw-------. 1 test test 8 12月 29 03:53 2015 passwd
[test@localhost ~]$ cat passwd
cat: passwd: そのようなファイルやディレクトリはありません
[test@localhost ~]$ cat .vnc/passwd
セッ・リ
→平文ではなく暗号化されて保存されていました。


デーモン起動する、自動起動も設定する。


[root@localhost ~]# chkconfig --list vncserver
vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost ~]# chkconfig vncserver on
[root@localhost ~]# service vncserver status
Xvnc は停止しています
[root@localhost ~]# service vncserver start
VNC サーバー を起動中: 1:test xauth: creating new authority file /home/test/.Xauthority

New 'localhost.localdomain:1 (test)' desktop is localhost.localdomain:1

Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/localhost.localdomain:1.log

[ OK ]


CentOS6.7はデフォルトでiptablesが有効なので設定する。
一応TCPポート番号確認しておく


[root@localhost ~]# netstat -atnp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 23959/Xvnc
...


各チェーンで上から順番に評価されるので、
既存設定確認後に挿入→保存→設定ファイル確認する。


[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
...

[root@localhost ~]# iptables -I INPUT 5 -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
[root@localhost ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5901
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
...

[root@localhost ~]# iptables-save > /etc/sysconfig/iptables
[root@localhost ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Tue Dec 29 05:40:04 2015
∗filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [231:45307]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Dec 29 05:40:04 2015


2. 動作確認
クライアント側のソフトはVNC Viewerを使いました。
IPアドレス、ポート番号、パスワード入力するだけです。

f:id:girochinful:20151229071646j:plain

f:id:girochinful:20151229071652j:plain


おまけ: 任意のユーザでデーモンを起動する
上記の続きでやるので、デーモン止めます。


[root@localhost ~]# service vncserver stop
VNC サーバー を停止中: 1:test [ OK ]

接続するユーザにスイッチしてパスワードなどのファイルを消す(消さなくても良い)。


[test@localhost ~]$ ls -l .vnc/
合計 16
-rw-rw-r--. 1 test test 7772 12月 29 06:12 2015 localhost.localdomain:1.log
-rw-------. 1 test test 8 12月 29 03:53 2015 passwd
-rwxr-xr-x. 1 test test 654 12月 29 04:37 2015 xstartup
[test@localhost ~]$ rm -rf .vnc/
[test@localhost ~]$ ls -l .vnc/
ls: cannot access .vnc/: そのようなファイルやディレクトリはありません

ディスプレイ番号を指定してデーモン起動する

  • geometryは画面サイズを指定する(デフォルトが1024x768なので、-geometry 1024x768は省略しても同じ結果)
  • nolisten tcpを指定すると、X用のTCPポート番号6001での待受が行われない。

上でパスワードファイルを消しているので、入力を求められる。


[test@localhost ~]$ vncserver :1 -geometry 1024x768 -nolisten tcp

You will require a password to access your desktops.

Password:
Verify:

New 'localhost.localdomain:1 (test)' desktop is localhost.localdomain:1

Creating default startup script /home/test/.vnc/xstartup
Starting applications specified in /home/test/.vnc/xstartup
Log file is /home/test/.vnc/localhost.localdomain:1.log

ちゃんと起動している(接続も問題なし)


[test@localhost ~]$ ps aux | grep vnc
test 26584 0.3 2.4 129476 24544 pts/0 S 06:32 0:00 /usr/bin/Xvnc :1 -desktop localhost.localdomain:1 (test) -auth /home/test/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /home/test/.vnc/passwd -rfbport 5901 -fp catalogue:/etc/X11/fontpath.d -pn -nolisten tcp


終了は"vncserver -kill :1"です。


[test@localhost ~]$ vncserver -kill :1
Killing Xvnc process ID 26584

CentOS6のネットワークの設定ファイル

CentOSでネットワークの設定変更する時どのファイルだったかな?
と思うことが多いのでまとめてみる。


環境
CentOS 6.7 64bit
VMware Workstation 12 Player


ファイル一覧

ファイル名役割
/etc/hostsホスト名とIPアドレスの対応
/etc/sysconfig/network-scripts/
ifcfg-eth0
ネットワークIFの設定
/etc/nsswitch.conf名前解決順序の設定
/etc/resolv.confドメイン名、DNSサーバの設定
/etc/sysconfig/networkホスト名の設定


/etc/hosts
ホスト名とIPアドレスの対応を静的に設定する


[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

例えば、ping localhostとすると127.0.0.1pingが送信される


/etc/sysconfig/network-scripts/ifcfg-eth0
IPアドレスdhcpで取得する、静的に設定する等、ネットワークIFの設定に使う。

各パラメータの説明資料は下記かなと思う。
9.2. インターフェース設定ファイル(RHEL6の製品マニュアル)

RHEL7やCentOS7では、このファイルの編集ではなく、nmtui/nmcliコマンドが推奨されるらしい

static、ブート時に起動でインストールした時のDefaultの設定

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=0cd30aaa-6563-45ec-8cef-7e95c3d127f2
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:45:CF:58
IPADDR=192.168.11.50
PREFIX=24
GATEWAY=192.168.11.1
DNS1=192.168.11.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

dhcp、ブート時に起動でインストールした時のDefaultの設定

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=be238bbe-9064-454a-9a26-7e6edc73e06d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=00:0C:29:03:AD:20
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"


/etc/nsswitch.conf
名前解決順序を設定するファイル
「hosts: files dns」はホスト名を/etc/host → DNSサーバの順で解決するという意味。


[root@localhost ~]# cat /etc/nsswitch.conf
...
passwd: files
shadow: files
group: files

#hosts: db files nisplus nis dns
hosts: files dns
...


/etc/resolv.conf
DNSサーバ関連の設定ファイル


[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
domain example.com
search test google.co.jp
nameserver 192.168.239.2
nameserver 8.8.8.8

パラメータ説明

domainホストが属するドメイン名を記述する
1つのドメイン名のみ記載できる
DNS検索の際ドメイン名を付加する
search複数ドメイン名を記載できる
複数ドメイン名を記載する場合は
スペースを開けてドメイン名を記載する
複数記載した場合、指定した順にドメイン名を付加する
nameserverDNSサーバのIPアドレスを記述する
複数ある場合は1行に1つずつ記載する

domainとsearchはどちらか記載すれば良いが、両方記載すると後ろに書いた方が有効になる。
searchに複数ドメイン名を記載すると、順にドメイン名が付加されて検索される。

上記の設定で"www"を指定して検索すると、www.google.co.jpのIPアドレスが得られた


[root@localhost ~]# nslookup www
Server: 192.168.239.2
Address: 192.168.239.2#53

Non-authoritative answer:
Name: www.google.co.jp
Address: 173.194.120.88
Name: www.google.co.jp
Address: 173.194.120.95
Name: www.google.co.jp
Address: 173.194.120.79
Name: www.google.co.jp
Address: 173.194.120.87

LinuxのMBRをダンプしたり覗いてみる

「30日でできる! OS自作入門」という本を読んで
MBRブートローダの仕組みが割りと分かったので、LinuxMBRを覗いてみる
覗いてみるだけですが。


環境
CentOS 6.7 64bit
grub 0.97


手順
1. 16進で覗いてみる
2. MBRをダンプする
3. 逆アセンブルしてみる
4. 参考にしたサイト


1. 16進で覗いてみる

hexdumpコマンドで覗いてみる。
0x178からの"GRUB .Geom.Hard Disk.Read. Error"は文字列なんだろうなと思った位。


[root@localhost ~]# hexdump -C -n 512 /dev/sda
00000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............|
00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..|
00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u|
00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..|
00000040 80 00 00 80 fe 49 08 00 00 08 fa 90 90 f6 c2 80 |.....I..........|
00000050 75 02 b2 80 ea 59 7c 00 00 31 c0 8e d8 8e d0 bc |u....Y|..1......|
00000060 00 20 fb a0 40 7c 3c ff 74 02 88 c2 52 f6 c2 80 |. ..@|<.t...R...|
00000070 74 54 b4 41 bb aa 55 cd 13 5a 52 72 49 81 fb 55 |tT.A..U..ZRrI..U|
00000080 aa 75 43 a0 41 7c 84 c0 75 05 83 e1 01 74 37 66 |.uC.A|..u....t7f|
00000090 8b 4c 10 be 05 7c c6 44 ff 01 66 8b 1e 44 7c c7 |.L...|.D..f..D|.|
000000a0 04 10 00 c7 44 02 01 00 66 89 5c 08 c7 44 06 00 |....D...f.\..D..|
000000b0 70 66 31 c0 89 44 04 66 89 44 0c b4 42 cd 13 72 |pf1..D.f.D..B..r|
000000c0 05 bb 00 70 eb 7d b4 08 cd 13 73 0a f6 c2 80 0f |...p.}....s.....|
000000d0 84 f0 00 e9 8d 00 be 05 7c c6 44 ff 00 66 31 c0 |........|.D..f1.|
000000e0 88 f0 40 66 89 44 04 31 d2 88 ca c1 e2 02 88 e8 |..@f.D.1........|
000000f0 88 f4 40 89 44 08 31 c0 88 d0 c0 e8 02 66 89 04 |..@.D.1......f..|
00000100 66 a1 44 7c 66 31 d2 66 f7 34 88 54 0a 66 31 d2 |f.D|f1.f.4.T.f1.|
00000110 66 f7 74 04 88 54 0b 89 44 0c 3b 44 08 7d 3c 8a |f.t..T..D.;D.}<.|
00000120 54 0d c0 e2 06 8a 4c 0a fe c1 08 d1 8a 6c 0c 5a |T.....L......l.Z|
00000130 8a 74 0b bb 00 70 8e c3 31 db b8 01 02 cd 13 72 |.t...p..1......r|
00000140 2a 8c c3 8e 06 48 7c 60 1e b9 00 01 8e db 31 f6 |*....H|`......1.|
00000150 31 ff fc f3 a5 1f 61 ff 26 42 7c be 7f 7d e8 40 |1.....a.&B|..}.@|
00000160 00 eb 0e be 84 7d e8 38 00 eb 06 be 8e 7d e8 30 |.....}.8.....}.0|
00000170 00 be 93 7d e8 2a 00 eb fe 47 52 55 42 20 00 47 |...}.*...GRUB .G|
00000180 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 |eom.Hard Disk.Re|
00000190 61 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd |ad. Error.......|
000001a0 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00 |..<.u...........|
000001b0 00 00 00 00 00 00 00 00 5a 50 0c 00 00 00 80 20 |........ZP..... |
000001c0 21 00 83 dd 1e 3f 00 08 00 00 00 a0 0f 00 00 dd |!....?..........|
000001d0 1f 3f 8e fe ff ff 00 a8 0f 00 00 58 70 02 00 00 |.?.........Xp...|
000001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200


2. MBRをダンプする


[root@localhost ~]# dd if=/dev/sda of=~/mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000741461 s, 691 kB/s
[root@localhost ~]# ls -l mbr.img
-rw-r--r--. 1 root root 512 12月 27 15:36 2015 mbr.img


3. 逆アセンブルしてみる

objdumpコマンドを使う

-b binary: 付帯情報がついてないため、フォーマットを指定するらしい
-m i8086: アーキテクチャを指定する
          16bitだと思うのでi8086を指定したけど合ってるのかな(?)
-D: 全て のセクションを逆アセンブルする


[root@localhost ~]# objdump -b binary -m i8086 -D mbr.img

mbr.img: file format binary


Disassembly of section .data:

00000000 <.data>:
0: eb 48 jmp 0x4a
2: 90 nop
3: 10 8e d0 bc adc %cl,-0x4330(%bp)
7: 00 b0 b8 00 add %dh,0xb8(%bx,%si)
b: 00 8e d8 8e add %cl,-0x7128(%bp)
f: c0 fb be sar $0xbe,%bl
12: 00 7c bf add %bh,-0x41(%si)
15: 00 06 b9 00 add %al,0xb9
19: 02 f3 add %bl,%dh
1b: a4 movsb %ds:(%si),%es:(%di)
1c: ea 21 06 00 00 ljmp $0x0,$0x621
21: be be 07 mov $0x7be,%si
24: 38 04 cmp %al,(%si)
26: 75 0b jne 0x33
28: 83 c6 10 add $0x10,%si
2b: 81 fe fe 07 cmp $0x7fe,%si
2f: 75 f3 jne 0x24
31: eb 16 jmp 0x49
33: b4 02 mov $0x2,%ah
35: b0 01 mov $0x1,%al
37: bb 00 7c mov $0x7c00,%bx
3a: b2 80 mov $0x80,%dl
3c: 8a 74 03 mov 0x3(%si),%dh
3f: 02 80 00 00 add 0x0(%bx,%si),%al
43: 80 fe 49 cmp $0x49,%dh
46: 08 00 or %al,(%bx,%si)
48: 00 08 add %cl,(%bx,%si)
4a: fa cli
4b: 90 nop
4c: 90 nop
4d: f6 c2 80 test $0x80,%dl
50: 75 02 jne 0x54
52: b2 80 mov $0x80,%dl
54: ea 59 7c 00 00 ljmp $0x0,$0x7c59
59: 31 c0 xor %ax,%ax
5b: 8e d8 mov %ax,%ds
5d: 8e d0 mov %ax,%ss
5f: bc 00 20 mov $0x2000,%sp
62: fb sti
63: a0 40 7c mov 0x7c40,%al
66: 3c ff cmp $0xff,%al
68: 74 02 je 0x6c
6a: 88 c2 mov %al,%dl
6c: 52 push %dx
6d: f6 c2 80 test $0x80,%dl
70: 74 54 je 0xc6
72: b4 41 mov $0x41,%ah
74: bb aa 55 mov $0x55aa,%bx
77: cd 13 int $0x13
79: 5a pop %dx
7a: 52 push %dx
7b: 72 49 jb 0xc6
7d: 81 fb 55 aa cmp $0xaa55,%bx
81: 75 43 jne 0xc6
83: a0 41 7c mov 0x7c41,%al
86: 84 c0 test %al,%al
88: 75 05 jne 0x8f
8a: 83 e1 01 and $0x1,%cx
8d: 74 37 je 0xc6
8f: 66 8b 4c 10 mov 0x10(%si),%ecx
93: be 05 7c mov $0x7c05,%si
96: c6 44 ff 01 movb $0x1,-0x1(%si)
9a: 66 8b 1e 44 7c mov 0x7c44,%ebx
9f: c7 04 10 00 movw $0x10,(%si)
a3: c7 44 02 01 00 movw $0x1,0x2(%si)
a8: 66 89 5c 08 mov %ebx,0x8(%si)
ac: c7 44 06 00 70 movw $0x7000,0x6(%si)
b1: 66 31 c0 xor %eax,%eax
b4: 89 44 04 mov %ax,0x4(%si)
b7: 66 89 44 0c mov %eax,0xc(%si)
bb: b4 42 mov $0x42,%ah
bd: cd 13 int $0x13
bf: 72 05 jb 0xc6
c1: bb 00 70 mov $0x7000,%bx
c4: eb 7d jmp 0x143
c6: b4 08 mov $0x8,%ah
c8: cd 13 int $0x13
ca: 73 0a jae 0xd6
cc: f6 c2 80 test $0x80,%dl
cf: 0f 84 f0 00 je 0x1c3
d3: e9 8d 00 jmp 0x163
d6: be 05 7c mov $0x7c05,%si
d9: c6 44 ff 00 movb $0x0,-0x1(%si)
dd: 66 31 c0 xor %eax,%eax
e0: 88 f0 mov %dh,%al
e2: 40 inc %ax
e3: 66 89 44 04 mov %eax,0x4(%si)
e7: 31 d2 xor %dx,%dx
e9: 88 ca mov %cl,%dl
eb: c1 e2 02 shl $0x2,%dx
ee: 88 e8 mov %ch,%al
f0: 88 f4 mov %dh,%ah
f2: 40 inc %ax
f3: 89 44 08 mov %ax,0x8(%si)
f6: 31 c0 xor %ax,%ax
f8: 88 d0 mov %dl,%al
fa: c0 e8 02 shr $0x2,%al
fd: 66 89 04 mov %eax,(%si)
100: 66 a1 44 7c mov 0x7c44,%eax
104: 66 31 d2 xor %edx,%edx
107: 66 f7 34 divl (%si)
10a: 88 54 0a mov %dl,0xa(%si)
10d: 66 31 d2 xor %edx,%edx
110: 66 f7 74 04 divl 0x4(%si)
114: 88 54 0b mov %dl,0xb(%si)
117: 89 44 0c mov %ax,0xc(%si)
11a: 3b 44 08 cmp 0x8(%si),%ax
11d: 7d 3c jge 0x15b
11f: 8a 54 0d mov 0xd(%si),%dl
122: c0 e2 06 shl $0x6,%dl
125: 8a 4c 0a mov 0xa(%si),%cl
128: fe c1 inc %cl
12a: 08 d1 or %dl,%cl
12c: 8a 6c 0c mov 0xc(%si),%ch
12f: 5a pop %dx
130: 8a 74 0b mov 0xb(%si),%dh
133: bb 00 70 mov $0x7000,%bx
136: 8e c3 mov %bx,%es
138: 31 db xor %bx,%bx
13a: b8 01 02 mov $0x201,%ax
13d: cd 13 int $0x13
13f: 72 2a jb 0x16b
141: 8c c3 mov %es,%bx
143: 8e 06 48 7c mov 0x7c48,%es
147: 60 pusha
148: 1e push %ds
149: b9 00 01 mov $0x100,%cx
14c: 8e db mov %bx,%ds
14e: 31 f6 xor %si,%si
150: 31 ff xor %di,%di
152: fc cld
153: f3 a5 rep movsw %ds:(%si),%es:(%di)
155: 1f pop %ds
156: 61 popa
157: ff 26 42 7c jmp *0x7c42
15b: be 7f 7d mov $0x7d7f,%si
15e: e8 40 00 call 0x1a1
161: eb 0e jmp 0x171
163: be 84 7d mov $0x7d84,%si
166: e8 38 00 call 0x1a1
169: eb 06 jmp 0x171
16b: be 8e 7d mov $0x7d8e,%si
16e: e8 30 00 call 0x1a1
171: be 93 7d mov $0x7d93,%si
174: e8 2a 00 call 0x1a1
177: eb fe jmp 0x177
179: 47 inc %di
17a: 52 push %dx
17b: 55 push %bp
17c: 42 inc %dx
17d: 20 00 and %al,(%bx,%si)
17f: 47 inc %di
180: 65 6f outsw %gs:(%si),(%dx)
182: 6d insw (%dx),%es:(%di)
183: 00 48 61 add %cl,0x61(%bx,%si)
186: 72 64 jb 0x1ec
188: 20 44 69 and %al,0x69(%si)
18b: 73 6b jae 0x1f8
18d: 00 52 65 add %dl,0x65(%bp,%si)
190: 61 popa
191: 64 00 20 add %ah,%fs:(%bx,%si)
194: 45 inc %bp
195: 72 72 jb 0x209
197: 6f outsw %ds:(%si),(%dx)
198: 72 00 jb 0x19a
19a: bb 01 00 mov $0x1,%bx
19d: b4 0e mov $0xe,%ah
19f: cd 10 int $0x10
1a1: ac lods %ds:(%si),%al
1a2: 3c 00 cmp $0x0,%al
1a4: 75 f4 jne 0x19a
1a6: c3 ret
...
1b7: 00 5a 50 add %bl,0x50(%bp,%si)
1ba: 0c 00 or $0x0,%al
1bc: 00 00 add %al,(%bx,%si)
1be: 80 20 21 andb $0x21,(%bx,%si)
1c1: 00 83 dd 1e add %al,0x1edd(%bp,%di)
1c5: 3f aas
1c6: 00 08 add %cl,(%bx,%si)
1c8: 00 00 add %al,(%bx,%si)
1ca: 00 a0 0f 00 add %ah,0xf(%bx,%si)
1ce: 00 dd add %bl,%ch
1d0: 1f pop %ds
1d1: 3f aas
1d2: 8e fe mov %si,%?
1d4: ff (bad)
1d5: ff 00 incw (%bx,%si)
1d7: a8 0f test $0xf,%al
1d9: 00 00 add %al,(%bx,%si)
1db: 58 pop %ax
1dc: 70 02 jo 0x1e0
...
1fe: 55 push %bp
1ff: aa stos %al,%es:(%di)


4. 参考にしたサイト

Linux徹底詳解再訪 続報・その1 http://memo.wnishida.com/?date=20040429
LinuxにおけるMBRのまとめとバックアップ方法 http://d.hatena.ne.jp/adsaria/20080812
OSを作るときによく使うBIOSファンクション (AT互換機) http://oswiki.osask.jp/?(AT)BIOS
Complete 8086 instruction set

VMwareで仮想マシンをコピーするとeth1になるのをeth0に修正する

VMware仮想マシンをコピーすると
コピー前後でネットワークインターフェースの認識名が変わるので修正する

f:id:girochinful:20151227150458j:plain

環境
CentOS 6.7 64bit
VMware Workstation 12 Player


手順
1. 事前設定確認
2. udevの設定修正
3. ifcfg-eth0修正
4. OSリスタート
5. 事後確認


1. 事前設定確認
eth1になっている、コピー前からMACアドレスも変わっている。


[root@localhost ~]# ifconfig
eth1 Link encap:Ethernet HWaddr 00:0C:29:2A:54:E3
inet addr:192.168.239.139 Bcast:192.168.239.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2a:54e3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:237 errors:0 dropped:0 overruns:0 frame:0
TX packets:232 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:36605 (35.7 KiB) TX bytes:55256 (53.9 KiB)
...


2. udevの設定修正


[root@localhost ~]# ls -l /etc/udev/rules.d/
合計 44
-rw-r--r--. 1 root root 1652 11月 12 18:36 2010 60-fprint-autosuspend.rules
-rw-r--r--. 1 root root 1060 11月 12 07:19 2010 60-pcmcia.rules
-rw-r--r--. 1 root root 316 10月 15 19:38 2014 60-raw.rules
-rw-r--r--. 1 root root 1370 12月 26 02:20 2015 70-persistent-cd.rules
-rw-r--r--. 1 root root 585 12月 26 00:33 2015 70-persistent-net.rules
-rw-r--r--. 1 root root 320 1月 12 22:17 2015 90-alsa.rules
-rw-r--r--. 1 root root 83 10月 15 19:49 2014 90-hal.rules
-rw-r--r--. 1 root root 2486 11月 11 09:32 2010 97-bluetooth-serial.rules
-rw-r--r--. 1 root root 304 7月 24 19:04 2015 98-kexec.rules
-rw-r--r--. 1 root root 54 12月 8 09:56 2011 99-fuse.rules
-rw-r--r--. 1 root root 341 12月 25 17:41 2015 99-vmware-scsi-udev.rules

[root@localhost ~]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:03:ad:20", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:2a:54:e3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

1つ目のエントリを消去して、2つ目のエントリのNAMEをNAME="eth0"に修正する。
(2つ目のエントリ消去して、1つ目のエントリのMACアドレスを修正しても良い。)


[root@localhost ~]# cat /etc/udev/rules.d/70-persistent-net.rules
...
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:2a:54:e3", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


3. ifcfg-eth0修正
MACアドレスを変更する


[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vi ifcfg-eth0
NAME=eth0
TYPE=Ethernet
UUID=be238bbe-9064-454a-9a26-7e6edc73e06d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
HWADDR=00:0c:29:2a:54:e3
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"


4. OSリスタート


[root@localhost network-scripts]# shutdown -r now


5. 事後確認
eth0として認識されている、しかしIPアドレスが変わった。


[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:2A:54:E3
inet addr:192.168.239.130 Bcast:192.168.239.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2a:54e3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:99 errors:0 dropped:0 overruns:0 frame:0
TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14195 (13.8 KiB) TX bytes:15991 (15.6 KiB)
...

bashの設定ファイルとか、環境変数の設定とか

CentOS6.7でファイルに環境変数設定しようと思って、
どのファイルに設定するんだったかな?と思って調べたまとめ

bashの設定ファイル一覧

適用ファイル名タイミング主な処理
全ユーザ/etc/bashrc(Red Hat系)
/etc/bash.bashrc(Debian系)
bash起動時bash起動時に実行させたい処理
エイリアスなど)
/etc/profileログイン時環境変数など利用環境に関わるもの
個別ユーザ~/.bash_profile
~/.bash_login(上記ない場合)
~/.bashrcbash起動時bash起動時に実行させたい処理
エイリアスなど)
~/.bash_logoutログアウト時ログアウト時に実行させたい処理


今回はユーザ個別でPATHを追加したかったので、下記のように編集


[oracle@localhost ~]# vi .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:$
ORACLE_BASE=/u01/app/oracle #追加
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1 #追加
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #追加

export PATH ORACLE_BASE ORACLE_HOME #修正

ログアウトして再確認


[oracle@localhost ~]$ printenv | egrep "^PATH|ORACLE_BASE|ORACLE_HOME"
ORACLE_BASE=/u01/app/oracle
PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/home/oracle/bin:$:/home/oracle/bin:/u01/app/oracle/product/12.1.0/dbhome_1/bin
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1

CentOS6.7にOracle Database 12cのインストールメモ

12c DBA bronze勉強のため
VMware上のCentOS6.7にOracle Database 12cをインストールした時のメモ


環境
CentOS 6.7 64bit(HDD 20GB、メモリ2GB、Desktop)
Oracle Database 12c Release 1 (12.1.0.2.0) - Enterprise Edition
WMware Workstation 12 Player


注意点
Oracle Databaseは64bitなので、OSも64bitを用意
Oracle Databaseのインストールにはマシン要件があるので、満たすように仮想マシンを設定する
 要件みたさないと、インストールプロセスが進められないはず
・下記手順では、インストールプロセスの前提条件チェックの検証結果を「すべて無視」にしているので良くない
・正式な手順は下記にあるのかなと思うけど、読んでない
 https://docs.oracle.com/cd/E57425_01/121/nav/portal_11.htm


手順
1. Oracle Databaseの事前準備
2. OSの事前準備
3. インストール用アカウント作成
4. インストールディスクのマウント
5. 環境変数の設定
6. インストール
7. 動作確認


1. Oracle Databaseの事前準備
Oracle Technology Network」からLinux用のzipファイルを2つダウンロードする。
http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html

解凍して1つのフォルダにまとめてiso形式にする(ImgBurnを使用)
f:id:girochinful:20151226232106j:plain


2. OSの事前準備
メモリ、スワップ、残ディスク容量を確認しておく。

メモリ、スワップ領域→2GBだから大丈夫だろう


[root@localhost ~]# cat /proc/meminfo
MemTotal: 2039004 kB
MemFree: 1404700 kB
...
SwapTotal: 2097148 kB
...

残ディスク容量→13GB残っているから大丈夫だろう


[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 18G 4.1G 13G 26% /
tmpfs tmpfs 996M 228K 996M 1% /dev/shm
/dev/sda1 ext4 477M 42M 410M 10% /boot


必要なパッケージ入れる
パッケージ足りないと「前提条件チェック」で警告が出る

PackageDescription
compat-libcap1-1.10Library for getting and setting POSIX.1e capabilities
compat-libstdc++-33-3.2.3Compatibility standard C++ libraries
libstdc++-devel-4.4.4Header files and libraries for C++ development
gcc-4.4.4Various compilers (C, C++, Objective-C, Java, ...)
gcc-c++-4.4.4C++ support for GCC
kshThe Original ATT Korn Shell
libaio-devel-0.3.107Development files for Linux-native asynchronous I/O access


[root@localhost ~]# yum install compat-libcap1-1.10 compat-libstdc++-33 libstdc++-devel gcc gcc-c++ ksh libaio-devel

===================================================================================================================
パッケージ アーキテクチャ バージョン リポジトリー 容量
===================================================================================================================
インストールしています:
compat-libcap1 x86_64 1.10-1 base 17 k
compat-libstdc++-33 x86_64 3.2.3-69.el6 base 183 k
gcc x86_64 4.4.7-16.el6 base 10 M
gcc-c++ x86_64 4.4.7-16.el6 base 4.7 M
ksh x86_64 20120801-28.el6_7.3 updates 760 k
libaio-devel x86_64 0.3.107-10.el6 base 13 k
libstdc++-devel x86_64 4.4.7-16.el6 base 1.6 M
依存性関連でのインストールをします。:
cloog-ppl x86_64 0.15.7-1.2.el6 base 93 k
cpp x86_64 4.4.7-16.el6 base 3.7 M
mpfr x86_64 2.4.1-6.el6 base 157 k
ppl x86_64 0.10.2-11.el6 base 1.3 M

トランザクションの要約
===================================================================================================================
インストール 11 パッケージ

総ダウンロード容量: 23 M
インストール済み容量: 56 M


3. インストール用アカウント作成
oracle」というアカウント作成して、下記のグループに参加させる。
アカウント名、グループ名、uid、gidは「白本」を参考にした。
下から3グループ(backupdba以降)は12cから有効な管理者グループらしい。

グループ名役割
oinstallソフトウェアの所有者であるOracleインベントリグループ
dbaデータベースの管理者グループ(OSCBA)
oper制限されたデータベースの管理者グループ(OSOPER)
backupdbaデータベースのバックアップとリカバリの管理グループ
dgdbaOracle Data Guard管理グループ
kmdba暗号化キー管理の管理グループ


[root@localhost ~]# groupadd -g 54321 oinstall
[root@localhost ~]# groupadd -g 54322 dba
[root@localhost ~]# groupadd -g 54323 backupdba
[root@localhost ~]# groupadd -g 54324 oper
[root@localhost ~]# groupadd -g 54325 dgdba
[root@localhost ~]# groupadd -g 54326 kmdba
[root@localhost ~]# tail -6 /etc/group
oinstall:x:54321:
dba:x:54322:
backupdba:x:54323:
oper:x:54324:
dgdba:x:54325:
kmdba:x:54326:
[root@localhost ~]# useradd -u 1200 -g 54321 -G 54322,54323,54324,54325,54326 oracle
※idでなく、グループ名指定も可能
[root@localhost ~]# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード:
よくないパスワード: 辞書の単語に基づいています
よくないパスワード: 簡単すぎます
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。
[root@localhost ~]# id oracle
uid=1200(oracle) gid=54321(oinstall) 所属グループ=54321(oinstall),54322(dba),54323(backupdba),54324(oper),54325(dgdba),54326(kmdba)


4. インストールディスクのマウント
手順1で作成したisoをVmwareの設定からDVDとしてマウントする
(OSシャットダウンしないと設定できないと思う)

oracleユーザでログインして、ディスクの中身確認


[oracle@localhost ~]$ ls -l /media/linuxamd64_1210/
合計 24
dr-x------. 4 oracle oinstall 796 12月 25 22:15 2015 install
dr-x------. 2 oracle oinstall 224 7月 7 07:18 2014 response
dr-x------. 2 oracle oinstall 120 7月 7 06:14 2014 rpm
-r-x------. 1 oracle oinstall 8533 7月 7 06:14 2014 runInstaller
dr-x------. 2 oracle oinstall 112 7月 7 07:18 2014 sshsetup
dr-x------. 14 oracle oinstall 2184 7月 7 07:20 2014 stage
-r-x------. 1 oracle oinstall 500 2月 6 11:25 2013 welcome.html

ファイルサイズ、ファイル一覧見てみる
"ls -alR /media/linuxamd64_1210/"の結果: ファイル
find /media/linuxamd64_1210/ -type f | cat -n": ファイル
ファイル数は1372個だった


5. 環境変数の設定
必要な環境変数はインストール時にOUIが自動で設定してくれるらしいが
事前設定しておくと、その値が採用されて設定が容易らしいので、事前に設定しておく。
必要なディレクトリも事前に作成する

環境変数説明
ORACLE_BASEOracleディレクトリ構造(格納先)のトップのディレクトリを指定する
この設定値がOFA(Optimal Flexible Architecture)のOracleディレクトリ構造のトップの場所になる
ORACLE_BASEを指定すると、指定したフディレクトリ内に各コンポーネント用のインストール用ディレクトリが作成されるため、今後のインストールやアップグレードがしやすくなる
例)/u01/app/oracle
ORACLE_HOMEOracleソフトウェアを格納するディレクトリを指定する
OFAでは以下のような構造になる
例)$ORACLE_BASE/product/12.1.0/dbhome_1
ORACLE_SIDシステム識別子(インスタンス名)を指定する(8文字以下の英数字)
ORACLE_SIDによって同じコンピュータ上の他のインスタンスと区別できる
例)orcl(デフォルトはorcl1)
LD_LIBRARY_PATHライブラリファイルのあるディレクトリパスを指定する
実行時に共有ライブラリを検索するために使用される
この環境変数UNIXLinuxのみ設定する
例)/usr/lib:$ORACLE_HOME/lib


ディレクトリの作成
rootで作って、所有権とアクセス権を変更する


[root@localhost ~]# umask
0022
[root@localhost ~]# mkdir -p /u01/app/oracle/product/12.1.0/dbhome_1/lib
[root@localhost ~]# chown -R oracle:oinstall /u01
[root@localhost ~]# chmod -R 775 /u01

ユーザをoracleに変更して、環境変数を事前確認


[root@localhost ~]# su - oracle
[oracle@localhost ~]$ printenv ORACLE_BASE
[oracle@localhost ~]$ printenv ORACLE_HOME
[oracle@localhost ~]$ printenv ORACLE_SID
[oracle@localhost ~]$ printenv LD_LIBRARY_PATH

環境変数の設定と確認


[oracle@localhost ~]$ export ORACLE_BASE="/u01/app/oracle"
[oracle@localhost ~]$ export ORACLE_HOME="$ORACLE_BASE/product/12.1.0/dbhome_1"
[oracle@localhost ~]$ export ORACLE_SID="orcl"
[oracle@localhost ~]$ export LD_LIBRARY_PATH="/usr/lib:$ORACLE_HOME/lib"
[oracle@localhost ~]$ printenv ORACLE_BASE
/u01/app/oracle
[oracle@localhost ~]$ printenv ORACLE_HOME
/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@localhost ~]$ printenv ORACLE_SID
orcl
[oracle@localhost ~]$ printenv LD_LIBRARY_PATH
/usr/lib:/u01/app/oracle/product/12.1.0/dbhome_1/lib


6. インストール

OUIを起動してインストール


[oracle@localhost ~]$ cd /media/linuxamd64_1210/
[oracle@localhost linuxamd64_1210]$ ls
install response rpm runInstaller sshsetup stage welcome.html
[oracle@localhost linuxamd64_1210]$ ./runInstaller
Oracle Universal Installerを起動中です...

一時領域の確認中: 500MBを超えている必要があります. 実際 12398MB 問題なし
スワップ領域の確認中: 150MBを超えている必要があります. 実際 2047MB 問題なし
モニターの確認中: 少なくとも256色表示するよう設定されている必要があります. 実際 16777216 問題なし
Oracle Universal Installerの起動を準備中 /tmp/OraInstall2015-12-26_04-30-51AM. お待ちください...

インストールログは下記に出力される
/u01/app/oraInventory/logs/


[oracle@localhost linuxamd64_1210]$ このインストール・セッションのログは次の場所にあります:
/u01/app/oraInventory/logs/installActions2015-12-26_05-17-35AM.log


今回は「メール」も「セキュリティ・アップデート」もなしにする。
f:id:girochinful:20151227004734j:plain

インストール・オプションの選択: データベース・ソフトウェアのみインストール
f:id:girochinful:20151227004736j:plain

Gridインストール・オプション: 単一インスタンス・データベースのインストール
f:id:girochinful:20151227004738j:plain

製品言語の選択: 日本語、英語
f:id:girochinful:20151227004740j:plain

データベースのエディション
f:id:girochinful:20151227004743j:plain

インストール場所: 環境変数の値が自動入力される
/u01/app/oracle/product/12.1.0/dbhome_1配下にlibディレクトリがあるため続行するか聞かれるが、続行する
f:id:girochinful:20151227004746j:plain

インベントリの作成: 次へ
f:id:girochinful:20151227004748j:plain

権限のあるオペレーティング・システム・グループ: 次へ
f:id:girochinful:20151227004751j:plain

前提条件のチェックの実行: すべて無視: 続行
※パッケージ不足を無視するとインストールに失敗したので、パッケージ不足があれば必要な物を入れる
f:id:girochinful:20151227004754j:plain

サマリー: レスポンスファイルの保存(/home/oracle/db.rspに保存される)
f:id:girochinful:20151227004756j:plain

製品のインストール: 5分位で完了
※失敗したら原因を修正して/u01配下の削除→ディレクトリの再作成でリトライできそう
f:id:girochinful:20151227004801j:plain


rootで指定されたスクリプトを実行する
f:id:girochinful:20151227004759j:plain

/u01/app/oraInventory/orainstRoot.shの中身: ファイル
/u01/app/oracle/product/12.1.0/dbhome_1/root.shの中身: ファイル


[root@localhost ~]# ls -l /u01/app/oraInventory/orainstRoot.sh

  • rwxrwx---. 1 oracle oinstall 1807 12月 26 05:39 2015 /u01/app/oraInventory/orainstRoot.sh

[root@localhost ~]# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。

[root@localhost ~]# ls -l /u01/app/oracle/product/12.1.0/dbhome_1/root.sh

  • rwxr-x---. 1 oracle oinstall 454 12月 26 05:39 2015 /u01/app/oracle/product/12.1.0/dbhome_1/root.sh

[root@localhost ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

終了
f:id:girochinful:20151227004803j:plain

コマンドとかスクリプトがある下記ディレクトリにパスを通す
/u01/app/oracle/product/12.1.0/dbhome_1/bin


[root@localhost ~]# vi .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:$
ORACLE_BASE=/u01/app/oracle #追加
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1 #追加
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #追加

export PATH ORACLE_BASE ORACLE_HOME #修正

ログアウトして再確認


[oracle@localhost ~]$ printenv | egrep "^PATH|ORACLE_BASE|ORACLE_HOME"
ORACLE_BASE=/u01/app/oracle
PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/home/oracle/bin:$:/home/oracle/bin:/u01/app/oracle/product/12.1.0/dbhome_1/bin
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1


7. 動作確認
DBCAでデータベース作ってみる。

oraenvスクリプト環境変数を設定する、oraenvはroot.shで作られたらしい。


[oracle@localhost ~]$ which oraenv
/usr/local/bin/oraenv
[oracle@localhost ~]$ ls -l `which oraenv`

  • rwxr-xr-x. 1 oracle root 7012 12月 26 05:46 2015 /usr/local/bin/oraenv

[oracle@localhost ~]$ oraenv
ORACLE_SID = [oracle] ? orcl
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.1.0/dbhome_1
The Oracle base has been set to /u01/app/oracle

DBCAの起動とデータベース作成


[oracle@localhost ~]$ dbca

データベース操作: データベースの作成
f:id:girochinful:20151227011608j:plain

作成モード: 拡張モード
f:id:girochinful:20151227011612j:plain

データベース・テンプレート: 汎用またはトランザクション処理
f:id:girochinful:20151227011616j:plain

データベース識別情報: グローバル・データベース名=orcl.localhost、SID=orcl
f:id:girochinful:20151227011623j:plain

管理オプション: Enterprise Manager(EM) Database Expressの構成にチェック(デフォルト)
EM Database Expressポートは5500(デフォルト)
f:id:girochinful:20151227011624j:plain

データベース資格証明: 別の管理パスワードを使用にチェック(デフォルト)
ユーザID/パスワード=(SYS/Oracle15)、(SYSTEM/Oracle15)で設定
f:id:girochinful:20151227011626j:plain

ネットワーク構成: 何も入力しない
f:id:girochinful:20151227011627j:plain

記憶域の場所: 変更せず
f:id:girochinful:20151227011628j:plain

データベース・オプション: サンプル・スキーマにチェック
f:id:girochinful:20151227011630j:plain

初期化パラメータ: 変更せず
f:id:girochinful:20151227011631j:plain

作成オプション: 変更せず
f:id:girochinful:20151227011632j:plain

前提条件チェック
f:id:girochinful:20151227011634j:plain

サマリー
f:id:girochinful:20151227011636j:plain

進行進捗
f:id:girochinful:20151227011637j:plain

終了
f:id:girochinful:20151227011638j:plain