CentOS6でカスタムインストールDVD作成


CentOS6.3ベースでひとまずある程度までパッケージ選択済みでインストールできるkickstartを書いた。
(「CentOS6ベースでカスタムLiveCDを作るという記事もあります)
具体的にはファイルサーバっぽい感じの設定を考えている。

しかし、実際にブートしてみるとパーテーション選択の次で、止まる。

Alt+F2でコンソールを切り替えてみると、以下のエラーが出力されていることがわかった。

ERROR: Error downloading treeinfo file: [Error 14] PYCURL ERROR 6 - "Couldn't resolve host 'cdrom:sr0'"

しかし、dfで見てみると「/mnt/source」にDVDはマウントされている状況。

ぐぐってみると答えを発見。
serverfault:「PyCURL couldn’t resolve “cdrom:sr0” during CentOS 6.2 kickstart installation

上記ページの要約
「repo –name=”CentOS” –baseurl=cdrom:sr0 –cost=100」ってなってるのを「repo –name=”CentOS” –baseurl=file:///mnt/source –cost=100」に変更しろ。

実際、その通りにしたところ、正常に動作した。

以下は、カスタムインストールDVDを作成するにあたり、実行したコマンドを順に書いていったもの。

 [/root]# mkdir mnt
[/root]# mount -o ro,loop CentOS-6.3-x86_64-bin-DVD1.iso mnt
[/root]# mkdir CentOS
[/root]# cd mnt
[/root/mnt]# tar cf - . |(cd ../CentOS;tar xpf -)
[/root]# cd ..
[/root]# cp anadonda-ks.cfg CentOS/isolinux/ks.cfg
[/root]# cp -r custom CentOS
[/root]# cd CentOS
[/root/CentOS]# cd isolinux
[/root/CentOS/isolinux]# vi isolinux.cfg
[/root/CentOS/isolinux]# cat isolinux.cfg
default vesamenu.c32
#prompt 1
timeout 600

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.3!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install or upgrade an existing system
  kernel vmlinuz
  append initrd=initrd.img
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -
label nas
  menu label ^Install or upgrade a CentOS custom OS
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
[/root/CentOS/isolinux]# cat ks.cfg
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
text
lang en_US.UTF-8
keyboard jp106
network --onboot yes --device eth0 --bootproto dhcp --noipv6
network --onboot no --device eth1 --bootproto dhcp --noipv6
rootpw  --plaintext password
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=sda,sdb --append="crashkernel=auto"
firstboot --disabled
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
repo --name="CentOS"  --baseurl=file:///mnt/source --cost=100

%packages
@core
@server-policy
crypto-utils
perl-DBD-SQLite
perl-CGI
wget
parted
ypbind
yp-tools
xfsdump
xfsprogs
iscsi-initiator-utils
ntpdate
openssh-clients
screen
unzip
man
nfs-utils
samba
autofs
lm_sensors
dmidecode
i2c-tools
lm_sensors-sensord
%end
%post --nochroot
cd /mnt/stage2/custom
# Areca RAID setup
cp cli64 archttp64 archttpsrv.conf /mnt/sysimage/root/
chmod a+x /mnt/sysimage/root/cli64 /mnt/sysimage/root/archttp64
cp init.d-archttp /mnt/sysimage/etc/init.d/archttp
chmod a+x /mnt/sysimage/etc/init.d/archttp
cp logrotate.d-archttp /mnt/sysimage/etc/logrotate.d/archttp
chroot /mnt/sysimage /sbin/chkconfig --add archttp
chroot /mnt/sysimage /sbin/chkconfig archttp on

# system mod
chroot /mnt/sysimage /sbin/chkconfig iptables off
chroot /mnt/sysimage /sbin/chkconfig mcelogd off
chroot /mnt/sysimage /sbin/chkconfig autofs off
chroot /mnt/sysimage /sbin/chkconfig cups off
# nfs mod
mv /mnt/sysimage/etc/sysconfig/nfs /mnt/sysimage/etc/sysconfig/nfs.org
sed s/#RPCNFSDCOUNT=8/RPCNFSDCOUNT=32/ig /mnt/sysimage/etc/sysconfig/nfs.org > /mnt/sysimage/etc/sysconfig/nfs
chroot /mnt/sysimage /sbin/chkconfig nfs on
cat nfs.mod >> /mnt/sysimage/etc/sysctl.cfg

# lm_sensor
mv /mnt/sysimage/etc/sensors3.conf /mnt/sysimage/etc/sensors3.conf.org
cp sensors3.conf /mnt/sysimage/etc/sensors3.conf
mv /mnt/sysimage/etc/sysconfig/lm_sensors /mnt/sysimage/etc/sysconfig/lm_sensors.org
cp lm_sensors /mnt/sysimage/etc/sysconfig/lm_sensors
mv /mnt/sysimage/etc/sysconfig/sensord /mnt/sysimage/etc/sysconfig/sensord.org
cp sensord /mnt/sysimage/etc/sysconfig/sensord
chroot /mnt/sysimage /sbin/chkconfig lm_sensors on
chroot /mnt/sysimage /sbin/chkconfig sensord on

