エントリー

2012年11月の記事は以下のとおりです。

EPIAのmicroSDにfreeDOSをインストールする

  • 2012/11/28 23:56
  • カテゴリー:EPIAPC

FAT形式なら動作しそうなのでfreeDOSを試してみた

時間を費やしたくないので Creating FreeDOS USB boot stick for BIOS flashing を参考にしてWindowsXP64で起動メディアを作成した
使用するSDカードは KINGMAX microSD 2GB

手順

(参考)
 1.Delete all partitions on your stick
 2.Create one primary partition and mark it as active
 3.Format that partition using FAT32
 4.syslinux\syslinux.exe -fma X:
 5.xcopy usb-root\* X:\ /E/H/I
 6.copy your flash tool and flash binary into the flash\ folder
 7.Reboot
 8.press [Enter] at syslinux boot: prompt
 9.double press [Enter] while your asked to change date and time
10.your done! have fun!

(1)bootstick.zip をダウンロードして展開

(2)microSDに以下の処理を行う

 ①SDformatterでmicroSDを初期化
 ②syslinux\syslinux.exe -fma X:
 ③xcopy usb-root\* X:\ /E/H/I

(3)ME6000にmicroSDを装着して電源投入

1分以内に

SYSLINUX 3.72 2008-09-25 EBIOS Copyright (C) 1994.2008 H. Peter Anvin
boot:

Enter入力直後

Loading FreeDOS No KERNEL  SYS

で停止

001

20分待っても状況は変わらないため電源OFF
残念ながら予想に反して起動しなかった(原因追究はしていない)

microSDのパーティション構成

起動しないので電源OFFした後、パーティション構成を控えておこうとubuntuでfdisk

$ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 1917 MB, 1917845504 バイト
ヘッド 2, セクタ 1, シリンダ 1872896, 合計 3745792 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *         149     3745791     1872821+   6  FAT16

すると、実行から完了(表示される)まで1分以上要した

$ dmesg
(略)
[  215.460032] usb 1-5: new high-speed USB device number 4 using ehci_hcd
[  215.597586] scsi3 : usb-storage 1-5:1.0
[  216.597053] scsi 3:0:0:0: Direct-Access     USB2.0   CardReader COMBO 0100 PQ: 0 ANSI: 0
[  216.603781] sd 3:0:0:0: Attached scsi generic sg3 type 0
[  216.767551] sd 3:0:0:0: [sdd] 3745792 512-byte logical blocks: (1.91 GB/1.78 GiB)
[  216.768797] sd 3:0:0:0: [sdd] No Caching mode page present
[  216.769303] sd 3:0:0:0: [sdd] Assuming drive cache: write through
[  216.769858] sd 3:0:0:0: [sdd] Attached SCSI removable disk
[  216.775044] sd 3:0:0:0: [sdd] No Caching mode page present
[  216.775562] sd 3:0:0:0: [sdd] Assuming drive cache: write through
[  216.778665] sd 3:0:0:0: [sdd] No Caching mode page present
[  216.779165] sd 3:0:0:0: [sdd] Assuming drive cache: write through
[  216.781090]  sdd: sdd1
[  396.785741] sd 3:0:0:0: timing out command, waited 180s
[  396.786236] sd 3:0:0:0: [sdd] Unhandled sense code
[  396.786242] sd 3:0:0:0: [sdd]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  396.786253] sd 3:0:0:0: [sdd]  Sense Key : Hardware Error [current]
[  396.786264] sd 3:0:0:0: [sdd]  Add. Sense: Unrecovered read error
[  396.786275] sd 3:0:0:0: [sdd] CDB: Read(10): 28 00 00 39 27 f0 00 00 08 00
[  396.786297] end_request: I/O error, dev sdd, sector 3745776
[  396.786806] Buffer I/O error on device sdd, logical block 468222
[  576.825830] sd 3:0:0:0: timing out command, waited 180s
[  576.826331] sd 3:0:0:0: [sdd] Unhandled sense code
[  576.826337] sd 3:0:0:0: [sdd]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[  576.826347] sd 3:0:0:0: [sdd]  Sense Key : Hardware Error [current]
[  576.826358] sd 3:0:0:0: [sdd]  Add. Sense: Unrecovered read error
[  576.826370] sd 3:0:0:0: [sdd] CDB: Read(10): 28 00 00 39 27 f0 00 00 08 00
[  576.826392] end_request: I/O error, dev sdd, sector 3745776
[  576.826900] Buffer I/O error on device sdd, logical block 468222

I/Oエラーが発生したようだ
再度fdiskを行ったところエラーは発生せず直ぐに完了復帰したので一度外してfdiskすると同じエラーが発生した

