約 3,454,674 件
https://w.atwiki.jp/jinutsugi/pages/13.html
RAC(Oracle Real Application Clusters)について、あまり知識がない初心者がチャレンジ。 ページ構成 Linux on VMWareでOracle RACを構築(準備) Linux on VMWareでOracle RACを構築(インストール) 目次 VMWareの設定前提VMWareのバージョン ゲストOS ゲストOSの構成 イーサネットの追加 共有ディスクの作成設定ファイルの変更 ディスクの追加 インストール前準備ネットワークの設定(内部通信用)ifconfig -aでNICの確認[root] /etc/sysconfig/network-scriptsで設定[root][1号機、2号機] swapの拡大[root][1号機、2号機] パーティション作成[root][1号機のみ]ハードディスクに認識を確認。 fdisk (デバイス名) 領域作成の確認 RAWパーティションのマウント[root,oracle][1号機、2号機] ntpd(/etc/ntp.conf)の設定[root][1号機、2号機]VMWare対策[1号機、2号機] /etc/hostsの設定[root][1号機、2号機] グループ・ユーザの作成[root][1号機、2号機] カーネル・パラメータの構成[root][1号機、2号機] oracleユーザーに対するシェル制限の設定[root][1号機、2号機] jdk1.4の入手[root] SSHの構成[oracle][1号機、2号機]RSA鍵およびDSA鍵の作成 認証鍵ファイルへの鍵の追加 クラスタ・メンバー・ノードでのSSHユーザー等価関係の有効化 cvuqdiskパッケージのインストール[root][1号機、2号機] CVUを使用した検証[oracle] インストールディレクトリの作成[root][1号機、2号機] 環境変数ファイルの作成[oracle][1号機、2号機] VMWareの設定 前提 VMWareのバージョン VMWare Workstation 5.5.5 ゲストOS Oracle Enterprise Linux 4 ※RedHat 4 と基本的に同じと思ってもらってOK。 サイト:http //www.oracle.com/technology/tech/linux/index.html ダウンロード:http //edelivery.oracle.com/linux ゲストOSの構成 100.168.116.25 ubl1.utsugi.com(1号機) 外部通信用 192.168.139.25 ubl1i.utsugi.com(1号機) 内部通信用 100.168.116.35 ubl1v.utsugi.com(1号機) Oracle用VIP用 100.168.116.26 ubl2.utsugi.com(2号機) 外部通信用 192.168.139.26 ubl2i.utsugi.com(2号機) 内部通信用 100.168.116.36 ubl2v.utsugi.com(2号機) Oracle用VIP用 ※外部通信用に、以下のアドレスを指定すると、CVU使用時、またはVIP構成時に失敗というか、ちょっと手順が変わって(面倒)くる。192.168.xxx.xxx で構築したことはあるので、できない訳ではない。 クラスA 10.0.0.0 クラスB 172.16.0.0 - 172.31.0.0 クラスC 192.168.0.0 - 192.168.255.0 イーサネットの追加 1号機で次を実施する。 「仮想マシンの設定」より「追加」を押して「ハードウェア追加ウィザード」を起動し、「イーサネットアダプタ」を選択する。 プライベート用のLANを組むため、「ホストオンリー」を選択する。 2号機に対しても同じ設定を行う。 共有ディスクの作成 VMWare上で共有ディスクを作成する。 設定ファイルの変更 VMWareのゲストOS1号機、2号機の設定ファイル(.vmx)をテキストエディタで開き、以下を追加する。 disk.locking = "false" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0" これはキャッシュ機能やロック機能を無効にするため。 ディスクの追加 共有ディスク用にディスクを作成する。ディスクは次の4つを作成する。 領域 ファイル名 容量 OCR ocr.vmdk 300MB Voting Disk vot.vmdk 300MB ASM DG1 dg1_1.vmdk 5G ASM DG1 dg1_2.vmdk 5G 1号機を例に記載する。1号機の仮想マシンの設定にて「ハードディスク」を追加する。そして以下を実行。 「仮想ディスクの新規作成」を選択。 「SCSI」を選択 ディスクサイズを指定。また「事前に割り当てる」にチェックする。 ディスク保存場所は「D \VMWare\storage\ocr.vmx」の専用ディレクトリに指定。 上記をディスク数分繰り返す。 次に2号機の仮想マシンの設定にて「ハードディスク」を追加し、以下を実行する。 「既存の仮想ディスクを使用」 storage配下のディスクファイル(.vmdk)を選択する。 上記をディスク数分繰り返す。 一連の作業後は、1号機、2号機両方とも次のような設定になっている。 インストール前準備 1号機(ubl1)で実施した内容を元に記述。特に断りがない限り、2号機も同様に行う。 ネットワークの設定(内部通信用) ifconfig -aでNICの確認[root] OSを起動して、rootユーザでログイン。 ifconfig -a を実施し、NICが認識されていることを確認する。 eth0 Link encap Ethernet HWaddr 00 0C 29 20 B3 27 inet addr 100.168.116.25 Bcast 100.168.116.255 Mask 255.255.255.0 inet6 addr fe80 20c 29ff fe20 b327/64 Scope Link UP BROADCAST RUNNING MULTICAST MTU 1500 Metric 1 RX packets 940 errors 0 dropped 0 overruns 0 frame 0 TX packets 936 errors 0 dropped 0 overruns 0 carrier 0 collisions 0 txqueuelen 1000 RX bytes 443621 (433.2 KiB) TX bytes 112204 (109.5 KiB) Interrupt 185 Base address 0x1400 eth1 Link encap Ethernet HWaddr 00 0C 29 20 B3 31 inet addr 192.168.139.25 Bcast 192.168.139.255 Mask 255.255.255.0 inet6 addr fe80 20c 29ff fe20 b331/64 Scope Link UP BROADCAST RUNNING MULTICAST MTU 1500 Metric 1 RX packets 11 errors 0 dropped 0 overruns 0 frame 0 TX packets 11 errors 0 dropped 0 overruns 0 carrier 0 collisions 0 txqueuelen 1000 RX bytes 1633 (1.5 KiB) TX bytes 630 (630.0 b) Interrupt 169 Base address 0x1480 ※上記は「eth1」のIPアドレスの設定まで終えた状態の表示。 /etc/sysconfig/network-scriptsで設定[root][1号機、2号機] /etc/sysconfig/network-scriptsで、2つめifcfg-eth1を作成する。ifcfg-eth0をベースに修正するのが簡単だろう。 DEVICE=eth1 BOOTPROTO=static BROADCAST=192.168.139.255 IPADDR=192.168.139.25 NETMASK=255.255.255.0 NETWORK=192.168.139.0 ONBOOT=yes TYPE=Ethernet 設定できたら、/etc/init.d/network restart でネットワークを再起動。その後、ifconfig で設定されたことを確認する。 swapの拡大[root][1号機、2号機] 「Oracle Database インストレーション・ガイド 10gリリース2(10.2)for Linux x86」によるとswapの最小要件は次の通り。 RAM スワップ領域 1024~2048 MB RAMのサイズの1.5倍 2049~8192 MB RAMのサイズと同じ 8192 MB超 RAMのサイズの0.75倍 ubl1サーバーのswap状態は次の通り。 [root@ubl1 ~]# swapon -s Filename Type Size Used Priority /dev/sda2 partition 2096472 0 -1 VMWareの設定でRAMは1200MBとしていおり、swapは2GBであるため要件はクリアしているが、500MBさらにswapを拡張してみる。 [root@ubl1 ~]# cd /tmp [root@ubl1 tmp]# dd if=/dev/zero of=/tmp/swap bs=1024k count=500 読み込んだブロック数は 500+0 書き込んだブロック数は 500+0 [root@ubl1 tmp]# mkswap swap Setting up swapspace version 1, size = 524283 kB [root@ubl1 tmp]# swapon swap [root@ubl1 tmp]# swapon -s Filename Type Size Used Priority /dev/sda2 partition 2096472 0 -1 /tmp/swap file 511992 0 -2 OS再起動後も自動でswapに割り当ててもらうように /etc/fstab に以下を追記しておく。 /tmp/swap swap swap default 0 0 パーティション作成[root][1号機のみ] 1号機での作業をベースに記述する。2号機はやる必要はなし。 ハードディスクに認識を確認。 fdisk -l で、追加したハードディスクが認識されていることを確認。 [root@ubl1 ~]# fdisk -l Disk /dev/sda 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 6266 50331613+ 83 Linux /dev/sda2 6267 6527 2096482+ 82 Linux スワップ Disk /dev/sdb 322 MB, 322122240 bytes 64 heads, 32 sectors/track, 307 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes ディスク /dev/sdb は正常な領域テーブルを含んでいません Disk /dev/sdc 322 MB, 322122240 bytes 64 heads, 32 sectors/track, 307 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes ディスク /dev/sdc は正常な領域テーブルを含んでいません Disk /dev/sdd 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes ディスク /dev/sdd は正常な領域テーブルを含んでいません Disk /dev/sde 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes ディスク /dev/sde は正常な領域テーブルを含んでいません fdisk (デバイス名) fdisk デバイス名 を実行する。fdiskは次の手順を行う。 「n」で新規パーティションを作成 「p」でプライマリパーティションを指定 「1」の領域を指定 最初 シリンダはそのままEnter。(default 1) 終点 シリンダもそのままEnter。 「w」で保存 4つのデバイスについて同様に行う。 領域作成の確認 fdisk -l で領域が作成されたことを確認する。 [root@ubl1 ~]# fdisk -l Disk /dev/sda 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 * 1 6266 50331613+ 83 Linux /dev/sda2 6267 6527 2096482+ 82 Linux スワップ Disk /dev/sdb 322 MB, 322122240 bytes 64 heads, 32 sectors/track, 307 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 307 314352 83 Linux Disk /dev/sdc 322 MB, 322122240 bytes 64 heads, 32 sectors/track, 307 cylinders Units = シリンダ数 of 2048 * 512 = 1048576 bytes デバイス Boot Start End Blocks Id System /dev/sdc1 1 307 314352 83 Linux Disk /dev/sdd 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdd1 1 652 5237158+ 83 Linux Disk /dev/sde 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sde1 1 652 5237158+ 83 Linux ここで一端リブートする。 RAWパーティションのマウント[root,oracle][1号機、2号機] /etc/sysconfig/rawdevices ファイルを次のように編集する。1号機、2号機両方実施する。 /dev/raw/raw1 /dev/sdb1 /dev/raw/raw2 /dev/sdc1 /dev/raw/raw3 /dev/sdd1 /dev/raw/raw4 /dev/sde1 ※上記のデバイス名は、各環境に合わせて変更のこと 設定後、/etc/init.d/rawdevices restart を実行する。 [root@ubl1 ~]# /etc/init.d/rawdevices restart Assigning devices /dev/raw/raw1 -- /dev/sdb1 /dev/raw/raw1 bound to major 8, minor 17 /dev/raw/raw2 -- /dev/sdc1 /dev/raw/raw2 bound to major 8, minor 33 /dev/raw/raw3 -- /dev/sdd1 /dev/raw/raw3 bound to major 8, minor 49 /dev/raw/raw4 -- /dev/sde1 /dev/raw/raw4 bound to major 8, minor 65 次に、rawデバイスを oracleユーザ のオーナーにする。 chown oracle oinstall /dev/raw/raw[1-4] なお、上記の設定は再起動すると元に戻ってしまいCRSの起動に失敗するので、次の設定を /etc/inittab に追加した。 r1 56 wait /bin/chown oracle oinstall /dev/raw/raw[1-4] /etc/init.d/rawdevices のランレベルが 5 なので、上記のコマンドのランレベルは5と6を指定した。 その後、初期化するために、oracleユーザでddコマンドを実行する。1号機、2号機両方とも実施する。 [root@ubl1 raw]# dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=300 読み込んだブロック数は 300+0 書き込んだブロック数は 300+0 [root@ubl1 raw]# dd if=/dev/zero of=/dev/raw/raw2 bs=1024k count=300 読み込んだブロック数は 300+0 書き込んだブロック数は 300+0 [root@ubl1 raw]# dd if=/dev/zero of=/dev/raw/raw3 bs=1024k count=5000 読み込んだブロック数は 5000+0 書き込んだブロック数は 5000+0 [root@ubl1 raw]# dd if=/dev/zero of=/dev/raw/raw4 bs=1024k count=5000 読み込んだブロック数は 5000+0 書き込んだブロック数は 5000+0 ntpd(/etc/ntp.conf)の設定[root][1号機、2号機] ノード間で時刻のズレがある場合、インストールに失敗する可能性があるため、ntp.confで時刻同期の設定する。インターネットマルチフィード(MFEED) 時刻情報提供サービス for Public(http //www.jst.mfeed.ad.jp/)を利用した。 server ntp1.jst.mfeed.ad.jp server ntp2.jst.mfeed.ad.jp server ntp3.jst.mfeed.ad.jp VMWare対策[1号機、2号機] VMWare上のLinuxの場合、どんどん時刻がずれてしまう可能性がある。この対策として、「/boot/grub/grub.conf」にカーネル起動オプションとして、以下を記述する。 clock=pit nosmp noapic nolapic grub.conf の記述例は、次のようになる。 title Enterprise (2.6.9-55.0.0.0.2.ELsmp) root (hd0,0) kernel /boot/vmlinuz-2.6.9-55.0.0.0.2.ELsmp ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic initrd /boot/initrd-2.6.9-55.0.0.0.2.ELsmp.img title Enterprise-up (2.6.9-55.0.0.0.2.EL) root (hd0,0) kernel /boot/vmlinuz-2.6.9-55.0.0.0.2.EL ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic initrd /boot/initrd-2.6.9-55.0.0.0.2.EL.img /etc/hostsの設定[root][1号機、2号機] 1号機は次のように記述。2号機も同様。 127.0.0.1 localhost.localdomain localhost 100.168.116.25 ubl1.utsugi.com ubl1 100.168.116.26 ubl2.utsugi.com ubl2 #Private for InterConnect 192.168.139.25 ubl1i.utsugi.com ubl1i 192.168.139.26 ubl2i.utsugi.com ubl2i #VIP 100.168.116.35 ubl1v.utsugi.com ubl1v 100.168.116.36 ubl2v.utsugi.com ubl2v 外部通信、内部通信、VIPについて、1号機、2号機の定義を記載している。 グループ・ユーザの作成[root][1号機、2号機] rootユーザでoracle用のユーザやグループを作成する。 oinstallグループ groupadd -g 2000 oinstall dbaグループ groupadd -g 2001 dba oracleユーザ useradd -d /home/oracle -g oinstall -G dba -m -s /bin/bash -u 2000 oracle passwd oracle <--適当に設定してね また、nobodyユーザが必要なので、存在していなければ作成する。 /usr/sbin/useradd nobody ※グループID、ユーザIDは環境に合わせて指定。 カーネル・パラメータの構成[root][1号機、2号機] /etc/sysctl.confを編集。以下を付け加える。 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_default = 262144 net.core.wmem_max = 262144 oracleユーザーに対するシェル制限の設定[root][1号機、2号機] /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 /etc/pam.d/login session required /lib/security/pam_limits.so /etc/profile or /etc/csh.login ※oracleユーザーのデフォルト・シェルに応じて、デフォルトのシェル起動ファイルを次のように変更 Bourne、BashまたはKornシェルの場合 /etc/profile if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi Cシェル(cshまたはtcsh)の場合 /etc/csh.login if ( $USER == "oracle" ) then limit maxproc 16384 limit descriptors 65536 endif ここで一端、OSを再起動をしておく。 jdk1.4の入手[root] Database 10g R2にパッチは、OPatch 10.2のバージョンのためJDK1.4が必要。そのため予めJDK1.4を入手しておく。 SSHの構成[oracle][1号機、2号機] Oracle Real Application Clustersをインストールして使用する前に、すべてのクラスタ・ノードでoracleユーザー用のセキュア・シェル(SSH)を構成する必要がある。 RSA鍵およびDSA鍵の作成 oracleでログインする。もし、homeディレクトリに .ssh ディレクトリがなければ作成して適切な権限に設定しておく。 $ mkdir ~/.ssh $ chmod 700 ~/.ssh そして、「/usr/bin/ssh-keygen -t rsa」「/usr/bin/ssh-keygen -t dsa」をそれぞれ実行してく。以下は、1号機で実際に実行した結果。 [oracle@ubl1 .ssh]$ /usr/bin/ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_rsa) Enter passphrase (empty for no passphrase) Enter same passphrase again Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is b7 b5 57 d4 d4 3c cb 80 7a c5 96 2a 91 91 5a e9 oracle@ubl1.utsugi.com [oracle@ubl1 .ssh]$ /usr/bin/ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_dsa) Enter passphrase (empty for no passphrase) Enter same passphrase again Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is 48 03 dd 01 e1 cb 84 36 cf ed 48 39 98 fd b6 5a oracle@ubl1.utsugi.com [oracle@ubl1 .ssh]$ ls id_dsa id_dsa.pub id_rsa id_rsa.pub これを2号機でも実施する。 認証鍵ファイルへの鍵の追加 1号機 認証鍵ファイル(~/.ssh/authorized_keys)が存在していなければ、作成する。 touch ~/.ssh/authorized_keys cd ~/.ssh/ そして、以下を実行する。 [oracle@ubl1 .ssh]$ ssh ubl1 cat /home/oracle/.ssh/id_rsa.pub authorized_keys oracle@ubl1 s password [oracle@ubl1 .ssh]$ ssh ubl1 cat /home/oracle/.ssh/id_dsa.pub authorized_keys [oracle@ubl1 .ssh]$ ssh ubl2 cat /home/oracle/.ssh/id_rsa.pub authorized_keys oracle@ubl2 s password [oracle@ubl1 .ssh]$ ssh ubl2 cat /home/oracle/.ssh/id_dsa.pub authorized_keys oracle@ubl2 s password 作成したauthorized_keysファイルを、2号機にscp等を利用して転送する。 [oracle@ubl1 .ssh]$ scp authorized_keys ubl2 /home/oracle/.ssh oracle@ubl2 s password authorized_keys 100% 1688 1.7KB/s 00 00 また、authorized_keys の権限を変更しておく。 [oracle@ubl1 .ssh]$ chmod 600 authorized_keys 2号機 /home/oracle/.ssh/authorized_keys があるので、権限を変更しておく。 [oracle@ubl2 .ssh]$ chmod 600 authorized_keys クラスタ・メンバー・ノードでのSSHユーザー等価関係の有効化 パス・フレーズを求めるプロンプトが表示されることなくsshおよびscpコマンドをOracle Universal Installerで使用できるようにする。 1号機、2号機の両方 以下のコマンドを実施する。 exec /usr/bin/ssh-agent $SHELL /usr/bin/ssh-add その後、「ssh servername date」を実行して、パスワードが尋ねられず実行できたら成功。 [oracle@ubl1 .ssh]$ ssh ubl1 date 2007年 11月 1日 木曜日 16 32 57 JST [oracle@ubl1 .ssh]$ ssh ubl2 date 2007年 11月 1日 木曜日 16 52 04 JST cvuqdiskパッケージのインストール[root][1号機、2号機] Red HatまたはSUSE Linux系のOSを使用している場合は、オペレーティング・システムのcvuqdiskパッケージをダウンロードしてインストールする必要があり。 RACのメディアにcvsqdiskパッケージが入っているので、これを使用する。 rpm -i cvuqdisk-1.0.1-1.rpm CVUを使用した検証[oracle] oracleユーザーで「runcluvfy.sh」を使用してコマンドを入力して、Oracle Clusterwareをインストールするためのシステム要件を検証する。 /mountpoint/crs/Disk1/cluvfy/runcluvfy.sh stage -pre crsinst -n node_list 今回は、node_listは、1号機(ubl1)、2号機(ubl2)なので、次のコマンドを実行。 [oracle@ubl1 cluvfy]$ ./runcluvfy.sh stage -pre crsinst -n ubl1,ubl2 クラスタ・サービス設定の事前チェックを実行しています ノード到達可能性をチェック中... ノード"ubl1"からのノード到達可能性チェックに合格しました。 ユーザー等価をチェック中... ユーザー"oracle"のユーザー等価チェックに合格しました。 管理権限をチェック中... "oracle"のユーザーの存在チェックに合格しました。 "oinstall"のグループの存在チェックに合格しました。 グループ"oinstall"内のユーザー"oracle"[プライマリ]のメンバーシップ・チェックに合格しました。 管理権限チェックに合格しました。 ノード接続性をチェック中... ノードubl2,ubl1を持つサブネット"100.168.116.0"のノード接続性チェックに合格しました。 ノードubl2,ubl1を持つサブネット"192.168.139.0"のノード接続性チェックに合格しました。 サブネット"100.168.116.0"のVIPに適したインタフェース ubl2 eth0 100.168.116.26 ubl1 eth0 100.168.116.25 サブネット"192.168.139.0"のプライベート・インターコネクトに適したインタフェース ubl2 eth1 192.168.139.26 ubl1 eth1 192.168.139.25 ノード接続性チェックに合格しました。 システム要件をチェック中 crs ... メモリー合計チェックに合格しました。 ディスク空き領域チェックに合格しました。 スワップ領域チェックに合格しました。 システム・アーキテクチャチェックに合格しました。 カーネル・バージョンチェックに合格しました。 "make-3.79"のパッケージの存在チェックに合格しました。 "binutils-2.14"のパッケージの存在チェックに合格しました。 "gcc-3.2"のパッケージの存在チェックに合格しました。 "glibc-2.3.2-95.27"のパッケージの存在チェックに合格しました。 "compat-db-4.0.14-5"のパッケージの存在チェックに合格しました。 "compat-gcc-7.3-2.96.128"のパッケージの存在チェックが失敗しました。 ノードでチェックが失敗しました ubl2,ubl1 "compat-gcc-c++-7.3-2.96.128"のパッケージの存在チェックが失敗しました。 ノードでチェックが失敗しました ubl2,ubl1 "compat-libstdc++-7.3-2.96.128"のパッケージの存在チェックが失敗しました。 ノードでチェックが失敗しました ubl2,ubl1 "compat-libstdc++-devel-7.3-2.96.128"のパッケージの存在チェックが失敗しました。 ノードでチェックが失敗しました ubl2,ubl1 "openmotif-2.2.3"のパッケージの存在チェックに合格しました。 "setarch-1.3-1"のパッケージの存在チェックに合格しました。 "dba"のグループの存在チェックに合格しました。 "oinstall"のグループの存在チェックに合格しました。 "nobody"の既存ユーザーチェックに合格しました。 システム要件が失敗しました crs クラスタ・サービス設定の事前チェックはすべてのノードで失敗しました。 パッケージの依存チェックでエラーになっているが、今回はパッケージ要件はクリアしているはずなので大丈夫だろう。(おそらくruncluvfyツールのアルゴリズムエラー) インストールディレクトリの作成[root][1号機、2号機] 次のようなディレクトリ構成とする。 Oracle Base /opt/oracle Oracle Clusterware Home /opt/oracle/product/10.2/crs Oracle Database Home /opt/oracle/product/10.2/db 以下は、1号機での実行した例である。 Oracle Database Home [root@ubl1 opt]# mkdir -p /opt/oracle/product/10.2/db [root@ubl1 opt]# chown -R oracle oinstall /opt/oracle [root@ubl1 opt]# chmod -R 775 /opt/oracle Oracle Clusterware Home [root@ubl1 opt]# mkdir -p /opt/oracle/product/10.2/crs [root@ubl1 opt]# chown -R root oinstall /opt/oracle/product/10.2/crs [root@ubl1 opt]# chmod 775 /opt/oracle/product/10.2/crs 2号機でも同様に実施する。 環境変数ファイルの作成[oracle][1号機、2号機] 1号機、2号機で実施。 CRS用環境設定ファイル(.crs_profile) umask 022 stty intr ^C ORACLE_BASE=/opt/oracle/app;export ORACLE_BASE ORA_CRS_HOME=/opt/oracle/crs/product/10.2/crs;export ORA_CRS_HOME ORACLE_HOME=$ORA_CRS_HOME;export ORACLE_HOME PATH=$ORACLE_HOME/bin $PATH;export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib $LD_LIBRARY_PATH;export LD_LIBRARY_PATH DB用環境設定ファイル umask 022 stty intr ^C ORACLE_BASE=/opt/oracle/app;export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/10.2/db;export ORACLE_HOME PATH=$ORACLE_HOME/bin $PATH;export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib $ORACLE_HOME/ctx/lib $LD_LIBRARY_PATH export LD_LIBRARY_PATH
https://w.atwiki.jp/2chiso2eboot/
ゲーム裏技・改造・亜細亜界隈(仮)@2ch掲示板 CFWなしでOFWからISO起動 まとめwiki 以下テンプレ iso2eboot v2 http //wololo.net/talk/viewtopic.php?f=17 t=3590#p40696 変換できるISOは容量が728MB以下の物のみ。 iso2eboot.exeと同じ階層にisoファイルを置いておき、iso2ebootを起動、変換。 今のところCFW機で吸い出して遊ぶ、という方法しかありません。 ここはisoからeboot形式に変換するソフト、iso2ebootに関するスレです。 このソフトを使用することでOFWで擬似的にISO起動が可能になります。 市販のソフトのDLはダウソ板へ。メ欄には「sage」。名前欄には何も入力しない。質問は質問スレで。 現状動かないソフトも多いので動作報告をお願いします。 ~動作報告用テンプレ~ 【本体ver】 【ツールver】 【タイトル】 【動作】 【ファイル削除】 過去のスレッドにも目を通しておくこと 【PSP】CFWなしでOFWからISO起動【iso2eboot】(2スレ目) http //yuzuru.2ch.net/test/read.cgi/gameurawaza/1302272750/ 【PSP】CFWなしでOFWからISO起動【iso2eboot】(1スレ目) http //yuzuru.2ch.net/test/read.cgi/gameurawaza/1298985991/
https://w.atwiki.jp/sunfish/pages/34.html
住所:1001 Robson st 地図:こちら 営業時間 月 9 30 AM - 7 00 PM 火 9 30 AM - 7 00 PM 水 9 30 AM - 7 00 PM 木 9 30 AM - 9 00 PM 金 9 30 AM - 9 00 PM 土 9 30 AM - 9 00 PM 日 10 00 AM - 7 00 PM URL http //stores.roots.ca/store.php?sID=370 カナダを代表するブランド。 ロブソン&バラードの角にあるので待ち合わせによくつかわれる。 向かいはHMVである。 管理人の評価(☆5評価)☆☆☆★ 情報はこちらまで↓ 名前 コメント
https://w.atwiki.jp/mc-shooter/pages/22.html
Shooterを使用してその後エンチャントして経験値を減らします、その後シューターを使用すると使った経験値が帰ってくるのは仕様でしょうか? - 774 2013-05-22 20 35 46 回答が大変遅くなってしまい、申し訳ありません・・・。 経験値の使用が正しく動作しないのは、仕様という事にしておいてください。CraftBukkitのAPIを使って経験値を取得したり使用したりしているので、CraftBukkitが修正されないと、どうしようもならないです。 - うっちぃ 2013-05-29 23 34 14 shooterのconfig.ymlの数値を変更してみたところ、燃料の回復が行われなくなってしまったのですがどうすればよいのでしょうか? - 名無しさん 2013-06-06 18 55 52 たぶん、config.ymlのフォーマットが崩れていると思われますので、一旦config.ymlを削除してからCraftBukkitを起動し、config.yml を再生成してみてください。 - うっちぃ 2013-06-12 20 40 34
https://w.atwiki.jp/fedorawiki/pages/16.html
当方、現在 preupgrade の不調により Fedora 10 - 11 にアップグレードできない状況。 下記症状に似ている。 https //bugzilla.redhat.com/show_bug.cgi?id=504991
https://w.atwiki.jp/altaieu119/pages/2.html
メニュー トップページ root119 Dynamis Salvage FF11wiki FFXIwiki eLeMeN FFAH バハ鯖裏スケジュール リンクフリーです。 昨日 - 本日 - 合計 - 更新履歴 取得中です。
https://w.atwiki.jp/shooto/pages/295.html
プロ修斗 5/18 後楽園大会 試合結果 [大会名]"BACK TO OUR ROOTS III" [日時]2007年5月18日(金) [会場]東京/後楽園ホール [主催](株)サステイン [リンク]SHOOTO NEWS/SHOOTO GAZETTE/X-SHOOTO 【第1試合】ライト級 5分2R[新人王決定トーナメント1回戦] ×野口ヨシキ(JPN/パラエストラ札幌) 64.9kg TKO 2R 2'54" ○直撃我聞(JPN/PUREBRED大宮)64.7kg ※グラウンドパンチによるレフェリーストップ ※※[メイン]鈴木利治 1R 10-9 [サブ]横山忠志 1R 10-9 菅野浩之 1R 10-9 ※※※直撃が準決勝進出 【第2試合】ウェルター級 5分2R[新人王決定トーナメント2回戦] ○阿仁鬼(JPN/パラエストラ札幌)69.5kg KO 1R 3'50" ×田口公一(JPN/PUREBRED大宮)69.8kg ※阿仁鬼が準決勝進出 【第3試合】ウェルター級 5分2R[新人王決定トーナメント2回戦] ○アローイ石橋(JPN/パラエストラ札幌)69.4kg 判定 3-0 ×中島邦男(JPN/マッハ道場)69.8kg ※[メイン]鈴木利治 20-15(1R 10-6/2R 10-9) [サブ]横山忠志 20-16(1R 10-7/2R 10-9) 菅野浩之 20-15(1R 10-6/2R 10-9) ※※石橋が準決勝進出 【第4試合】ライトヘビー級 5分2R ○余膳正志(JPN/シューティングジム大阪)82.4kg TKO 2R 1'26" ×安達明彦(JPN/パラエストラ松戸)81.7kg ※グラウンドパンチによるレフェリーストップ ※※[メイン]鈴木利治 1R 9-9 [サブ]横山忠志 1R 9-9 菅野浩之 1R 9-10 ※※※1R、金的への攻撃で余膳に減点1 【第5試合】フライ級 5分2R △室伏シンヤ(JPN/SUBMIT静岡)51.9kg 判定 0-1 △澤田健壱(JPN/パラエストラ東京)51.7kg ※[メイン]鈴木利治 19-20(1R 9-10/2R 10-10) [サブ]横山忠志 19-19(1R 9-10/2R 10-9) 菅野浩之 19-19(1R 9-10/2R 10-9) 【第6試合】ライト級 5分2R ○碓氷早矢手(JPN/和術慧舟會RJW)65.0kg 判定 3-0 ×村山英慈(JPN/シューティングジム八景)64.3kg ※[メイン]若林太郎 20-17(1R 10-10/2R 10-7) [サブ]鈴木利治 20-17(1R 10-9/2R 10-8) 菅野浩之 20-17(1R 10-9/2R 10-8) 【第7試合】バンタム級 5分3R ○阿部マサトシ(JPN/AACC)55.9kg 反則失格 2R 4'38" ×ダニエル・オテロ(BRA/ファブリシオ柔術)56.0kg ※グラウンド状態にある相手の頭部への蹴り ※※[メイン]若林太郎 1R 9-8 [サブ]鈴木利治 1R 10-8 浦僚克 1R 9-8 ※※※1R、金的への攻撃でオテロに減点1 ※※※※1R、金的への攻撃でオテロに再度減点1 【第8試合】フェザー級 5分3R ○岡嵜康悦(JPN/総合格闘技道場コブラ会)59.8kg 判定 2-0 ×山本篤(JPN/KILLER BEE)59.8kg ※[メイン]鈴木利治 29-28(1R 9-10/2R 10-9/3R 10-9) [サブ]横山忠志 29-29(1R 9-10/2R 10-10/3R 10-9) 若林太郎 29-28(1R 9-10/2R 10-9/3R 10-9) 【第9試合】フェザー級 5分3R ×大沢ケンジ(JPN/和術慧舟會A-3)59.9kg 判定 0-2 ○マルコ・ロウロ(BRA/ノヴァ・ウニオン)59.8kg ※[メイン]若林太郎 27-30(1R 9-10/2R 9-10/3R 9-10) [サブ]鈴木利治 28-30(1R 9-10/2R 10-10/3R 9-10) 菅野浩之 29-29(1R 10-10/2R 10-9/3R 9-10) 【第10試合】ライト級 5分3R ○アントニオ・カルバーリョ(CAN/シャオ・フランコ・マーシャルアーツ)65.0kg 判定 2-1 ×日沖発(JPN/ALIVE)65.0kg ※[メイン]若林太郎 29-30(1R 9-10/2R 10-10/3R 10-10) [サブ]鈴木利治 29-28(1R 9-10/2R 10-9/3R 10-9) 横山忠志 29-28(1R 9-10/2R 10-9/3R 10-9) 【第11試合】世界ライト級チャンピオンシップ 5分3R ×リオン武(JPN/シューティングジム横浜/王者)65.0kg 判定 0-3 ○田村彰敏(JPN/総合格闘技津田沼道場/挑戦者)65.0kg ※[メイン]鈴木利治 28-30(1R 9-10/2R 9-10/3R 10-10) [サブ]古方康基 27-30(1R 9-10/2R 9-10/3R 9-10) 浦僚克 27-30(1R 9-10/2R 9-10/3R 9-10) ※※田村がタイトル獲得(第6代世界王者)
https://w.atwiki.jp/is01rebuild/pages/85.html
/dev/ae2 はオーディオドライバ周りの入り口みたいなので調査してみました。 毎度の事ですが、内容は無保証ですが、間違い指摘や動作報告は歓迎いたします。 現在の状況と分かっている事 ドライバのモジュール化した。 ドライバ動作を dmesg でトレース可能にした。 ドライバへの入出力データを cat /dev/ae2debug で出力可能にした。 音源サービスを再起動すると /dev/ae2 を初期化している。 オーディオ再生時に /dev/ae2 への ioctl が発生している。 現状の課題 ドライバへの入出力用ユーザランド側の検証プログラムが出来ていない。→着手しました。Audioユーザ側関連 /dev/ae2 への ioctl でやりとりされているデータの意味が分かっていない。(特にreadとwriteでのデータ) /dev/audio_dev_ctrl の入出力の調査不足。 音源チップの仕様が全く分からない。 ドライバをkernelモジュールにする kernel/drivers/yamaha/Makefile obj-y から obj-m に変更 #obj-y = ae2drv.o obj-m = ae2drv.o kernel の make が完了すると、 kernel/drivers/yamaha/ae2drv.ko ができるので実機に転送、 $ adb push ae2drv.ko /system/lib/modules/ init.rcを編集して起動時にinsmodするようにする insmod /system/lib/modules/ae2drv.ko ae2drvを抜いたkernelと編集したinit.rcでboot.imgを作成し、ubi化して実機に転送し、recoveryエリアに書き込む。 リブートして完了 recovery領域の書き換え回数が減る事、driver のコード変更を再起動無しに試す事が出来る。 ドライバの入出力をトレース可能にする wikiに貼り付けると大量になるので github にすべてをアップしている。 私自身がkernel側コードは素人の為、大量の日本語コメントとprintkを追加している。 また、リードとライト部分は似たような動作を2重に行っていて、実入出力とトレース書き出しを分けている。 ( #if で大量になるのが嫌だったためと、実転送部分とトレース記録を分けたかったため。 ) 間違いがあれば、Twitterかコメント欄にてお知らせ頂けると幸いです。 https //github.com/is01rebuild/is01_kernel_2_6_29_debug 更新情報:20110227_02 bug fix ドライバのソースコードは ae2drv.c です。上記リンクからもたどれますが、面倒なので直リンク張っておきます。 https //github.com/is01rebuild/is01_kernel_2_6_29_debug/blob/master/drivers/yamaha/ae2drv.c これを、上記の「ドライバをkernelモジュールにする」のdriver部分を置き換える。 (リネームして別名のkernelモジュールにした方が切り替えが出来て良いと思われる) github に上げたドライバはトレース可能にしたもののエラー処理を所々省いているため、長時間運用はできないので注意の事。 ドライバの rmmod、insmod・サービス再起動方法 init.rc にて insmod すると起動直後から音が鳴るようになるが、このままでは rmmod できない。 rmmod するにはサービスの停止をしてから行う。 下記例はrooter を入れて on にしているか、busybox がインストールされている状態が前提になっている。 rmmod $ adb shell # stop mediayamaha # kill -9 `ps | grep mediayamaha | awk '{print $2}'` # rmmod ae2drv insmod # insmod /system/lib/modules/ae2drv.ko dmesg で insmod 時のモジュール初期化時における、kernelでのメモリ確保状態を出すようにしている。 # dmesg dmesg のバッファをクリアする場合は dmesg -c を実行。 /devに追加されたかどうか確認 # ls -l /dev/ae2* # crw-rw-rw- system audio 229, 0 2011-02-25 01 42 ae2 # crw------- root root 229, 1 2011-02-25 01 42 ae2debug メジャー番号である229は実行環境によって異なるかもしれない。 dmesg すると ae2drv.ko のデバッグ情報や動作中のデバッグ情報もかなり出しているので、dmesg 出力結果がうるさい場合は適宜ドライバコードの該当部分をコメントアウトして欲しい。 サービスの起動、mediaserver 再起動 # start mediayamaha # kill -9 `ps | grep mediaserver | awk '{print $2}'` /dev/ae2のパーミッションと所有者情報は何処で指定されているのか追いかけていないため不明。。。 debugドライバの使い方 PC にてTerminalをもう一つ開いて $ adb shell cat /dev/ae2debug ae2debug.txt 等とすると、 ae2debug.txt にトレース結果がでる。 /dev/ae2debug への書き込みには未だ対応していない。 何か書き込みが来たら、内部バッファをクリアさせる予定。だが、実装するかどうかは今後の進捗による。 先に、ユーザランド側を書いてみて、うまくいかなかったら実装する必要が出てくるかも。 現状、このトレース結果の妥当性検証は済んでいないため誤りがあるかもしれない。 出力結果をc言語コードに簡単に取り込めるように出力するようにした。。が、まだ未検証。 結果の最後に総数を出力している。 この数はinsmodして、start mediayamaha、mediaserver を再起動した直後の結果。これも、膨大な量の為、まだ未検証。 ReadWriteCount.allCount=5726; ReadWriteCount.waitCount=77; ReadWriteCount.sleepCount=202; ReadWriteCount.writeCount=3157; ReadWriteCount.writeByteCount=2439; ReadWriteCount.writeWordCount=20476; // 2バイト単位でのカウント ×2 でバイト数になる。 ReadWriteCount.readCount=893; ReadWriteCount.readByteCount=893; ReadWriteCount.readWordCount=0; ReadWriteCount.disableCount=697; ReadWriteCount.enableCount=697; ReadWriteCount.resetCount=1; ReadWriteCount.waitIRQCount=1; ReadWriteCount.cancelCount=0; ReadWriteCount.setCount=1; ドライバからのdebug情報 ・サービス初期化完了段階 dump[4562] 付近 ・mediaserver 再起動完了 dump[5727] 付近 ・画面タップ音をカーソルキー操作で発音完了直後 dump[9450] 付近 ・発音完了して、GPIOがOFFになった頃 dump[9838] 付近 ioctlによる、driverからチップへのreadとwrite(?) 2ch root4 スレッドにて、452氏より、最初のwriteWord[0]~の24KBほどのデータは /system/lib/libmediayamahasmw.so の 0007C954 2D 61 AE AE 2D 61 2D 61 2D 61 2D 61 ~ と一致すると報告された。 上記 cat /dev/ae2debug の出力結果から大量のデータがチップに転送されている。が、その内容の多くは現在不明。 /system/etc/yamaha/effect/param /system/lib/ この2つのディレクトリ以下にあるデータと付き合わせてみる必要が有るかもしれない。これもデータが大量。 初期か段階での読み込みは1バイト単位のみ、結果の確認のみだろうか? リードとライトのフォーマットはdriverの kernel/drivers/yamaha/madrv.h に構造体として宣言されている。 struct ma_IoCtlWriteRegWait { unsigned longdAddress;/* I/F Address */ const void*pData; /* Write Pointer */ unsigned intdSize;/* Write Size(data type size) */ unsigned intdDataLen;/* Data Length */ unsigned intdWait;/* Wait ns */ }; struct ma_IoCtlReadRegWait { unsigned longdAddress;/* I/F Address */ void*pData; /* Read Data Store Pointer*/ unsigned intdSize;/* Read Size(data type size) */ unsigned intdDataLen;/* Data Length */ unsigned intdWait;/* Wait ns */ }; で、問題は I/F Address が何を意味する(何かのregisterアドレスかな??)のか分からない。 Write Pointer はユーザランド側のデータへのポインタである。 driver内でユーザ領域からkernel領域にデータがコピーされた後、ioremapアドレス+I/F Addressで読み書きされている。 実例は cat /dev/ae2debug をして確認してみてほしい。 ioctl のコマンド #define MA_IOC_MAGIC 'x' #define MA_IOCTL_WAIT _IOW( MA_IOC_MAGIC, 0, unsigned int ) #define MA_IOCTL_SLEEP _IOW( MA_IOC_MAGIC, 1, unsigned int ) #define MA_IOCTL_WRITE_REG_WAIT _IOW( MA_IOC_MAGIC, 2, struct ma_IoCtlWriteRegWait ) #define MA_IOCTL_READ_REG_WAIT _IOWR( MA_IOC_MAGIC, 3, struct ma_IoCtlReadRegWait ) #define MA_IOCTL_DISABLE_IRQ _IO( MA_IOC_MAGIC, 4 ) #define MA_IOCTL_ENABLE_IRQ _IO( MA_IOC_MAGIC, 5 ) #define MA_IOCTL_RESET_IRQ_MASK_COUNT_IO( MA_IOC_MAGIC, 6 ) #define MA_IOCTL_WAIT_IRQ _IOR( MA_IOC_MAGIC, 7, int ) #define MA_IOCTL_CANCEL_WAIT_IRQ _IO( MA_IOC_MAGIC, 8 ) #define MA_IOCTL_SET_GPIO _IOW( MA_IOC_MAGIC, 9, unsigned int ) 間違いが多く含まれているかもしれません、何かお気づきの点が有りましたら、Twitterか下記まで。 コメント 名前 コメント すべてのコメントを見る (2011/02/25 2 12 初版公開)
https://w.atwiki.jp/mitsu_koh/pages/52.html
Arch Linuxを入れたときのメモ ログ 2012.03.03 いろいろ調べたところ、 Arch Gentoo CRUX あたりが面白そうだった。GentooとCRUXはパッケージ管理の際に、ソースからコンパイルするのが面倒そうだった。 Archはパッケージ管理はバイナリでやるらしいのでその辺は楽そう。 あとArchはドキュメントが豊富らしいので、Archをインストールすることにした。 というわけで、バージョン2011.08.19のx86-64 CPUのCore Imageをダウンロードした。 ネット無しでインストールできる方がいろいろ便利そうということでcoreの方にした。 インストールをミスって今ノートパソコンに入っているWindowsとUbuntuを潰したくなかったので、 UbuntuのVirtualBoxにインストールしてみる・・・と思ったけどx86-64のCPUがないといわれてブートできない。 Ubuntuが32bitだからかと思ったけどそうではないらしい。(参考 http //askubuntu.com/questions/21902/run-64bit-os-in-virtual-box-from-32bit-ubuntu) 上をみてBIOSの設定で、VT-xとVT-dを有効にした・・・けどうまくいかないので諦めた。 仕方がないのでi686版のArchをダウンロードして、VirtualBoxにインストール開始。 設定は全部デフォルトのままとりあえずArchマシンを作成。/arch/setupスクリプトを実行してインストール開始。 愛しのviで編集した設定は ホスト名 ネットワークインタフェース名 だけだった気がする。(忘れた) パーティションは以下のように分けた。 sda5 * Logical Linux 100 sda6 Logical Linux swap 256 sda7 Logical Linux 5000 sda8 Logical Linux 3235(残り) マウントポイントとファイルシステムは以下のようにした。 sda5 /boot ext3 sda6 /swap sda7 / ext3 sda8 /home ext3 grubはMBRにインストールしないで終わり。(PBRにインストールする選択肢がなかった。MBRがインストールされてないからか?) (インストール後の/bootにgrubがあるから、デフォルトでPBRにgrubがインストールされて、MBRにインストールするgrubはまた別物?) (/bootにあるのはgrubの設定ファイルとかカーネルであって、grubのブートローダ本体ではなくてカーネルローダのみ) したのリンクからgrub.isoをダウンロードして、Arch Linuxを起動してみる root (hd0,4) kernel /vmlinuz-linux root=/dev/sda7 initrd /initramfs-linux.img boot 起動した。とりあえず今日はここまで。 2012.03.04 grubのインストール状況がよくわかっていないので調査する。 とりあえず現状ではgrub起動ディスクから root (hd0,4) chainload +1 で起動することはできない。(grubがPBRにインストールされていないため?) つまりArchをインストールしたときにインストーラが求めてきたのは MBRのgrub → パーティション内のプログラム という起動処理であって、grubをインストールする候補はMBRしかなかったということ。 とりあえずgrubをPBRにインストールしてみる。/と/bootどっちにインストールすればいいんだ?インストールした方にブート可能フラグを立てればいい?いま/bootにはブート可能フラグが立っているけど、これはいらないのか? とりあえず/bootのブート可能フラグをオフにしてみる。 grub 前と同じ で起動して、 fdiskで/dev/sda5(/boot)にフラグがたってるのを確認。 cfdiskでBootableを選択して、/bootのFlagsをなしにする。wirte。 fdiskで見てみると確かに消えた。 rebootして、 grub 前と同じ で起動した。やっぱり/bootのPBRにはgrubが入ってなくて、grub起動ディスクで/bootの中の設定ファイルとかカーネルとかを読んで起動してるだけという考え方でいいっぽい。 今の状態でHDDから起動しようとすると、ブート可能フラグがたってるパーティションが内的なことを言われて起動できない。ブート可能フラグが/bootにたってる時も同じ。MBRになにもインストールされていないため。 ちなみに今grubでroot (hd0,6)でArchの/をルートにして、find /して保管しようとしても見れない。(たぶんこのへん? http //forums.fedoraforum.org/showthread.php?t=229385) こういう現象を見ると/bootを分けるのはなかなかよさげかもしれない。grubのバージョンが古いだけかもしれない。 次に、/bootのPBRにgrubをインストールして、grub起動ディスクからチェーンロードしてみる。またgurb起動ディスクからブートして、/bootのPBRにgrubをインストール grub-install /dev/sda5 Installation finished. No error reportedと表示された。rebootしてチェーンロードしてみる。 root (hd0,4) chainload +1 してもなにも起きないしエラーも出ない。仕方がないのでgrubからコマンドで起動する。 grubがうまくインストールできてないのか?それともVirtualBoxのせい? というわけでもうVirtualBoxはだいだいいいので、以降は古いノートPCにいろいろ入れてみる。パーティションは Device Boot Type File System Size Label sda1 * Primary ext3 15G Ubuntu_root sda2 * Primary ext3 15G Debian_root sda3 * Primary ext3 15G Arch_root sda4 Extended 35G sda5 Logical Linux Swap 5G Linux_swap sda6 Logical ext3 10G Ubuntu_home sda7 Logical ext3 10G Debian_home sda8 Logical ext3 10G Arch_home のようにする。/bootは分けない。sda1,2,3のPBRにはgrubをインストールして、MBRに何もインストールしないでとりあえずgrub起動ディスクからチェーンロードしてみることにする。 2012.03.05 とりあえず古いパソコンをgrub起動ディスクから起動してみる。 起動ディスクの作成は grub-install --version # grub2であることを確認 sudo grub-install --force --root-directory=/media/usb /dev/sdc1 vaioのパーティションは下のようになっていた。初心者のころにしてはなかなかナイスなわけかたである。一生懸命調べた ) sda1 primary ntfs VAIOリカバリ領域 5G sda2 primary ntfs Windows XP 37G sda3 primary ext3 /boot 200M sda4 extended sda5 logical Linux swap スワップ領域 3G sda6 logical fat32 共通データ領域 5G sda7 logical ext3 /home 12G sda8 logical ext3 / 12G 古いパソコンにusbをさして、hd0がusbメモリになるから、HDDはhd1になる。 まずVAIOリカバリ領域を起動するには、 insmod ntfs root (hd1,1) set root=(hd1,1) drivemap -s (hd0) ${root} chainloader +1 boot Windows XPを起動するには、 insmod ntfs root (hd1,1) set root=(hd1,2) drivemap -s (hd0) ${root} chainloader +1 boot もしくは insmod ntfs root (hd1,1) 次に、Ubuntuを起動するには root (hd1,3) linux /vmlinuxz-2.6.32-22-generic root=/dev/sda8 initrd /initrd.img-2.6.32-22-generic boot で、grub起動ディスクから直接Ubuntuを起動することができる。grub2になってるのでコマンドがややこしいが、 root (hd1,1) でブートローダのある領域を指定 set root=(hd1,2) して drivemap -s (hd0) ${root} でOSの/を指定 chainloader +1 でPBRを読んできて、 boot でブート開始となる Windows XPはぶっ潰してしまおうかと思っていたが、久しぶりに起動したらやっぱり使いやすくていいと思ったので残すことにする。 疲れたので今日はここまで。 ちなみに set root=(hd1,2)を飛ばすとroot (hd1,1)したときにroot=(hd1,1)されるので注意。drivemapはパーティション番号は無視するから、 リカバリ領域は root (hd1,1) drivemap -s (hd0) (hd1) chainloader +1 boot で起動できるし、Windows XPは root (hd1,1) drivemap -s (hd0) (hd1) set root=(hd1,2) chainloader +1 boot で起動できる。set root=(hd1,2)の位置はとても重要で、chainloaderがPBRを読んでくる際に、ファイルシステムの/はどこなのかを、 ${root}から読み取っているようなので、chainloaderより後ろでroot=(hd1,2)してもroot (hd1,1)したときに設定された(hd1,1)を/として 読んでしまうので、その場合はリカバリ領域が起動してしまう事に注意。 2012.03.06 Windows XPはやっぱり残すことにしたので、パーティションは以下のようにする。 Device Bootable Part Type FS Type Mount Point Label Size sda1 primary ntfs VAIOリカバリ領域 5G sda2 boot primary ntfs Windows XP 40G sda3 boot primary ext3 / Arch_root 10G sda4 extended sda5 logical Linux swap Linux_swap 4G sda6 logical ext3 /home Arch_home 5G rest logical another OS 16G MBRには現在grubが入っている。Archをとりあえず今のUbuntuの所にインストールして、MBRにはgrubをインストールしない。 こうするとMBRに居座っているgrubの本体があるUbuntuの/が消えるから起動しなくなるはず。 あとでsda3のPBRにgrubをインストールして、MBRにはマルチブートマネージャを入れる予定。 まずArchを入れる。パーティションはcfdiskが結構よさげなのでこれで区切る。 なんかwaitingどうたらというエラーが出た。どうやらArchのイメージの場所がわからないようである。 dmesg ln -s /dev/USB外付けディスクのデバイス名 /dev/でてきたエラーメッセージのパス で解決した。(参考 https //bbs.archlinux.org/viewtopic.php?id=129618 と https //bbs.archlinux.org/viewtopic.php?id=77815) どうやらddコマンドを使わないでisoを直接焼くと、ブート時に読み込むラベル(menu.lst)かなんかが正しく設定されてないから、 どこに読みに行けばいいか解決できないみたい。(ようするにdd使えということ) kmですきなキーマップにしてから、(qwerityのemacs2とかにするとCaps LockがCtrlになっていい) /arch/setup でインストール開始。全部デフォルトでインストール。(あとで入れればいい) 設定するのは HOSTNAME="Esthar" interface=eth0 pacman.conf は全部のリポジトリをInclude (いろいろ使ってみたいので) mirrorlist はとりあえず日本のサーバを指定 Root-Password ホスト名はいつもFinal Fantasyの地名からとってる。今回は近代的なマシンを目指すという意味で8のエスタという街にした。 ミラーリストはあとで一番早いのに設定しなおす。 Install bootloaderはとりあえず設定ファイルの感じだけみてCancel。(PBRに入れたい人はあとで勝手に入れろということか) Execution ReportでInstall bootloaderだけFailedになってるのみてインストール完了。 まちがってUSBドライブ抜いたらrebootできなくなったので電源プッチンする。 とりあえず現在、MBRにはgrubが入っていて、grubの設定ファイルとかがあったUbuntuの/(か/boot。どっちか忘れた)が消えたので grub rescueシェルが起動する。とりあえずWindowsが氏んでいないことを確認する。 ls (hd0,x)/ すると中身が見れる。・・・けどntfsとかはモジュールが無いので読めない。grubのカーネルローダ本体はあるっぽい。(stage*とかはある) なのでgrub起動ディスクからとりあえずWindowsとArchを起動する。Windowsは前と同じコマンドで起動する。 Archはまだ/のPBRにgrubがインストールされてないので、 root (hd1,3) chainloader +1 boot としてもだめなので、(chainloader +1でerror invalid signature.) root (hd1,3) linux /boot/vmlinuz-linux root=/dev/sda3 initrd /boot/initramfs-linux.img boot で起動できる。とりあえずgrubを/のPBRにインストールすることにする。 grub-install /dev/sda3 でdrive.mapが合ってるか確認してreboot、grub起動ディスクから起動して、 root (hd1,3) chainloader +1 (今度はエラーは出ない) boot とするとgrubのOS選択画面が出てくるから、てきとうに選んでみると Booting Arch Linux root (hd0,2) Error 22 No such partition Press any key to continue..._ と言われてしまうので、Arch Linuxがハイライトされているgrubメニューでe(Edit)を押して、 root (hd0,2) = (hd1,2) に変更 (grub-legacyはsuffixが0オリジンだったりコマンドが違ったりする・・・) b(Boot)を押すと起動する。(一時的な書き換え) もしくはgrub rescureを起動させて、とおもったらnormal.modが無い。どうやらnormal.mod自体はgrub legacyには無いらしい。 (参考 https //forums.ubuntulinux.jp/viewtopic.php?id=10578 と ) 今はMBRにgrubが入ってないから、grubのメニューとかシェルを実行することができる段階までgrub rescureから行く手段がない? (仕組みがgrub2で変わった) みたいな感じらしいので(合ってるか知らんが)とりあえずMBMいれるしもういいやという感じ。 まあMBR(もしくはMBRの途中といってもいい?)から先が無い時点でかなり変な状況だししょうがない。 MBMを入れていく。したのサイトを参考にして作成。 れでMBM ブートローダ(あんまり正確な表現ではないかも)、grub カーネルローダとなっていい感じ。 参考文献 ブート関連 Grubによるマルチブート時のチェーンロードの考え方 GRUB入り起動CDを作る Tips マルチブートするなら2段階ブート方式に統一しよう Windows/Linux混在環境での二段階ブートの確立方法 パーティション関連 「プライマリパーティション」と「拡張パーティション」の違い
https://w.atwiki.jp/yottchan/pages/14.html
外部ディスクの増設手順 1. [root@yslx10 ~]# fdisk -l /dev/sda Disk /dev/sda 4335 MB, 4335206400 bytes 255 heads, 63 sectors/track, 527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sda1 1 527 4233096 42 SFS [root@yslx10 ~]# パーティションは、そのままで使用する。 2.フォーマット(vfatで) [root@yslx10 ~]# mkfs -t vfat /dev/sda1 mkfs.vfat 2.10 (22 Sep 2003) [root@yslx10 ~]# echo $? 0 [root@yslx10 ~]# 3.ファイルシステムのチェック [root@yslx10 ~]# fsck -f -y /dev/sda1 fsck 1.37 (21-Mar-2005) dosfsck 2.10, 22 Sep 2003, FAT32, LFN /dev/sda1 0 files, 1/1056207 clusters [root@yslx10 ~]# 4.マウント [root@yslx10 ~]# cd /mnt [root@yslx10 mnt]# ls [root@yslx10 mnt]# mkdir exthdd [root@yslx10 mnt]# mount /dev/sda1 ./exthdd [root@yslx10 mnt]# echo $? 0 [root@yslx10 mnt]# [root@yslx10 mnt]# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 12125232 3647736 7851628 32% / /dev/hda1 101086 9951 85916 11% /boot /dev/shm 127436 0 127436 0% /dev/shm /dev/sda1 4224828 4 4224824 1% /mnt/exthdd [root@yslx10 mnt]#