2TB超過のハードディスクを扱う(GPT)

2TB以上のハードディスクを扱うには新しめのマザーボードが必要

Linuxでは 従来のfdiskでなく partedというツールを使ってパーティション設定する
とあったので partedをインストールしてみたがうまくいかない

# cat /proc/partitions
major minor  #blocks  name

   8        0  244198584 sda
   8        1   10485688 sda1
   8        2  233712864 sda2
   8       16 1953514584 sdb
   8       17 1953512001 sdb1
   8       48 2930266584 sdd
   8       49 2147483647 sdd1
#
 

3TB HDDを partedでフォーマットしても
USBを挿し直すと sdd1が 2TBサイズと認識されてしまいます

2TB超過のHDDを扱うには parted以前にも必要な条件があります

検証システム
CPU AMD PhenomII X4 905e (2.5GHz 4コア)
マザーボード GA-880GM-USB3 (AMD880G+SB710)
メモリ 16GB
HDD WD30EZRX WD社製 Green 3TB (SATA 6Gbps)
センチュリー 裸族のお立ち台USB3.0 によるUSB接続
OS Gentoo-1.12.14 Linux-3.10.1 x86_64 UTF-8
コンパイラ gcc-4.5.2
Cライブラリ glibc-2.13

3TB以上の HDDを扱うには従来のMBR形式でなく
GPT形式でパーティション情報を扱う必要があります
下記が必要な条件です

その1 : UEFI対応マザーボード
GPT形式の内蔵ディスクから OSをブートするために必要
その2 : OSの対応
Windowsなら 64bit Vista以降が必要 Linuxならカーネルの設定が必要(下記参照)
その3 : GPTフォーマットツール
Linuxなら partedが必要

Linuxのカーネルに必要な設定は GUID Partition Supportです
Linux カーネル GUID Partition Support
USBディスクを挿し直すと パーティション情報が壊れていたのは
この設定が抜けていたためです

GPTが有効になった カーネルでは問題なく partedの設定も反映されました

# parted /dev/sdd
GNU Parted 3.1
/dev/sdd を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) rm 1
(parted) unit s
(parted) mkpart
パーティションの名前?  []? ext3
ファイルシステムの種類?  [ext2]? ext3
開始? 2048s
終了? 5860533101s
(parted) print
モデル: USB 3.0 LucidPort USB300 (scsi)
ディスク /dev/sdd: 5860533168s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始   終了         サイズ       ファイルシステム  名前  フラグ
 1    2048s  5860533101s  5860531054s  ext3              ext3

