2016年4月25日月曜日

magic block mismatch の件


magic block mismatch を引き起こす理由:
  • 9.4 用の物を 9.5 で使おうとした等。「Server is version %d.%d, library is version %d.%d.」
  • 9.5 の場合、include の内容が x64 用と x86 用とで微妙に異なる。。。「Server has FLOAT8PASSBYVAL = %s, library has %s.」


error LNK2001: 外部シンボル "CurrentMemoryContext" は未解決です。

 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\link.exe" /libpath:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64;C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64" libmecab-sdk64/libmecab.lib PGfiles/9.5/lib_x64/postgres.lib /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /MACHINE:x64 /DLL /RELEASE obj\9.5\x64\textsearch_ja.obj obj\9.5\x64\encoding_eucjp.obj obj\9.5\x64\encoding_utf8.obj /DEF:textsearch_ja.def /OUT:bin\9.5\x64\textsearch_ja.dll
Microsoft (R) Incremental Linker Version 11.00.61030.0
Copyright (C) Microsoft Corporation.  All rights reserved.

   ライブラリ bin\9.5\x64\textsearch_ja.lib とオブジェクト bin\9.5\x64\textsearch_ja.exp を作成中
textsearch_ja.obj : error LNK2001: 外部シンボル "CurrentMemoryContext" は未解決です。
bin\9.5\x64\textsearch_ja.dll : fatal error LNK1120: 1 件の未解決の外部参照


foo.def を作成↓
LIBRARY postgres.exe
EXPORTS CurrentMemoryContext


lib を使って、インポートライブラリを作成↓
lib /out:x64\foo.lib /def:foo.def /machine:x64
lib /out:x86\foo.lib /def:foo.def /machine:ix86

作ったインポートライブリを使って、リンクします。

参考:http://openlab.ring.gr.jp/tsuneo/soft/tar32_1/tar32_1/SDK/DLL2LIB.TXT

2016年4月14日木曜日

USB 外付け HDD に Boot next device を仕込む

☆彡 syslinux 6.0.3 等を入手して展開

https://www.kernel.org/pub/linux/utils/boot/syslinux/6.xx/syslinux-6.03.zip

ソースコードだけと思われがちですが、バイナリも含んでいます。

☆彡 syslinux をインストール

bios\win32\syslinux.exe を使用

仕込み例:
syslinux.exe -miaf -d /boot/ Z:

ルートディレクトリがごちゃごちゃすると、誤って消されそうです。ここでは、boot フォルダに仕込みます。

☆彡 /boot/syslinux.cfg を仕込む

内容例:
DEFAULT main

LABEL main
MENU LABEL Boot next device
TEXT HELP
 Boot next device in the boot sequence.
ENDTEXT
COM32 /boot/syslinux/whichsys.c32
APPEND -sys- /boot/syslinux/chain.c32 hd1 swap -iso- /boot/syslinux/localboot.c32 -1

☆彡 必要なファイルを仕込む

chain.c32
libcom32.c32
libgpl.c32
libutil.c32
localboot.c32
menu.c32
whichsys.c32

在り処:

bios\com32\chain\chain.c32
bios\com32\lib\libcom32.c32
bios\com32\gpllib\libgpl.c32
bios\com32\libutil\libutil.c32
bios\com32\samples\localboot.c32
bios\com32\menu\menu.c32
bios\com32\modules\whichsys.c32

☆彡 動作チェックを

hp Proliant で USB 外付け HDD をつなげると、Windows が起動しなくなる!

もうこの界隈では有名な話かもしれません。

hp のサーバーは、USB 外付け HDD から優先的に起動するよう初期設定しているようです。

バックアップ用に 1TB 程の USB 外付け HDD を接続している方は要注意!

BIOS の設定変更で対応するようですが、もう納品済みで、実機は 100km 以上先に在ります!

そういう場合は… USB 外付け HDD に Boot next device を仕込む を参考にどうぞ!

DELL PowerEdge T110 II 解体の巻


 ↓SAS。SATA でした。電源とデータで、コネクタが一体型
↓SATA。左のデータ用と、右の電源用とで、コネクタが別々