投稿者の投稿
Linux Turbolinux でパーティションが破壊されたらどう復旧する
マシンを換装したらサーバーが不調で、いきなり止まってしまう。そうこうしていたら、パーティションがクラッシュして読めなくなってしまった。まずはfsckでチャレンジ、これでうまくいけばめでたしめでたしだったのだが、今回はそうはいかないよう。super block が破壊されたようである。
# e2fsck -p /dev/sdb3
e2fsck: Filesystem has unsupported feature(s) while trying to open /dev/sdb3
/dev/sdb3:
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
mkfs.ext3コマンドでブロックサイズ(Block size)とスーパーブロックのバックアップが保存されている場所(Superblock backups)を調べる。
# mkfs.ext3 -n /dev/hda3
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) ←ブロックサイズ
Fragment size=4096 (log=2)
1305600 inodes, 2610554 blocks
130527 blocks (5.00%) reserved for the super user
First data block=0
80 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 2294912, 294912, 819200, 884736, 1605632 ←スーパーブロックのバックアップが保存されている場所
# fsck.ext3 -b 32768 -B 4096 /dev/hda3
後は、y を入れていく、というより入れるしかなさそう。
パーティションはものの見事に復旧していた
参考ページ
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/728fixpartition.html
ありがとうごぜーます。で、ほぼ復旧完了
ただ、何かは消えたと思うが、それは神のみぞ知る・・・・・
turbolinux でマシンの換装にともなうLANカードの変更対策
- まずは turbonetcfg でeth0 を削除する
- eth0を追加する
- eth0をオンにする
- #dmesg | tail コマンドで見てみると eth0 がある行にデバイスの名前が出ている、今回はe1000e インテルのGigabit Lanカード
- /etc/modprobe.conf ファイルの alias eth0 XXXX のXXXXの部分を4.で見つけたデバイス名に変更する
VMWARE SERVER 2 ホスト・ゲスト間通信が遅い
VMWARE SERVER 2 でホスト・ゲスト間通信が遅いので、サーバー側で以下の対応を行ったところ速くなった。
サーバーはwindows 2008 Server R2 クライアントはWindows7 Professional
- ファイル名を指定して実行 をクリックして、 regedit と入力して [OK] をクリックします。
- 次のレジストリ サブキーを見つけてクリックします:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- DisableTaskOffload レジストリ エントリが存在する、右側の確認します。 このエントリが存在しない場合次のエントリを追加手順に従います。
- [ 編集 ] メニューの [ 新規作成 ] をポイントし、[ DWORD 値 ] をクリックします。
- DisableTaskOffload を入力して Enter を押します。
- [ DisableTaskOffload ] をクリックします。
- [ 編集 ] の [ 変更 を] をクリックします。
- [ 値のデータ ] ボックスに 1 を入力して Enter を押します。
- レジストリ エディターを終了します。
SQLServerでテーブルを変更したときの備忘録
ばらばらにしていた電話番号等をを一つの項目に統合するSQL文
CASEの使用方法。
update customer_info set
zipcode = case zipcode1 + ‘-‘ + zipcode2 when ‘-‘ then ” else zipcode1 + ‘-‘ + zipcode2 end ,
main_tel = replace(main_tel1 + ‘-‘ + main_tel2 + ‘-‘ + main_tel3,’–‘,”) ,
tel = replace(tel1 + ‘-‘ + tel2 + ‘-‘ + tel3,’–‘,”),
fax = replace(fax1 + ‘-‘ + fax2 + ‘-‘ + fax3,’–‘,”),
mtel = replace(mtel1 + ‘-‘ + mtel2 + ‘-‘ + mtel3,’–‘,”),
personal_zipcode = case personal_zipcode1 + ‘-‘ + personal_zipcode2 when ‘-‘ then ” else personal_zipcode1 + ‘-‘ + personal_zipcode2 end ,
personal_tel = replace(personal_tel1 + ‘-‘ + personal_tel2 + ‘-‘ + personal_tel3,’–‘,”) ,
personal_fax = replace(personal_fax1 + ‘-‘ + personal_fax2 + ‘-‘ + personal_fax3,’–‘,”) ,
personal_mtel = replace(personal_mtel1 + ‘-‘ + personal_mtel2 + ‘-‘ + personal_mtel3,’–‘,”)
;
asterisk-gui を使って、他のasteriskにつなげてみたがうまくいかない
asterisk-gui を使って、他のasteriskにつなげてみたが内線番号が表示されないので、extensions.conf をしげしげ眺めてみると、[macro-trunkdial-failover-0.3]マクロを直せばよいと分かった。
直す場所は、5行目の下の場所
exten = s,n,Set(CALLERID(all)=${IF($[${LEN(${CID_${ARG3}})} > 6]?${CID_${ARG3}}:${GLOBAL_OUTBOUNDCID})})
これを、↓のように直す。
exten = s,n,Set(CALLERID(all)=${IF($[${LEN(${CID_${ARG3}})} > 6]?${CID_${ARG3}}:${CALLERID(num)}<${GLOBAL_OUTBOUNDCID}>)})
なにか違うようなきがするが、これでできた。
あ~~つかれた。
玄箱 KURO-BOX/T4にasteriskをインストールする前にカーネルソースをどうにかする
makeするのに必要なものをいろいろ入れておく
# apt-get install gcc g++ libc6-dev make linux-libc-dev ncurses-dev perl-modules patch
dahdi asterisk をmakeするのにいろいろいるため、
下記URLから、linux-2.6.30.tar.bz2 をダンロードする。
http://kuroutoshikou.com/important/opensource/
/tmp にダウンロードしたとして。
# cd /usr/src/
# bzip2 -dc /tmp/linux-2.6.30.tar.bz2 | tar xvf –
# ln -s linux-2.6.30 linux
# cd linux
さて、ここで make modules を行いたいのだけれど、これがうまくいかないので、いろいろする。
シンボリックリンクの作成
#ln -s /usr/bin/ls /usr/bin/powerpc-linux-gnu-ld
#ln -s /usr/bin/objcopy /usr/bin/powerpc-linux-gnu-objcopy
Makefileがダメダメなので、修正する。
——-patch の中身 ↓———————————————————–
diff -ur linux-2.6.30_org/Makefile linux-2.6.30/Makefile
— linux-2.6.30_org/Makefile 2010-09-11 21:56:12.000000000 +0900
+++ linux-2.6.30/Makefile 2010-09-11 21:59:55.000000000 +0900
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 30
-EXTRAVERSION = .1-BUFFALO
+EXTRAVERSION = .1-BUFFALO-svn1376
NAME = Man-Eating Seals of Antiquity
# *DOCUMENTATION*
@@ -338,6 +338,7 @@
CFLAGS_MODULE = $(MODFLAGS)
AFLAGS_MODULE = $(MODFLAGS)
LDFLAGS_MODULE =
+LDFLAGS_MODULE_PREREQ =
CFLAGS_KERNEL =
AFLAGS_KERNEL =
@@ -363,7 +364,7 @@
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE
-export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
+export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE LDFLAGS_MODULE_PREREQ CHECK CHECKFLAGS
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
diff -ur linux-2.6.30_org/arch/powerpc/Makefile linux-2.6.30/arch/powerpc/Makefile
— linux-2.6.30_org/arch/powerpc/Makefile 2010-09-11 21:57:28.000000000 +0900
+++ linux-2.6.30/arch/powerpc/Makefile 2010-09-11 22:00:24.000000000 +0900
@@ -93,7 +93,7 @@
KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
endif
else
-LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+LDFLAGS_MODULE_PREREQ += arch/powerpc/lib/crtsavres.o
endif
ifeq ($(CONFIG_TUNE_CELL),y)
@@ -231,7 +231,7 @@
echo ‘disable kernel modules’ ; \
false ; \
fi
– @if ! /bin/echo dssall | $(AS) -many -o $(TOUT) >/dev/null 2>&1 ; then \
+ @if ! [[ “/bin/echo dssall | $(AS) -many -o $(TOUT) >/dev/null 2>&1” ]] ; then \
echo -n ‘*** ${VERSION}.${PATCHLEVEL} kernels no longer build ‘ ; \
echo ‘correctly with old versions of binutils.’ ; \
echo ‘*** Please upgrade your binutils to 2.12.1 or newer’ ; \
diff -ur linux-2.6.30_org/scripts/Makefile.modpost linux-2.6.30/scripts/Makefile.modpost
— linux-2.6.30_org/scripts/Makefile.modpost 2010-09-11 22:17:16.000000000 +0900
+++ linux-2.6.30/scripts/Makefile.modpost 2010-09-11 22:16:20.000000000 +0900
@@ -122,14 +122,21 @@
cmd_cc_o_c = $(CC) $(c_flags) $(CFLAGS_MODULE) \
-c -o $@ $<
-$(modules:.ko=.mod.o): %.mod.o: %.mod.c FORCE
+quiet_cmd_as_o_S = AS $(quiet_modtag) $@
+cmd_as_o_S = $(CC) $(a_flags) $(AFLAGS_MODULE) -c -o $@ $<
+
+$(LDFLAGS_MODULE_PREREQ): %.o: %.S FORCE
+ $(call if_changed_dep,as_o_S)
+
+$(modules:.ko=.mod.o): %.mod.o: %.mod.c $(LDFLAGS_MODULE_PREREQ) FORCE
$(call if_changed_dep,cc_o_c)
targets += $(modules:.ko=.mod.o)
# Step 6), final link of the modules
quiet_cmd_ld_ko_o = LD [M] $@
– cmd_ld_ko_o = $(LD) -r $(LDFLAGS) $(LDFLAGS_MODULE) -o $@ \
+ cmd_ld_ko_o = $(LD) -r $(LDFLAGS) $(LDFLAGS_MODULE_PREREQ) \
+ $(LDFLAGS_MODULE) -o $@ \
$(filter-out FORCE,$^)
$(modules): %.ko :%.o %.mod.o FORCE
——-patch の中身 ↑———————————————————–
#make modules
これで準備は終わり。
後は、dahdi daudi-tools asterisk をインストールする。
asteriskインストールのその後
通話録音の受信側と着信側が別れてしまうので、soxをインストール
#apt-get install sox
CentOS5 で後からX Serverを入れる
yum でグループを見つける。
# yum grouplist
X Window System
GNOME Desktop Environment
を見つけたらこれをインストールする
# yum groupinstall “X Window System” “GNOME Desktop Environment”
インストールが終わったら
# X -configure
その後セットアップもGUIからやりたいので
# setup
注)setup はコンソールからやる必要があります。
後は、inittabを修正して終わり。
修正前 id:3:initdefault:
修正後 id:5:initdefault:
Microsoft.VC90.CRT side-by-side アセンブリ
まったく!
マイクロソフトも次から次へとややこしくなっていく。
「side-by-side」などと一見かっこいい名前だが、VCのランタイムライブラリを使うのにいちいち、Microsoft.VC90.CRT.manifestというXMLで書かれたテキストファイルが必要ということ。
アプリケーションには、どのバージョンのVCのランタイムライブラリを使うかが埋め込まれており、それを実行するマシンに存在しない場合は、落っこちてしまう。
イベントログを見ると落ちた原因がわかるのだが、Microsoft.VC90.CRTが見つからないという結果になる。
そこで、「なんのこっちゃ?」となってしまう。
こういった場合、VCのランタイムをマイクロソフトのサイトよりダウンロードして、インストールすれば一件落着なのだが、USB等からスタンドアローンで動かすアプリの場合にはそうはいかなくなるのだ。
そういった場合は、落っこちたアプリケーションや使用しているDLLがどのVCのランタイムライブラリを要求するかを調べる。
やや強引な話だが、そのアプリケーションやDLLをテキストエディターで見ると、それらしいものが見つかる。
そこで、アプリケーションのexeが入っているフォルダーにMicrosoft.VC90.CRTというディレクトリを作成して、その中にMicrosoft.VC90.CRT.manifest とそのバージョンのmsvcm90.dll msvcp90.dll msvcr90.dllを入れてやれば正常に動くようになるのだ。
Microsoft.VC90.CRT.manifestは、動いているマシンのC:\windows\winsxs\Manifests の下にいーっぱい入っているのでその中から探します。
x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2.manifest 等と長いファイル名になっているのをもってきて、microsoft.vc90.crt.manifest という名前に変更してやればよい。
side-by-side アセンブリは、VCのランタイムにかぎったことではないので、こういったことが起こった場合はこれを参考に考えればよいのである。
今回は、bindingRedirectについては、あまり調べていないのですが、これをminifestファイルに書く方法を調べた人がいれば、コメントしてください。
参考URL
http://msdn.microsoft.com/ja-jp/library/ms997620.aspx
http://msdn.microsoft.com/ja-jp/library/8477k21c(VS.80).aspx
VMWARE Server のインストールで「システム管理者によって、ポリシーはこのインストールを実行できないように設定されています」
ドメインに参加しているWindowsXP ProfessionalにVMWARE Server2.0をインストールしようとしたところ下記メッセージを出力して止まってしまう。
どないしたらえんじゃろ!?!?
のたうちまわった結果
コントロールパネル->管理ツール->ローカルセキュリティポリシー でローカルセキュリティポリシーを起動する。
ソフトウェアー制限ポリシーで、信頼された発行者のプロパティーで
ローカルコンピュータの管理者 にする。
CentOS XServer を設定してCygwinでアクセス
CentOSの画面をリモートでアクセス
/etc/gdm/custom.conf を編集
[security]
AllowRemoteRoot=true
[xdmcp]
Enable=true
これだけ
再起動したあとは、WindowsにCygwin を入れてアクセスするだけ
Cygwinはここからインストール http://www.cygwin.com/
コンソールを出して X -query 192.168.1.1 をたたくだけ
おっと忘れてた
ファイアウォールの設定も忘れないようにしなくては・・・
クライアント ----Tcp 6000ーーーー>サーバ
クライアント <----Tcp 6000ーーーーサーバ
双方向でつながらないとだめなんです