nDiki : IDE

2001年9月18日 (火)

18:20 Visual C++ IDE のメニュー

ビルド」メニューで、「ビルド」と「リビルド」が並んでいる。 「ビルド」を選択するつもりで「リビルド」を選択してしまうと……コーヒータイムだ。

とはいえ、時間がもったいないので「リビルド」をメニューから削除した。

[ 9月18日全て ]

2001年9月19日 (水)

21:00 HDDクラッシュ

家に帰って、Windows 98 SE BOX の PC を起動。 HDD 変な音がする。 …… Windows 98 の(旗の)起動画面の状態でカラカラとアクセスを続けるが先へすすまない。 ゲッ。 何度か電源を入れ直してリトライするが駄目。 だんだんと異音も大きくなって、「カコン」「カコン」という音がするようになった。 最後は、IDE ドライブとして BIOS レベルでも認識しなくなった。

アイタタ。再インストールした直後で失うデータは無いが(というか、すでに先のクラッシュで殆どロストしてしまっていたりする)、HDD を買うとなると財政悪化だ。

しかし、CD-R ドライブを増設してからというものの、マザーボード交換から HDD クラッシュとは……。 痛い出費が続く。

[ 9月19日全て ]

2004年1月5日 (月)

[ Debian ] GRUBソフトウェアRAID1 ブート設定

年末にうまくいかなかった「ソフトウェアRAID1なHDD2台両ブート」に再チャレンジ。 というか、既にネットワーク構成変更までに期限がないので頑張らないと。

Debian GNU/Linux Woody CD-ROMでブート

 bf24 ide0=0x1440,0x1436 ide1=0x1438,0x1432

で起動。cfdisk ではがつんと1パーティションにしてしまう(何度もパーティションを切りなおすのが嫌になったのと、やまだ君のところは1パーティションでやっているという話から)。

ドライバのところでは NIC が ELECOM Laneed LD-10/100 AL PCI Fast Ethernet Adapter なので via-rhine を追加。

後は普通に進めて再起動

GRUB のインストール

 apt-get install grub raidtools2 emacs21 wget lv

GRUB

 grub-install --root-directory=/boot /dev/hda

stage1 ファイルが grub から見えないでエラーになる場合があった。 その場合は、再起動したら成功するようになった。

 update-grub

再起動。OK。GRUBで起動するようになった。

kernel オプションの追加

/boot/grub/menu.lst の kopt を編集

 # kopt=root=/dev/hda1 ro ide0=0x1440,0x1436 ide1=0x1438,0x1432