$dmesg
(略)
[ 1491.921732] sd 4:0:0:0: timing out command, waited 180s
[ 1491.922216] sd 4:0:0:0: [sdd] Unhandled sense code
[ 1491.922222] sd 4:0:0:0: [sdd]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 1491.922232] sd 4:0:0:0: [sdd]  Sense Key : Hardware Error [current]
[ 1491.922243] sd 4:0:0:0: [sdd]  Add. Sense: Unrecovered read error
[ 1491.922255] sd 4:0:0:0: [sdd] CDB: Read(10): 28 00 00 39 27 f0 00 00 08 00
[ 1491.922277] end_request: I/O error, dev sdd, sector 3745776
[ 1491.922775] Buffer I/O error on device sdd, logical block 468222

壊れるにはちょっと早すぎるような・・・

MySQLを少しだけチューニング(その2)

以下のパラメータを追加

skip-innodb
wait_timeout = 60

InnoDBのOFFとConnection Timeoutの設定

EPIAのmicroSDにWindOSをインストールする

  • 2012/11/26 22:41
  • カテゴリー:EPIAPC

debianのインストールではSDカードをext3で扱ったが、標準であるFAT形式だとどうか確認したくなった

FAT形式が標準ということはメディアに対するR/Wも最適であろうと考えられる
また使用しているmicroSDでは処理しているかどうか判らないがウェアレベリングするならFAT形式でないと無理である

準備

再度debianを使うとインストールの手間がかかりそうなので、WindOS(Debian6.0"Squeeze"ベースで作られたLinuxディストリビューション)を利用することにした

WindOS 公式ホームページ
http://www44.atwiki.jp/windos/

debianで使用した4GBのmicroSDカードはSDformatterで初期化し直したが何度も書き換えしたため不安なので、今回は KINGMAX microSD 2GB(新品)を使用

インストール

インストールは公式ホームページの「使用方法」のとおりに行う
パーティションの構成は以下の様になった

$ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 1917 MB, 1917845504 バイト
ヘッド 4, セクタ 32, シリンダ 29264, 合計 3745792 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x000f3bea

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *           1      903167      451583+  83  Linux

WindOSの起動

USBから起動しブートCDは利用しない
電源投入でsyslinuxのメニュが表示され数分のちにWindOSも問題なく起動することができた

001003

003004

microSDの未使用領域を使う

WindOSを起動できたがこの状態ではデータが保存できないのでmicroSDの未使用領域を使えるようにした(persistent機能)
WindOS公式ホームページの「TIPS」に説明があるのでそのとおりに行っただけ
ファイルシステムはext2にして、そこに以下の画面スナップショットを退避させた

 ss

microSDカードへのR/Wはそこそこ使えるという性能で使い物にならないという感じではない
FAT形式ならば使えるのか?いやFAT形式でないと使えないのかもしれない

EPIAのmicroSDにdebianをインストールするが失敗

  • 2012/11/25 23:16
  • カテゴリー:EPIAPC

EPIA-ME6000Gに使用していない新品のmicroSDカード(KINGMAX microSD 4GB Class4)を付けてdebianをインストールしてみる

先に結果となるが残念ながらEPIAではmicroSDカードをUSBで読む際に問題があるようでdebianを起動することができなかった
つまり以下は失敗の記録となる

インストール

まずは通常のHDDと同じ手順でインストール

microSDカードとDVDドライブをUSB接続し、作成したDVDからインストールしていたら途中でDVDの読み込みエラーが発生、ディスクを精査すると問題ありと出たので媒体をCDで作りやり直し(幸先が悪い、出鼻を挫かれた)

これが非常に時間が掛かり4時間で終わらなかったのでそのままにして寝る
翌日起きたらgrubの確認で停止していた
grubを設定して早速再起動すると「out of disk」で起動せず

GRUB loading.
Welcome to GRUB!

error: out of disk.
Entering resuce mode...
grub rescue>

CDからレスキュを起動して、/ を mount するとファイルシステムは正常にみえる
grubの設定ミスなのか再度grubを登録したが結果は同様
エラーの意味がまったく判らないのでググる
同様の例がなく収集できたのはパーティションテーブルの異常

再度CDからのレスキュでfdisk

# fdisk -l /dev/sda
Disk /dev/sda: 3930 MB, 3930062848 bytes
121 heads, 62 sectors/track, 1023 cylinders
Units = cylinders of 7502 * 512 = 3841024 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004a79a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1             890        1023      498688   82  Linux swap / Solaris
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(827, 119, 56) logical=(889, 116, 11)
Partition 1 has different physical/logical endings:
     phys=(951, 79, 15) logical=(1022, 109, 54)
Partition 1 does not end on cylinder boundary.
/dev/sda2   *           1         890     3337216   83  Linux
Partition 2 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 33, 3)
Partition 2 has different physical/logical endings:
     phys=(827, 119, 55) logical=(889, 116, 10)