%end
[/root/CentOS/isolinux]# cd ..
[/root/CentOS]# cat custom/nfs.mod

## add for NFS server start
# increase TCP max buffer size
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.core.rmem_default = 65536
net.core.wmem_default = 65536
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
net.ipv4.tcp_rmem = 4096 33554432 33554432
net.ipv4.tcp_wmem = 4096 33554432 33554432
net.ipv4.tcp_mem= 33554432 33554432 33554432
net.ipv4.route.flush=1
net.core.netdev_max_backlog=1500
## add for NFS server end
[/root/CentOS]# cd Packages
[/root/CentOS/Packages]# cp /mnt/Packages/lm_sensors-sensord-3.1.1-10.el6.x86_64.rpm .
[/root/CentOS/Packages]# rm -f eclipse* 
[/root/CentOS/Packages]# cd ..
[/root/CentOS]# mkisofs -r -l -J -o ../Custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
[/root/CentOS]# 

Windows8のファミリーセーフティを有効にしてみた


私のメインパソコン(デスクトップ)は、6歳児との共用です。
3歳~5歳ぐらいにかけては、Windows7環境でユーザアカウントを使い分けて、使う時は、こういった操作でユーザを切り替えて、パスワードを入力すること、と使っていました。
去年、SSDにOSを入れ直した時、めんどうだったので、アカウント使い分けをやめてたのですが、今回、その運用を復帰させた、という感じです。

復帰させるついでに、標準で入っている「ファミリーセーフティ」を有効にして、いろいろ制限をかけてみることにしました。

導入した感想。

・最初のスタート画面を表示するだけでも、許可されていないアプリがあるのは・・・
ユーザ新規作成して、ログインした最初の画面に表示されるアプリで、ファイナンスとかがあるんですが、そのアプリおよびアプリが情報を取りにいくURLは、標準では許可されていないため、「保護者に許可を得てください」というメッセージが表示される。
まぁ、不要だと思うので「ピン留めをはずす」を実行してアプリを表示されないように変更した。

・想像以上にいろんなURLが引っかかる
Microsoftのページでも想像していた以上にフィルタに引っかかりました。
Windows8ストアを開くと「ゲーム」というジャンルがあるんですが、そこ全体が引っかかるとかw
まぁ、いらないアプリとかインストールされなくていいとは思いますが・・・

・Windows8ストアアプリは各ユーザ単位でのインストール
保護者アカウントでインストールすれば、全ユーザで使えるのかな?と思っていたら、そうではなかった。
標準のスタート画面に表示されいるタイルも、全部ユーザ単位でアプリの更新がかかっていた。

・ゲームとXBOX Liveとの連携
ゲームに関してはXBOX Liveとの連携をしないと、いろいろおもしろくなさそうな感じ。
「Cut the Rope」

・有料アプリを買いにくい
子どもアカウントに、保護者アカウントから支払い情報を登録、という感じになっているんだが、勝手に支払われないような設定、というのがやりにくい感じ。
保護者アカウントのパスワード以外に、購入用パスワードを設定できたらなぁ・・・とか

まぁ、いろいろありますが、有用に使えてます。

MZK-WD300DHってもしかしてMiracastになるんだろうか?


PLANEX Directからメールが来た。

「残り僅か!ワンセグチューナー、Wi-Fiディスプレイシステム最終価格で販売中!」だそうな

Wi-Fiディスプレイシステムって、どんなんだろ?と見てみると、MZK-WD300DHというものだった。

ぶっちゃけ、あまし評判はよくないようだ。

ただ、なんかうたい文句的にはいまで言うMiracastっぽいけど、別のモノ、ということにはなっている。

PLANEXページからドライバをダウンロードしてみた。
3種類のドライバと、関連ソフトの詰め合わせだった。

「92_DU_Driver」は、Realtek RTL8192D USBドライバ(rtl8192du.sys)でバージョンは「1002.1.816.2011」(日付:2011/11/21 0:00)

「WiDi_Driver」は2種類。
「RTKVideo」PLANEX Wifi Display VGA Adapter(RtlvVga.sys)でバージョン「1005.2.622.2011」(日付:2011/11/21 0:00)
「RTKAudio」PLANEX Wifi Display Audio Adapter(RtlvSound.sys)でバージョン「1005.1.526.2011」(日付:2011/11/21 0:00)
どちらもinfファイル内には「Realtek Semiconductor Corporation」の文字。

この情報を持って、チップメーカであるRealTekのページを探すと、以下がでてきた。

RTL8192DU-VC
Single-Chip IEEE 802.11a/b/g/n 2T2R WLAN Controller with USB 2.0 Interface
(PCI Express対応だとRTL8192DE-VCになる)

そして、プレスリリース系として、以下が・・・

2012年9月19日:「Realtek Selected for the Wi-Fi CERTIFIED Miracast™ Test Bed
 Miracastのテスト環境にRealtekが選ばれました! RTL8192DE, RTD1185,RTL8192DUです!