コメントマーク(#)を残さなければならない事に最初気がつかず。

 update-grub

再起動。OK。

kernel アップデート

年末に作ったRAIDを有効にしてある Linux kernel をインストール。 /etc/kernel-img.conf に

 postinst_hook = /sbin/update-grub
 postrm_hook = /sbin/update-grub
 do_bootloader = no

を書いておいてから、

 dpkg --install kernel-image-2.4.18_gate.1.0_i386.deb

再起動。OK。

hdc を RAID1 に

cfdisk /dev/hdc で1パーティションに切り、タイプを fd に。 その後 /etc/raidtab を編集。

 raiddev                 /dev/md1
 raid-level              1
 nr-raid-disks           2
 chunk-size              64
 nr-spare-disks          0
 persistent-superblock   1
 device                  /dev/hdc1
 raid-disk               0
 device                  /dev/hda1
 failed-disk             1

書いたら hdc を RAID1にし、ext3 ファイルシステムを作成。

 mkraid /dev/md1
 mkfs.ext3 /dev/md1

hdc へシステムをコピー

シングルユーザモードで再起動し、/dev/md1 (hdc) へコピー。

 cd /
 mount /dev/md1 /mnt
 cp -a /bin /mnt/
 cp -a /boot /mnt/
 cp -a /cdrom /mnt/
 cp -a /dev /mnt/
 cp -a /etc /mnt/
 cp -a /floppy /mnt/
 cp -a /home /mnt/
 cp -a /initrd /mnt/
 cp -a /lib /mnt/
 cp -a /opt /mnt/
 cp -a /root /mnt/
 cp -a /sbin /mnt/
 cp -a /tmp /mnt/
 cp -a /usr /mnt/
 cp -a /var /mnt/
 cp -a /vmlinuz /mnt/
 cp -a /vmlinuz.old /mnt/
 mkdir /mnt/mnt
 mkdir /mnt/proc

/mnt/etc/fstab を編集し /dev/hda1 のところを /dev/md1 に。RAID1ディスクをルートパーティションにする。 書き換えたら

 /umount /mnt

し、再起動

 kernel /boot/vmlinuz-2.4.18 root=/dev/md1 ro ide0...

で起動できる事を確認。

GRUB での起動でも /dev/md1 を root に

/boot/grub/menu.lst を編集。kopt を

 # kopt=root=/dev/md1 ro ide0=0x1440,0x1436 ide1=0x1438,0x1432

に書き換え、update-grub。

hdc から起動できるように

grub-install で hda から起動できるように先にしてあるが、次に hdc 側からも起動できるように。 この段階では grub-install だとエラーになるので、grub で直接。

 grub
 grub> device (hd0) /dev/hdc
 grub> root (hd0,0)
 grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
 grub> quit
  • hda - 奥のラック - IDEカードの背面から遠い側のコネクタ
  • hdc - 手前のラック - IDEカード背面側のコネクタ

という構成になっているので hda 側のケーブルを抜き、hdc だけ接続した状態で起動してみる。OK。

hda 側を消して RAIDに参加 (失敗)

両方のHDDを接続してroot=dev/md1 で再起動。 cfdisk /dev/hda し、1パーティション・type fd に。

/etc/raidtab を編集。 /dev/hda1 を failed-disk から raid-disk にする。 で、

 raidhotadd /dev/md1 /dev/hda1
 md: trying to hot-add to md1 ...
 md1: disk size 80413248 blocks < array size 80418112
 /dev/md1: can not hot-add disk: too small disk!

あれ? cfdisk で確認。

 /dev/hdc
   16 Heads, 63 Sectors, 159560 Cylinders
   82348277760 bytes

 /hdc1 82348.28MB

 /dev/hda
   255 Heads, 63 Sectors, 10011 Cylinders
   82348277760 bytes

 /hda1 82343.28MB

おーまいがー。一緒に買ったディスクなのだが、パーティションを切ると5MB違う。

さて。 hda を /dev/md2 にして /dev/md1 -> /dev/md2 してから再度、hdc を /md2 にして... というのも思い浮かんだのだが、やっぱりあきらめて最初からやりなおす。 hda と hdc のケーブルを入れ換えて hdc 側に(ほんのちょっと)小さいディスクを配置。

  • hda - 手前のラック - IDEカード背面側のコネクタ
  • hdc - 奥のラック - IDEカードの背面から遠い側のコネクタ

で最初から、やりなおして次のセクションへ。

hda 側を消して RAIDに参加 (成功)

両方のHDDを接続してroot=dev/md1 で再起動。 cfdisk /dev/hda し、1パーティション・type fd に。

/etc/raidtab を編集。 /dev/hda1 を failed-disk から raid-disk にする。 で、

 raidhotadd /dev/md1 /dev/hda1

リカバリが始まる。

 lv /proc/mdstat

ちゃんとリカバリしている模様。年末にやった時は一瞬で終わってしまったのだが、あれ本当にリカバリしていたのかなぁ。今回はじめて recovery している様子が見れた。一安心。 560min ほどかかる予定。

swap 作成

RAID1上だと遅いんだろうな。メモリ512MBなので、一応作っておく。

 dd if=/dev/zero of=/var/swap bs=1024 count=524288
 mkswap /var/swap
 swapon /var/swap
 lv /proc/swaps
 emacs /etc/fstab
 /var/swap none swap exec,dev,suid,rw,sw 0 0

RAIDのリカバリが時間がかかるので、hda 側でブート設定は明日にもちこし。 他の設定をちゃっちゃか始める。

以下予定

hda 側でのブート設定。

 grub
 grub> device (hd0) /dev/hda
 grub> root (hd0,0)
 grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
 grub> quit

で両方のHDDでブートできることと、データが複製されている事の確認をする事。

[ 1月5日全て ]

2004年2月12日 (木)

[ Debian ] PIO -> DMA

この間設定したオフィスのメールサーバで「メールを残す」が有効にならないというので調査。 fetchmail で nokeep すると自分の環境では問題なくサーバに残るな。 たまに mail が取れなくなるという連絡もあるし、vpopmail がよろしくない状態なのだろうか。

そういえばソフトウェアIDE RAIDを組んでいるこのマシンのディスク書き込みが遅くて以前から気になっていたところ、昨日やまだ君から「PIOになっているんじゃない」というアドバイスをもらった。 そういえばチェックしていなかったな。

hdparm

apt-get hdparm する(つい hdparam と間違える)。 で、チェック。

 # hdparm -t -d /dev/hda

 /dev/hda:
  using_dma    =  0 (off)
  Timing buffered disk reads:  64 MB in 14.43 seconds =  4.44 MB/sec

 # hdparm -t -d /dev/hdc

 /dev/hdc:
  using_dma    =  0 (off)
  Timing buffered disk reads:  64 MB in 14.43 seconds =  4.44 MB/sec

dma on にする。

 # hdparm -t -d1 /dev/hda

 /dev/hda:
  setting using_dma to 1 (on)
  using_dma    =  1 (on)
  Timing buffered disk reads:  64 MB in  2.28 seconds = 28.07 MB/sec

 # hdparm -t -d1 /dev/hdc

 /dev/hdc:
  setting using_dma to 1 (on)
  using_dma    =  1 (on)
  Timing buffered disk reads:  64 MB in  2.26 seconds = 28.32 MB/sec

ビンゴ。

起動設定

woodyhdparm(4.5-1.2)だと init.d スクリプトが無い。 sidの(5.4.10)から、/etc/init.d/hdparm と /etc/hdparm.conf をもってくる。 hdparm.conf の /dev/hda、/dev/hdc ブロックでそれぞれ dma = on しておく。

update-rc.d hdparm defaults

して、設定おしまい。(Ultra* については今はまぁいいや)。

[ 2月12日全て ]

2004年8月7日 (土)

過去の今ごろ

過去の8月7日より。

[ 8月7日全て ]

2004年9月18日 (土)

[ Debian ] Eclipse 3.0 -> 3.0.1

IDEからアップデートをかける。 Eclipse再起動をかけたら、起動しなくなった。 トホホ。

どこをなおせば良いのか良くわからないので、3.0.1 をとってきてあらためてインストール。

[ 9月18日全て ]

2006年2月23日 (木)

Debian Linux kernel 2.6.15 ビルド

ThinkPad X31 用に 2.6.15 の Debian kernel パッケージ構築を行う。 インストールしてある Debian 標準の 2.6.15 のパッケージの設定 /boot/config-2.6.15-1-686 をベースに設定を行いビルド

 #apt-get build-dep linux-image-2.6.15-1-686
 #exit
 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux
 $tar jxvf /usr/src/linux-source-2.6.15.tar.bz2
 $cd linux-source-2.6.15
 $cp /boot/config-2.6.15-1-686 .config
 $make menuconfig
 $make-kpkg clean
 $fakeroot make-kpkg --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.15_sebastian.1.0_i386.deb

ブート後 Kernel panic。

標準の設定では IDE 関係がモジュールになっているのを見落していた。もう一度設定を修正してビルドしなおして起動。 Linux を使い始めたころ ext2 をモジュールにして失敗したことがあり、ファイルシステム関連は忘れずチェックするようにしているのだが、IDE 関連はノーチェックだった。

MADWIFI

 module-assistant prepare
 module-assistant auto-install madwifi
[ 2月23日全て ]

2009年1月6日 (火)

クラッシュは突然に - DAR の使用を再検討

rimage:/nDiki/Flickr/3172591689.jpg

後ろの席の人、Dell Precision 470 に iPod shuffle を挿したら、ファンが掃除機並みの音を立てるようになりそのまま亡くなった。

ヨドバシカメラであわてて買ってきた HDD ケースに、ぶち抜いた HDD を入れてデータをコピーしている(確認しないで最初 IDE タイプを買ってきて、もう一度店舗にいって SATA タイプに交換。そしたら部品欠品があり再度店舗に交換してもらいにいったというのは秘密)。

斜め向こうの人も Windows を再インストール中。

不吉だ。 自分も何台かバックアップを怠っているので、それぞれバックアップを再検討することにした。

Red Hat Linux 8.0 用 DAR

特に気になっているのが Red Hat Linux 8.0 BOX のバックアップ。 以前は pdumpfs で毎日バックアップしていたのだが、バックアップUSB 外付け HDD がクラッシュ。新しいものを手配したのだがうまく認識できなくてバックアップに使えていない。 TeraStation PRO にそのディスクを接続してネットワーク経由でバックアップする予定つもりではいる。 で、バックアップには DAR を使おうと思ったのだが、Red Hat Linux 8.0 上でビルドできなかったのでそこで止まっていた。忙がしいこともあってその後ずっとほったらかし。

ビルドが通るようにコンパイラやライブラリのバージョン上げるのも大変なので、今回は別のホストでビルドしたものを使うことにした。 DAR はもともとリカバリ用に必要なライブラリを静的リンクした dar_static が作られるようになっている。これなら別環境でビルドしても動くはず。

Linux kernel 2.4 系の Debian GNU/Linux BOX があるので、そこで apt-get build-dep dar してから、dar-2.3.8.tar.gz をとってきて展開。

 ./configure --prefix=/tmp/dar
 make
 make install-strip

できあがった dar_static を dar として Red Hat Linux 8.0 BOX にコピーしてテスト。 うまく動いている感じ。

そういえば最初に DAR をいじってみたのは2005年4月なのだが、開発が進んでコマンドライン引数の指定の仕方がかわったようだ。 その時はバックアップ対象ディレクトリを直接引数として渡せたのだが、現バージョンではオプション引数として渡す必要があるようになっている。

DAR のスケジューリングとローテーションを提供する SaraB ( http://sarab.sourceforge.net/ ) もちょっと気になっている。 要チェック。

[ 1月6日全て ]

2009年2月7日 (土)

Debian Linux kernel 2.6.26 にアップデート

ThinkPad X31 に入れている Debian GNU/Linux sid でしばらく Linux kernel 2.6.23 を使っていたが、TrueCrypt 6.1a を入れたら「2.6.23 以下じゃヤバいよ」と表示されたので 2.6.26 にアップデートすることにした。 Debian 標準イメージを入れてみたが、やはり今まで通りサスペンドできないので、今回もビルドしなおし。

追加で入れるモジュールは aufsMADWIFI

 #apt-get build-dep linux-image-2.6.26-1-686
 #apt-get install linux-source-2.6.26 aufs-source madwifi-source
 #exit

 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.26.tar.bz2
 $cd linux-source-2.6.26
 $cp /boot/config-2.6.26-1-686 .config
 $make menuconfig
 $make-kpkg clean

 $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.26_sebastian.1.0_i386.deb

最初は 2.6.23 の時のソースツリーで make menuconfig したのと見比べながら素から設定したのだが起動中 hda のハードウェアの認識(?)で止まってしまった。 なのでとりあえず起動する .config は Debian 標準イメージのものをベースにすることにした。 変更は ACPI を外して APM を追加した程度。

Debian 標準イメージは IDEext3 もモジュールになっていて initrd 使わないと起動できないので今回から --initrd を指定してビルドすることにした(一度忘れてビルドして起動したら何度かアチャーしたことのある kernel panic になった)。

再起動。起動後 cpufreqd が動かなかったが、modprobe speedstep-centrino したら今までどおり cpufreqd が立ち上がって省電力化できた。

次に MADWIFI をインストール。こちらも問題なく接続。

 #module-assistant prepare
 #module-assistant auto-install madwifi

aufs前回の方法で udba=inotify できるモジュールを作成。

TrueCrypt もテストして警告を出さなくなっていることを確認。 火曜日ぐらいから、ちんたら何度かビルドしないしながら昨日ここまで辿りついた。 めでたしめでたし。

しかし Debian 標準イメージの .config 級の設定だとビルドに1回2時間前後だったかかかるようになった(nice 下だけれど)。 トライアンドエラーしはじめるとかなり時間がかかるな。


[ 2月7日全て ]

2009年10月4日 (日)

ThinkPad X31sidLinux kernel 事情

ここ最近 ThinkPad X31Debian GNU/Linux sid が調子が悪い。 いろいろ調査・トライしてみている途中の状態をメモ。

状況

  • いつごろからか、サスペンドしても ThinkPad X31 の月ランプが光らなくなった。
  • 8月19日ぐらい(から、使用中に Caps Lock キーが点滅してフリーズするようになった。(記事)。
  • 9月11日ぐらいから digiKam写真データを認識しなくなった(記事)。digiKam 更新で対応。
  • 9月23日ぐらいからサスペンドさせると復帰時に Caps Lock キーが点滅して Kernel panic になるようになった(記事)。
  • 9月29日に X があがらなくなった(記事)。こちらは xserver-xorg-core ダウングレードで対応。
  • Linux kernel 起動時に udev が「今の kernel だとデバイスあたりの処理がおかしくなるかもよ」というような警告を出すようになった。

アプリケーションや X の不具合などと重なって unstable 全開だ。

Linux kernel については各種パッケージの更新に追いつけなくなっているようなので、アップデートをかける必要がありそう。

Linux kernel 再構築

Debian GNU/Linux の標準イメージを使ってみたが、ThinkPad X31 では例によって ACPI では蓋の開閉でサスペンドしない。 APM を使うようにした Debian kernel パッケージ構築が必要。 しかし今年の2月に 2.6.26 をビルドした時(記事)から、いろいろ変更があったようで一筋縄ではいかなかった。 以下は最終的な手順(たぶん)。

 #apt-get build-dep linux-image-2.6.30-2-686
 #apt-get install linux-source-2.6.30 aufs-source
 #exit

 $mkdir -p /usr/local/src/linux
 $cd /usr/local/src/linux

 $tar jxvf /usr/src/linux-source-2.6.30.tar.bz2
 $tar zxvf /usr/src/aufs.tar.bz
 $emacs modules modules/aufs/Makefile
 $cd linux-source-2.6.30
 $cp /boot/config-2.6.30-2-686 .config
 $make menuconfig
 $make-kpkg clean

 MODULE_LOC=/usr/local/src/linux/modules fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image modules_image
 $fakeroot make-kpkg --initrd --revision=sebastian.1.0 kernel_image
 $cd ..
 $su
 #dpkg -i linux-image-2.6.30_sebastian.1.0_i386.deb aufs-modules-2.6.30_0+20090302-3+sebastian.1.0_i386.deb
 #update-initramfs -c -k 2.6.30
 #update-grub
  • aufs inotify を有効にする(記事)必要があるのだが、modules/aufs/debian/conf.mk が無くなっていた。modules/aufs/Makefile 側で同様の設定追加をする必要あり。
  • MADWIFI はコンパイルが通らなくなっていた。
  • 自前で作った linux-image の Debian パッケージが、initrd まわりの処理をうまくしてくれない。自分で update-initramfs した。

MADWIFI はもはやコンパイルが通らなくなっていた。 試してみたところ ath5k で通信できるようになっているではないか。modprobe ath5k すると wlan0 が使えるようになった(MADWIFI の時は ath0)。

initrd 関係は結構はまった。 最初いつも通りビルドして dpkg した後再起動したのだが、"Unable to mount root fs on unknown-block(0, 0)" が出て先にすすまない。 IDE まわりや ext2ext3 まわりを M から y にしても駄目。 何度か試しているうちに、 linux-image を dpkg --install した際に実行される update-grub のメッセージで自分で作った Linux kernel だけ initrd 関係の処理がされないことに気が付いた。 自前で update-initramfs したらようやく 2.6.30 が起動するようになった。

2.6.30 にすることで起動時の udev の警告は解消された。 しかしながらサスペンドはまだ駄目。 復帰時にフリーズする。 やはりパワー関係の処理があやしい。今は AC アダプタを外しても KPowersave は気付かない。

もう少しおっかける必要がありそう。

対応できるまではサスペンドできず。毎回起動したりシャットダウンしたりするの面倒くさーい。

[ 10月4日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

月別インデックス
Process Time: 0.055446s / load averages: 0.42, 0.46, 0.44
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker