2007-02-21 曇りときどき小雨,意外と寒くない [長年日記]
_1 ダイヤ改正で変わる「ムーンライトながら」 - [鉄道旅行]All About
「東京→豊橋」が全車指定席となるので,小田原から自由席に乗るができなくなる.また,東京発時間が30分以上も繰り上がる.
ま,確かに小田原からの混みっぷりは最低だったので,全車指定席化は評価したいが,30分以上の繰り上げは終電代わりとして使えなくなってしまうので辛い.これなら最終の新幹線に乗る方がよさげ.
_2 出産見舞い
同期の友達のところに,昨日第二子誕生.ということで定時ダッシュで帰宅後,病院へお見舞いに行ってきた.
いや〜,ちっちゃくてかわいいねぇ.手とか足とか,しわしわでちっちゃいねん.足とかもうほっそいし.花子もたった1年前はこうだったなぁ,とか思い出しながら抱っこさせてもらったり.
で,当の花子はたまに赤ちゃんの方を見るもののテレビに夢中.まだよく分からんみたい.
その後,仕事をしに会社へ戻る.戻るときに花子は玄関まで追っかけてきたらしい.むぅ,先日に続きまたもゴメンな.
_3 セキュアUSBメモリーを試す
I-O DATAのSecure EasyDisk ED-S512を借りることができたので,Linuxで試してみた.
結論からいうと,まったく使えない.
USBメモリを挿すと,CD-ROM(sr0)とディスク(sda)が挿されたように見える.
usb 1-4: new high speed USB device using ehci_hcd and address 6 usb 1-4: configuration #1 chosen from 1 choice scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 6 usb-storage: waiting for device to settle before scanning Vendor: I-O DATA Model: USB Flash SC Rev: 5.02 Type: CD-ROM ANSI SCSI revision: 00 sr0: scsi3-mmc drive: 8x/40x writer xa/form2 cdda tray sr 0:0:0:0: Attached scsi CD-ROM sr0 sr 0:0:0:0: Attached scsi generic sg0 type 5 Vendor: I-O DATA Model: USB Flash SC Rev: 5.02 Type: Direct-Access ANSI SCSI revision: 00 sd 0:0:0:1: Attached scsi removable disk sda sd 0:0:0:1: Attached scsi generic sg1 type 0 usb-storage: device scan complete
とりあえずマウントを試みる.
sr0は問題なくマウントでき,中身は以下のとおり.
% ll /mnt/usb 合計 853 -r-xr-xr-x 1 root root 43 2005-01-05 01:00 AUTORUN.INF* -r-xr-xr-x 1 root root 126976 2004-11-29 01:00 SUGEYE.EYE* -r-xr-xr-x 1 root root 745472 2005-08-31 01:03 SUGate.exe*
% cat /mnt/usb/AUTORUN.INF [autorun] open=SUGate.exe icon=SUGate.exe
しかし,sdaは以下のエラーを出してマウントできなかった.
mount: No medium found
% cat sys/block/sr0/size 2544 % cat sys/block/sda/size 0
となっており,sdaはまったくかけない状態.sr0の数字もよくわからん.またWindows側でテキストファイルを作成したはずなのに,そのファイルが見えない.どこかに隠しているんだろうけど普通には見えない.ディスク全体をダンプすれば見えるのかな?見えたとしても暗号化しているだろうから読めない予感.
とりあえず,このUSBメモリをセキュアプロテクトなしでもいいから使いたいと思っていたが,それは無理のようだ.捨て.
ちなみにこのツールVC6で作っているみたい.
_4 gentoo-sources-2.6.20
あたらしいカーネルで起動すると
/init: /init: 228: devfsd: not found
と出て動かない.
[ebuild U ] sys-apps/baselayout-1.12.9 [1.12.7-r4] USE="unicode -bootstrap -build -static" 214 kB
grubには
init=/linuxrc
を指定しているので,initrdの中の/initが悪そう*1.
/usr/share/genkernel/gen_initrd.sh
311 create_initrd_aux() { 312 if [ -f "${CMD_LINUXRC}" ] 313 then 314 cp "${CMD_LINUXRC}" "${TEMP}/initrd-temp/linuxrc" 315 print_info 2 " >> Copying user specified linuxrc: ${CMD_LINUXRC}" 316 else 317 if [ -f "${GK_SHARE}/${ARCH}/linuxrc" ] 318 then 319 cp "${GK_SHARE}/${ARCH}/linuxrc" "${TEMP}/initrd-temp/linuxrc" 320 else 321 cp "${GK_SHARE}/generic/linuxrc" "${TEMP}/initrd-temp/linuxrc" 322 fi 323 fi
${CMD_LINUXRC}は,/usr/share/genkernel/gen_cmdline.sh
477 --linuxrc=*) 478 CMD_LINUXRC=`parse_opt "$*"` 479 print_info 2 "CMD_LINUXRC: $CMD_LINUXRC"
となっている.
この問題が起きたときのgenkernelコマンドは以下のとおり.
# genkernel --menuconfig --no-clean --no-mrproper \ --gensplash=livecd-2006.1 --gensplash-res=1280x1024 all
なので${CMD_LINUXRC}はNULL.また/usr/share/genkernel/x86/linuxrcというファイルは存在しないので/usr/share/genkernel/generic/linuxrcが使われる.
と思ったが,initramfs(initrd)の中のlinuxrcを参照すればいいだけ.すべてのファイルはその中に含まれている.
問題の228行目は
227 # Start udev/devfs 228 start_dev_mgr
となっており,start_dev_mgr()を呼び出している.この関数本体は/etc/initrd.scriptsにある.
/etc/initrd.defaultsには
5 # Default to the udev device manager 6 USE_UDEV_NORMAL=1
51 KV="`uname -r`" 52 KMAJOR=`echo $KV | cut -f1 -d.` 53 KMINOR=`echo $KV | cut -f2 -d.` 54 KVER="${KMAJOR}.${KMINOR}" 55 MISCOPTS='idebug detect' 56 57 if [ "${KMAJOR}" -eq 2 -a "${KMINOR}" -ge '6' ] 58 then 59 KV_2_6_OR_GREATER="yes" 60 fi
とあるので,
313 start_dev_mgr() { 314 # Check udev is available... 315 if [ "${KV_2_6_OR_GREATER}" -a ! "${USE_UDEV_NORMAL}" -eq '0' ] 316 then 317 USE_UDEV_NORMAL=1 318 else 319 USE_UDEV_NORMAL=0 320 fi
はUSE_DEV_NORMAL=1となる.で次の条件文
322 if [ "${USE_UDEV_NORMAL}" -eq '1' ]
も真になりそうなのだが,ここで偽となり
332 else 333 good_msg 'Activating devfs' 334 mount -t devfs devfs /dev 2>/dev/null 335 devfsd /dev -np 336 fi
のルートに入るも,devfsはインストールしていないので335が失敗し,その結果必要なノードが作成されないものと予想.
このファイルは
% equery b /usr/share/genkernel/generic/linuxrc [ Searching for file(s) /usr/share/genkernel/generic/linuxrc in *... ] sys-kernel/genkernel-3.4.6 (/usr/share/genkernel/generic/linuxrc)
genkernelパッケージに含まれていて,いま使っているものよりも新しい開発版が存在する様子.あとでこちらを試してみる.
# X emerge -pv genkernel These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] sys-kernel/genkernel-3.4.7_pre3 [3.4.6] USE="-bash-completion (-ibm) (-selinux)" 329 kB
*1 /linuxrcは/initへのシンボリックリンクなので実態は/init