Partition 2 does not end on cylinder boundary.

Partition table entries are not in disk order

別PCのubuntuで見たfdisk

$ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 3930 MB, 3930062848 バイト
ヘッド 121, セクタ 62, シリンダ 1023, 合計 7675904 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x0004a79a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1         6676480     7673855      498688   82  Linux スワップ / Solaris
/dev/sdd2   *        2048     6676479     3337216   83  Linux

パーティションテーブル項目がディスクの順序と一致しません

インストール時に最初にスワップの指定を行い位置を後ろにするとこの様にになる
パーティションテーブルがディスク位置順になっていないから「out of disk」になるのかなと思い修正

$ sudo fdisk /dev/sdd
x ← エキスパートモード
f ← 最適化
p ← 確認(やらなくても良いが書き込む前に確認すべき)
w ← 書き込み&終了する

$ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 3930 MB, 3930062848 バイト
ヘッド 121, セクタ 62, シリンダ 1023, 合計 7675904 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x0004a79a

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *        2048     6676479     3337216   83  Linux
/dev/sdd2         6676480     7673855      498688   82  Linux スワップ / Solaris

始点が2048になっているのはSDカードにext3でフォーマットしたためと思われる(debianで見ると1なのはドライバーが異なる?)

結果は変わらず「out of disk」となる(がっかり)

再インストール

インストール中のどこかでエラーがあったのかも知れないと思い再度インストールを行うが散々な目にあう

2回目:途中でSDカードのエラーとなり中止
3回目:grubの登録ができず中止
CDレスキュでgrubの登録しようとしたが書き込み不可
/ のマウントもできない
4回目:懲りずに・・・今度はCDが読めなくなって中止
DVDドライブが妙な動きしているようだったので壊れたと思ったが別PCでは問題なかった
CDレスキュでSDカードをmountしようとするとエラー発生
syslogを見るとsuper blockが読めないらしい
SDカードが壊れてしまったのか?EPIAが問題なのか?

試しに20GBの2.5インチHDDを接続してインストールすると30分もかからず終了し正常に起動する
SDカードだと4時間はかかるので「嘘だろ!」って思った

ubuntuでSDカードをddで全体をreadしてみたがエラーは発生せず
fdiskでパーティションをクリアしてWindowsXPでSDフォーマッタを使い上書きによる初期化をしてみたが正常に終了した

再々インストール

microSDカードにHDDと同じ手段でインストールすると時間がかかるので20GB HDDにインストールしたdebianからシステムをコピーすることにした

HDDからシステムをコピー

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *        2048     6836223     3417088   83  Linux
/dev/sdd2         6838270    39069695    16115713    5  拡張領域
/dev/sdd5         6838272     7835647      498688   82  Linux スワップ / Solaris
/dev/sdd6         7837696    39069695    15616000   83  Linux

$ sudo dd if=/dev/sdd1 of=sdd1.dat
6834176+0 レコード入力
6834176+0 レコード出力
3499098112 バイト (3.5 GB) コピーされました、 129.613 秒、 27.0 MB/秒

SDカードに同じようにパーティションを作りHDDからコピーしたシステムを書き込む

$ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 3930 MB, 3930062848 バイト
ヘッド 121, セクタ 62, シリンダ 1023, 合計 7675904 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0xdda47987

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1            2048     6836223     3417088   83  Linux
/dev/sdd2         6836224     7675903      419840    5  拡張領域
/dev/sdd5         6838272     7675903      418816   82  Linux スワップ / Solaris

$ sudo dd if=sdd1.dat of=/dev/sdd1
6834176+0 レコード入力
6834176+0 レコード出力
3499098112 バイト (3.5 GB) コピーされました、 1493.04 秒、 2.3 MB/秒

$ sudo mount /dev/sdd1 /mnt

これで後はgrubをインストールするだけ

$ sudo mount /dev/sdd1 /mnt
$ sudo mount --bind /dev /mnt/dev
$ sudo chroot /mnt

# grub-install /dev/sdd
Installation finished. No error reported.
# update-grub
Found linux image: /boot/vmlinuz-2.6.32-5-486
Found initrd image: /boot/initrd.img-2.6.32-5-486
done
# vi /etc/fstab
(修正)
$ sudo umount /mnt/dev
$ sudo umount /mnt

結果は「out of disk」で起動せず(もう見たくないエラー)

GRUB loading.
Welcome to GRUB!

error: out of disk.
Entering resuce mode...
grub rescue>

ここで(いまさらながら)落ち着いて考える
どこで止まっているのか?grubのstage1かstage2(もしくはstage1.5)で対応を変えないといけない

GRUB - Wikipedia によると、やはりstage1で/boot/grub/がbiosで参照できていないと推測

grub rescue モードで確認