2013年1月7日:「Realtek to Demonstrate Full Range of Connectivity and Multimedia Solutions during 2013 CES
 RealShare Smart Display(RTD1185 Digital Media Processor とRTL8192DU Wi-Fi moduleの組み合わせ)

もしかして!?と一瞬期待をしてみる。

RTL8192DU関連のソフトウェアは、RTL8192DU-VC用としていくつか提供されていた。
こちらの中身は、普通に無線LAN用ドライバだった。

よくよく確認してみれば「RTL8192DU」自体は、普通のWiFiアダプタとして使っている普通のチップでもあった。
ただ、Miracastで使えるだけの能力を持っている、というだけだった。

つまりは、「WiDi_Driver」の方が本命。

で・・・「WiDi_Driver」に相当するものをRealTekページで探してみたけど見付からない。

いろいろ探していると
Dishing Tech:「Realtek Wi-Fi Direct Programming Guide」という記事が見付かった。

「Wireless_tools_porting_guide.pdf」という資料を元に解説をしている。
入手元を調べたところ、RealtekのドライバページにあるUnix(Linux)用のファイルに含まれていた。
v4.0.0_4074.20120518からWiDiのサポートが入ったらしい。

この資料の中に、AndroidでWiFi Directに対応させるためのコードとかも含まれているようだ。

なので、もしかしたら、送信側はRTL8192DUを使っていれさえすれば対応できるかもしれない。

しかし、受信側は、改造できなさそうなので、対応は難しいような気がする・・・

えぇ・・・気がする、というところ。
もしかすると動くのかもしれませんが・・・
ダレカ、チャレンジしていませんか?

DOSブートディスクをWindows64bit環境で作成する


BIOSアップデートがDOSプログラムしかないサーバ用マザーボードで、BIOSアップデートを実施する必要が出た。
そんなわけで、DOSブート環境が必要になったわけだが、USB FDDを使うのではなく、USBメモリを使用したい、ということで調査した。

しばらく前の定番。
hpのUSB-keyメモリからのブート作成ツール
HP Drive Key Boot Utility
  cp006049.exe (45 MB) v7.41.3790.0 (8 Nov 2005)
USB-keyメモリからのシステムブートに関して
  cp004916.exe (28 MB) v7.10.3790.0

こいつをVista 64bit環境で実行したら、管理者権限+互換モードを必要とする、というのはまだいいのだが、
「フォーマット中、プログラムから応答がなくなる」
とか
「フォーマット後、ファイルが見付からない、というエラー出力」
とか
「作成できたもので結局のところブートできない」
とか発生した。
(なお、実行ファイルが日本語ディレクトリとか長いとかかな、と短い場所に置いても同現象)

代替を探したところ「RMPreUSB」がうまいこと動作した。

これの利点
・Portableエディションという、インストール不要バージョンもある
・USBメモリの認識のさせ方を3種類(FDD認識/ZIPドライブ認識/HDD認識)から選ぶことができる
・Free DOSが同梱されていてライセンスを気にしないでDOSブートできる
・DOSブート以外も作成できる

1. RMPreUSBを起動すると以下のような画面が現れる。
001

2. 以下のように、USBメモリが表示されていることを確認する。
005
ここで選択されているUSBメモリの内容が全て削除、フォーマットされ、DOSブートメモリとなります。

3. 「3 Bootloader Options」にて「FREEDOS bootable」を選択します。
002

4. 「4 Filesystem and Overrides」は「FAT16」「Boot as HDD」でひとまずやってみてください。
003
うまくブートしなかった場合は「Boot as FDD」とか「Boot as ZIP」を試してみてください。

5. 「6 Prepare Drive」をクリックするとフォーマット開始です。
004

使わなかったボタンがいろいろありますが、Free DOSのブートディスクを作るくらいであれば、これだけで問題ありませんでした。

ECCエラー多発してるエラーが取れたのでメモ


CentOS6サーバに、2GBメモリが2枚刺さってる。
久々に起動したら、ECC関連のエラーメッセージを吐きまくってるのでメモ書き。

Feb  8 16:42:15 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:16 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:17 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:18 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:19 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:20 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:21 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:22 cent6server kernel: EDAC MC0: CE page 0x1e23, offset 0x980, grain 128, syndrome 0x64, row 0, channel 1, label "": i3000 CE
Feb  8 16:42:23 cent6server kernel: EDAC MC0: CE page 0xfb802, offset 0x200, grain 128, syndrome 0x64, row 1, channel 1, label "": i3000 CE
Feb  8 16:42:24 cent6server kernel: EDAC MC0: CE page 0xfab1b, offset 0xa00, grain 128, syndrome 0x64, row 1, channel 1, label "": i3000 CE
Feb  8 16:42:25 cent6server kernel: EDAC MC0: CE page 0xfb8ac, offset 0x780, grain 128, syndrome 0x64, row 1, channel 1, label "": i3000 CE

ちなみに、読み込まれているドライバは以下でした。

# lsmod|grep edac
i3000_edac              3471  0
edac_core              46581  3 i3000_edac
#

ちなみに「rmmod edac」を実行すると、エラーログを出力させなくすることもできます。
(もちろん、エラーがなくなるわけではない)