(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
#
 

USB HDDを挿し直してもパーティションサイズは正しく認識されます

# cat /proc/partitions
major minor  #blocks  name

   8        0  244198584 sda
   8        1   10485688 sda1
   8        2  233712864 sda2
   8       16 1953514584 sdb
   8       17 1953512001 sdb1
   8       48 2930266584 sdd
   8       49 2930265527 sdd1
#
 

DHCPサービスの導入

IPv6にも対応した DHCPサーバの設定

UNIX系のDHCPの有名な実装は ISC-DHCPWIDE-DHCP(リンクは WIDE-DHCPv6)です
今回は ISC-DHCPを使って IPv4 IPv6 両対応のDHCPサービスを構築します

検証システムK/caption>

CPU AMD PhenomII X4 905e (2.5GHz 4コア)
メモリ 16GB
ネットワーク Realtek 8168 (8111D) GbE
OS Gentoo-1.12.14 Linux-3.10.1 x86_64 UTF-8
コンパイラ gcc-4.5.2
Cライブラリ glibc-2.13
LDAPサーバ OpenLDAP-2.4.23
DHCPサーバ ISD-DHCP-4.2.5

ISC-DHCPを利用して 自宅のネットワークを IPv4 IPv6 ハイブリッドにしました
下記の図は 構成概要です
自宅DHCPv4 DHCPv6構成
ISC-DHCPサービスを入れるのは 図の左上のサーバマシンです
サーバマシンは DNS(IPv4/IPv6)と IPv4のDHCPサーバの機能も持たせます

IPv6アドレスの払出しは v6のポリシー上ルータに行わせる必要があるため
フレッツ光のゲートウェイルータがその役目を担います

今回の DHCPv6導入の目的は ネットワーク内にDNSサーバアドレスを広報することです
サーバで ISD-DHCPをビルドした結果は次の通りです

$ tar -xzf /ram/dhcp-4.2.5.tar.gz
$ cd dhcp-4.2.5
$ ./configure --prefix=/usr --libdir=/usr/lib64 --localstatedir=/var --with-ldap
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p

〜

config.status: executing depfiles commands

     ISC DHCP source configure results:
    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Package:
  Name:          DHCP
  Version:       4.2.5

C Compiler:      gcc

Flags:
  DEFS:          -DHAVE_CONFIG_H
  CFLAGS:        -g -O2  -Wall -Werror -fno-strict-aliasing -I${top_srcdir}/bind/include

Features:
  debug:         no
  failover:
  execute:

Developer:
  ATF unittests : no


Now you can type make to build ISC DHCP

$ make
Making all in bind
make[1]: ディレクトリ `/home/admin/dhcp-4.2.5/bind' に入ります
Configuring BIND Export libraries for DHCP.

〜

make[1]: ディレクトリ `/home/admin/dhcp-4.2.5/server' から出ます
make[1]: ディレクトリ `/home/admin/dhcp-4.2.5' に入ります
make[1]: `all-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/admin/dhcp-4.2.5' から出ます
$ su
# make install
Making clean in server
make[1]: ディレクトリ `/home/admin/dhcp-4.2.5/server' に入ります

〜

make[1]: ディレクトリ `/home/admin/dhcp-4.2.5' に入ります
make[1]: `clean-am' に対して行うべき事はありません.
make[1]: ディレクトリ `/home/admin/dhcp-4.2.5' から出ます
#
 

下記ファイルがインストールされました

bin/:
omshell

etc/:
dhclient.conf.example  dhcpd.conf.example

include/dhcpctl:
dhcpctl.h

include/isc-dhcp:
dst.h

include/omapip:
alloc.h   convert.h  isclib.h  omapip_p.h  trace.h
buffer.h  hash.h     omapip.h  result.h

lib/:
libdhcpctl.a  libdst.a  libomapi.a

sbin/:
dhclient  dhcpd  dhcrelay

share/man/man1/:
omshell.1

share/man/man3/:
dhcpctl.3  omapi.3

share/man/man5/:
dhclient.conf.5    dhcp-eval.5     dhcpd.conf.5
dhclient.leases.5  dhcp-options.5  dhcpd.leases.5

share/man/man8/:
dhclient-script.8  dhclient.8  dhcpd.8  dhcrelay.8
 

dhcpdは IPv4 IPv6 両対応ですが別々にプロセスを起動する必要あります
そのため設定ファイルも別々に作成する必要があります

IPv4用の設定ファイルを /etc/dhcpd.conf
IPv6用の設定ファイルを /etc/dhcpd6.conf としましょう

IPv4用 dhcpd.conf は下記の通りです

ldap-server "[::1]";
ldap-port 389;
ldap-username "cn=Manager,dc=mydomain";
ldap-password "*****";
ldap-base-dn "cn=dhcp,dc=mydomain";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
 

IPv4のDHCPについては 普段と趣を変えて LDAPバックエンドとしました
DHCP用のLDAPスキーマは ソースディレクトリ/contrib/ldap/dhcp.schema にあるので
LDAPサーバにあらかじめ取り込んでおく必要があります

また LDAPデータベースには下記のようなエントリを登録します

# dhcp, mydomain
dn: cn=dhcp,dc=mydomain
objectClass: top
objectClass: dhcpService
objectClass: dhcpOptions
dhcpStatements: ddns-update-style interim
dhcpStatements: log-facility local7
dhcpStatements: deny client-updates
dhcpStatements: default-lease-time 3600
dhcpStatements: max-lease-time 43200
cn: dhcp
dhcpPrimaryDN: cn=phenom4,cn=dhcp,dc=mydomain

# group-192.168.0.0, dhcp, mydomain
dn: cn=group-192.168.0.0,cn=dhcp,dc=mydomain
cn: group-192.168.0.0
objectClass: top
objectClass: dhcpGroup
objectClass: dhcpOptions
dhcpOption: domain-name "mydomain"
dhcpOption: domain-name-servers 192.168.0.254, 192.168.0.1
dhcpOption: subnet-mask 255.255.255.0
dhcpOption: broadcast-address 192.168.0.255
dhcpOption: routers 192.168.0.1
dhcpOption: smtp-server 192.168.0.254

# 192.168.0.0, group-192.168.0.0, dhcp, mydomain
dn: cn=192.168.0.0,cn=group-192.168.0.0,cn=dhcp,dc=mydomain
cn: 192.168.0.0
objectClass: top
objectClass: dhcpSubnet
dhcpNetMask: 24
dhcpRange: 192.168.0.200 192.168.0.239
dhcpStatements: authoritative

# turion4, group-192.168.0.0, dhcp, mydomain
dn: cn=turion4,cn=group-192.168.0.0,cn=dhcp,dc=mydomain
cn: turion4
objectClass: top
objectClass: dhcpHost
dhcpHWAddress: ethernet 0*:**:**:**:**:*2
dhcpStatements: fixed-address 192.168.0.3

# xbox360, group-192.168.0.0, dhcp, mydomain
dn: cn=xbox360,cn=group-192.168.0.0,cn=dhcp,dc=mydomain
cn: xbox360
objectClass: top
objectClass: dhcpHost
dhcpHWAddress: ethernet 0*:**:**:**:**:*9
dhcpStatements: fixed-address 192.168.0.13

# phenom4, dhcp, mydomain
dn: cn=phenom4,cn=dhcp,dc=mydomain
cn: phenom
cn: phenom4
objectClass: top
objectClass: dhcpServer
dhcpServiceDN: cn=dhcp,dc=mydomain
 

必要な設定は以上です
DHCPv4の起動は下記のコマンドで行います

# dhcpd -q -4 -cf /etc/dhcpd.conf eth0
 

うまく動作したら サーバ起動時に自動実行されるように設定しましょう

次に DHCPv6の設定を行います
DHCPv6は LDAPバックエンドでうまく動作しなかったので
dhcpd6.confに必要な設定を記述します

# dhcpd.conf
#
default-lease-time 86400;
max-lease-time 604800;

subnet6 fe80::/64 {
  option dhcp6.name-servers fe80::1***:****:****:***a;
  option dhcp6.domain-search "mydomain";
}
 

設定はこれだけです IPv6アドレスを払い出す必要もなく
DNSサーバのアドレスだけ広報してもらえばよいので簡潔な設定になっています

ネットワークが fe80:: のリンクローカルに対して設定されていますが
これがあるべき姿かどうかは分かりません

DHCPv6の起動は下記コマンドで行います

# dhcpd -q -6 -cf /etc/dhcpd6.conf eth0
 

サーバの設定は以上で完了です
クライアントマシンで DNSサーバを DHCPv6を通じて解決するには
特にWindowsでは設定が必要です (管理者権限で設定します)

C:\Windows\system32>netsh interface ipv6 show interface

Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
  3          10        1500  connected     イーサネット
  1          50  4294967295  connected     Loopback Pseudo-Interface 1
  4          50        1280  disconnected  isatap.local
  5          50        1280  connected     Teredo Tunneling Pseudo-Interface


C:\Windows\system32>netsh interface ipv6 set interface 3 otherstateful=enabled
OK
C:\Windows\system32>
 

Windowsでは IPv6のネットワークインターフェースに対して
「otherstateful=enabled」に設定する必要があります

解説はここまでです
自前で DNSサーバを運用するような状況では DHCPまで正しく構築する必要あります

逆に 自宅のネット環境など パソコンやゲーム機が数台だけの環境なら
特に IPv6ではブロードバンドルータさえあればネットの設定は自動化され楽です

IPv6サーバツールへ戻る

洞窟物語+

洞窟物語

難易度が秀逸なアクションゲームの名作
STEAM ではアレンジ版が販売されてます
PLAYISM ではオリジナル版が無償配布されています
アレンジ版をたまたまクリスマスの時期にプレイしていたら
クリスマス仕様のデザインに変わりました
画面キャプチャで紹介します
洞窟物語+ クリスマス仕様1
ラスボス近く ハードモードなので体力がほとんどありません
洞窟物語+ クリスマス仕様2
敵キャラもクリスマス帽子をかぶってます
洞窟物語+ クリスマス仕様3
洞窟物語+ クリスマス仕様4
背景のカラフルな飾り付けにもよらず 激しい戦いは容赦なし
洞窟物語+ クリスマス仕様5
洞窟物語+ クリスマス仕様6 /><br />
 通常のエンディングです<br />
 <img src=
洞窟物語+ クリスマス仕様8
聖域に分岐した場合
洞窟物語+ クリスマス仕様9
洞窟物語+ クリスマス仕様10
洞窟物語+ クリスマス仕様11
ボス強くて倒せない
結局クリスマス仕様の期間でクリアできませんでした

仮想環境 Virtual PC

Virtual PC

Virtual PCとは Windows上で動作する デスクトップ仮想化ツールです
もともと有償販売されていたものを Microsoftが買収して無償化しました

Windows 7 に含まれています
今や Windows XPからの移行を促すための 旧環境併用ツールとなってますが
ここでは Virtual PC 2007 の使い勝手を簡単に紹介します

Virtual PC 2007

Windows Vista上で動作確認しました

動作環境
CPU Core2Quad Q9550s (4コア 4スレッド 2.83GHz)
メモリ 16GB
グラフィックカード GIGABYTE GV-R485MC-1GH (RADEON HD4850 1G)
HDD 200GB (C:ドライブ), 500GB (E:ドライブ)

Virtual PC 2007 コンソールメニュー
Virtual PCは Microsoftのダウンロードページから取得できます
(2013年11月時点の確認) 今はもう Windows Virtual PC という名前になってますね
Windows Vistaで使えるか未確認です

ともかく Virtual PCを起動すると 図のような管理画面が出てきます
仮想マシンを複数登録したり 起動したりします
Virtual PC 2007 バーチャルマシンウィザード
仮想マシンを追加してみます
Virtual PC 2007 バーチャルマシン命名
古い Windows95のゲームができないか試したかったので
図のような名前になってます

結論からいえば Win9x系のDirectXに非対応でした
Windows Virtual PCでは少なくとも Windows 2000以降 DirectXが動作するようです
Virtual PC 2007 バーチャルマシンスペック設定1
ターゲットとなる OSを指定してメモリなどのリソース割り当てを決めます
Virtual PC 2007 バーチャルマシン設定変更
スペック設定は後からも変更可能です
Virtual PC 2007 Ubuntu-11.04を試してみた
Windows95以外の いろいろOSを試すことにしました
Linuxディストリビューションの Ubuntuです ISOイメージを使いましたが
物理CDROMを直接 仮想マシン上に認識させることもできます
Virtual PC 2007 Windows2000を試してみた
Windows2000も問題なく動きました
Virtual PC 2007 Windows2000起動直後
10年前だと少なくとも PC上で PCを利用するのは現実的に厳しいかったですが
マシンスペックが向上した今 ゲーム以外の用途なら十分使えます
企業によっては 社員にWindows仮想環境を提供する例もあります

ちなみに Windows Virtual PCでは
ゲストWindowsのウィンドウを ホストWindows上で表示するような便利機能あります
(Windows XPからの環境以降を円滑にするために提供された仕組みと思われます)

検証で使った Core2Quadは CPUが準仮想化に対応していないので
Hyper-Vといった より効率の良い仮想化方式が使えません

無線ルータ MZK-RP150N

格安な無線小型ルータ

MZK-RP150N という小型無線ルータです
ソフマップで 3000円くらいで購入しまして特に問題なく使えたのでその紹介です
MZK-RP150N 1
当初は サーバマシンに PCIの無線LANカードを挿す形を考えていたのですが
録画サーバとして使っていて PCIの空きスロットがなく断念
MZK-RP150N 2
有線イーサネットの口は 2口用意されていて LAN側 WAN側 と扱いが異なります
ブロードバンドルータとしての使いかたも可能です
今回は 家庭内部セグメントに接続しているので LAN側ポートを使いました
MZK-RP150N 3
無線LANは IEEE802.11n仕様で 150Mbpsまで可能ですが LAN部分は 100Mbpsまでです
またかなりの小型サイズで USB給電のため外出先で利用することも可能です
(最近のモバイルPCは ほぼ無線LAN搭載なので持ち運ぶニーズはないですが)
MZK-RP150N Web管理メニュー
設定も Webインターフェースから行え NATやファイヤウォールの設定も可能です
初期状態では 無線LAN側から設定画面へアクセスできます
ブロードバンドルータに必要な設定が一通り可能です
MZK-RP150N Web管理メニュー ステータス1
コンバータモードというのは MZK-RP150Nが無線LAN子機となる
つまり LAN と 無線LAN のコンバータとして動作するというモードです
無線LAN非搭載の PC持ち出すといった際に使えそうです
MZK-RP150N Web管理メニュー ステータス2
ステータスメニューから 無線LANの状況も確認できます
仮想AP1〜4を使えば 別設定のアクセスポイントを最大4つまで併設できます
MZK-RP150N Web管理メニュー ネットワーク1
LAN側設定としては DHCPサーバ設定が可能です
MZK-RP150N Web管理メニュー ネットワーク2
WAN側の設定画面です 今回WANポート利用していないので未設定です
MZK-RP150N Web管理メニュー 管理1
管理メニューからは 無線LANの設定が可能です
MZK-RP150N Web管理メニュー 管理2
無線LANの詳細パラメータも設定できます
電波を遠くに飛ばしたくないので 送信電力を落とすぐらいしか設定してません
MZK-RP150N Web管理メニュー 管理3
グリーンAPとは 指定の時間帯無線機能を止めて省電力にする設定です

アクセス方式は セキュリティ強度のある WPAを利用するようにしましょう