grub rescue> ls
(hd0) (hd0,msdos1) (fd0)
grub rescue> ls (hd0,1)/
./ ../ lost+found/ var/ opt/ etc/ media/ initrd.img sbin/ usr/ lib/ selinux/ bin/ home/ dev/
proc/ boot/ mnt/ root/ tmp/ sys/ srv/ vmlinuz
grub rescue> ls (hd0,1)/boot/

error: out of disk.
grub rescue>

(尚、初期にmkfsで生成されるlost+foundは見えた)

そうか!LBAの問題か、最初に気付いていればよかった
512bytesのプログラムで適切なメッセージを出せるとは思ってなくて「out of disk」というメッセージに惑わされてしまった

再々々インストール

先頭192MBをbootパーティションにしてgrubとカーネルを置く

$ sudo fdisk /dev/sdd

ディスク /dev/sdd: 3930 MB, 3930062848 バイト
ヘッド 121, セクタ 62, シリンダ 1023, 合計 7675904 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0xdda47987

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *        2048      395263      196608   83  Linux
/dev/sdd2          395264     7675903     3640320    5  拡張領域
/dev/sdd5          397312     7231488     3417088+  83  Linux
/dev/sdd6         7233537     7675903      221183+  82  Linux スワップ / Solaris

コマンド (m でヘルプ): v
パーティション 1: 前のセクタ 395263 は合計 391760 と一致しません
パーティション 5: 前のセクタ 7231488 は合計 7231315 と一致しません
パーティション 6: シリンダ 1024 は最大値 1023 よりも大きいです
パーティション 6: 前のセクタ 7675903 は合計 7681222 と一致しません
6141 未確保 512 バイトセクタが残っています

$ sudo dd if=sys3.5G.dat of=/dev/sdd5 bs=1M ← sys3.5G.datはsdd1.datをmvしたもの
3337+0 レコード入力
3337+0 レコード出力
3499098112 バイト (3.5 GB) コピーされました、 830.274 秒、 4.2 MB/秒
(バッファ指定で少しは早く書き込めた)

$ sudo mkfs -t ext3 /dev/sdd1
$ sudo e2label /dev/sdd1 boot

$ sudo mount /dev/sdd5 /mnt
$ sudo mv /mnt/boot /mnt/boot.bak
$ sudo mkdir /mnt/boot
$ sudo mount /dev/sdd1 /mnt/boot
$ (cd /mnt/boot.bak; sudo tar cf - . | (cd /mnt/boot; sudo tar xf -))
$ sudo rm -rf /mnt/boot.bak

$ sudo mkswap /dev/sdd6
スワップ空間バージョン1を設定します、サイズ = 221176 KiB
ラベルはありません, UUID=dd0784d0-d4fc-4661-8fbc-fab24adce7a9

$ sudo mount --bind /dev /mnt/dev
$ sudo chroot /mnt
# grub-install --root-directory=/ /dev/sdd
Installation finished. No error reported.
# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-486
Found initrd image: /boot/initrd.img-2.6.32-5-486
done
# vi /etc/fstab
(編集)

$ sudo blkid
/dev/sdd1: LABEL="boot" UUID="1575e3a5-ac09-4815-92f6-1a4584dbd7d7" TYPE="ext3"
/dev/sdd5: UUID="99ae2575-7585-45e0-8dfd-732fabdd794e" TYPE="ext3"
/dev/sdd6: UUID="dd0784d0-d4fc-4661-8fbc-fab24adce7a9" TYPE="swap"

$ sudo umount /mnt/dev
$ sudo umount /mnt/boot
$ sudo umount /mnt

結果

GRUB loading.
Welcome to GRUB!

error: no such device: 99ae2575-7585-45e0-8dfd-732fabdd794e.
error: no such disk.
error: no suitable mode found.
error: no such device: 1575e3a5-ac09-4815-92f6-1a4584dbd7d7.

ここまで表示されるのに20分・・・
約30分待ったが変化がないのでリセット(あまりにも遅い)

「out of disk」は回避したが、次は / がないとは・・・
コマンドモードにもならないループ状態なので手が出せない

USBアダプタを換えてみたりEPIA-ME6000GをEPIA-CL10000にしてみたが同様の結果であった
試しにubuntuを使っているPCで同じmicroSDカードとアダプタを付けてみると正常起動した
この古いEPIAではUSB経由のSDカードの読み込みはハード的に問題があるのではないかと思われる

しかしUSB経由でのHDDを含め他の機器は正常動作しているのでSDカードだけ駄目というのは納得できない

他PCで起動した時の画面

001002

ページ移動

  • ページ
  • 1
  • 2
  • 3
  • 4
  • 5

ユーティリティ

タグクラウド

検索

エントリー検索フォーム
キーワード

Feed