Top > board
HTML convert time to 0.533 sec.


掲示板

Last-modified: 2016-11-28 (月) 23:23:02
このページは皆さんで適当に使って下さい。
このページには保護をかけていません。メールアドレスも必要ありません。
書き間違えた場合には直接編集して直して下さい。
フォームを使わず直接書き込んでもかまいません。(整形ルール
添付も可です(但し、wikiwiki.jpでは1ファイル当たり500KBに制限されています)。
説明する代わりに、気軽に写真やキャプチャー画像を添付(アップロード)しちゃって下さい。
添付ファイルにはアップロード前に必ず拡張子を付けておいて下さい。
 

書き込みフォームのページも使いますか?




URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

TS-RKT01Zのクローンについて Edit

ヒロ? (2016-11-11 (金) 15:05:52)

TS-RKT01Zのボタンの反応が悪くなり、チューナーの電源を入れるリモコン側の電源ボタンが、まったく反応しない。
パソコンを使わずに、スタンドアローンで動作する、このリモコンのクローンは製作できないかなぁー。


  • 技術的には容易なことなので、私を含め作れる人は数えきれないほどいるでしょう。私は既にMPASM系で(ボタン・インタフェースだけがない)ほぼそのようなものを作成しています。ボタン操作部に関しては元となったソースあるいはこちら等からコピペして復活させればいいでしょう。後は採用チップに合わせて適宜修正すればスタンドアローン・リモコン(つまりTS-RKT01Zのクローン)のファームウェアは出来上がります。あるいはUSB接続赤外線リモコンのC言語ソースをベースに作成することももちろん可能でしょう。 -- disklessfun? 2016-11-23 (水) 15:17:17
  • 新たに思い出したことがあるのでいろいろ追記します。
    まずは重要じゃないことから
    MPASM系での別の作例を思い出しました。 -- disklessfun? 2016-11-25 (金) 21:30:51
  • リモコンのクローンを手っ取り早く手に入れるなら、高いものならHUIS、安いものなら各社から出ている学習リモコン、たとえばこれら等を利用すればいいと思います。
    ただしヒロさんの場合一つ問題なのは、どうやらTS-RKT01Zの電源ボタンが接触不良で、コピー元の赤外線データを得ることが困難っぽいことです。この問題はTS-RKT01Zを殻割りすることが可能であれば、中の該当部分の端子をリード線等で短絡させて無理やり電源命令の赤外線を送信させることがわりと高い確率で可能だと思われます。これが可能であれば、市販の学習リモコンに代替させるプランは成功するでしょう。 -- disklessfun? 2016-11-25 (金) 21:44:00
  • ただし殻割りついでに導電性インク等で接触不良箇所が修理可能であれば、そもそも学習リモコンを購入する必要がなくなるのでベストだと思います。ただしあまり成功の確率は高くないと思います。 -- disklessfun? 2016-11-25 (金) 21:50:27
  • どうしてもTS-RKT01Zから電源命令を送信させることが出来ない場合、ヒロさんがUSB接続赤外線リモコンを購入されれば、私がTS-RKT01ZのUSB接続赤外線リモコン用の電源ボタンの命令のデータをお伝えしますから、それを使ってご学習リモコンに覚えさせることができます。ただしこのプランだとTS-RKT01Zを再購入(可能かどうか知りませんが)するより高くなるかもしれません。 -- disklessfun? 2016-11-25 (金) 21:57:46
  • TMYはマイナーメーカーですが、TS-RKT01Zのデータを最初から内蔵したリモコンが他のメーカーから市販されている可能性もあると思います。多分それは学習リモコンだと思います。 -- disklessfun? 2016-11-25 (金) 22:07:19
  • ご回答、ありがとうございます。 -- ヒロ? 2016-11-26 (土) 17:04:18
  • 市販の学習リモコンでは、なぜか、TS-RKT01Zの赤外線データを学習できませんでした。 リモコンの電源ボタンは反応が悪いです。 丁度、Bit Trade OneのUSB接続赤外線リモコンを自作しています。 リモコン用のデータを頂けるのですか? どのようにすれば、データを受け取れますでしょうか? どうぞ、よろしくお願いいたします。 -- ヒロ? 2016-11-26 (土) 17:10:30
  • TS-RKT01Zの赤外線フォーマットは家電協フォーマットと少し違うだけです。これを学習できない学習リモコンが存在するというのはちょっと不思議です。あるフォーマットだけ学習できる制限付きの学習リモコンなのかもしれません。
    ところで、既にこちらに掲載しているchannel-setSerial.shというファイルの中にTS-RKT01ZをUSB接続赤外線リモコンで学習した全データを書き込んであります。Linux,MacOS,UNIX環境だとファームウェアを拙作改良版ファームウェアセットの中にあるVer. 2.1.Bシリアルインターフェース版に書き換えるとそのまま使えます。データ自体(16進文字列)はHIDインターフェース用ファームウェアのVer. 2.1.6を使った場合でもLinux,MacOS,UNIXならbto_ir_cmdを導入すればそのまま使えます。ただしWindowsは厄介です。Windows用の送信用設定ツールは画面上で手動でのデータの書き換えができないからです。アプリを終了している時にデータが保存されたフォルダのデータを手動で書き換えるとか、自分でアプリを作る等工夫して下さい。 -- 2016-11-26 (土) 19:46:47
  • 少し修正:16進データは、bto_ir_cmdとか送信用設定ツールで使用する場合は所定の長さになるように右側に0を追記する必要があると思います。 -- disklessfun? 2016-11-26 (土) 19:54:19
  • なるほど。色々とご教授頂き、ありがとうございます。データをWindowsで使う場合、簡単には送信ができないのですね。 -- ヒロ? 2016-11-27 (日) 23:46:31
  • はい、Windows用の送信アプリを誰も公開していないからです。
    (追記:カジュアルなパソコンユーザの殆どはWindowsしか使わないので、「Windows対応」として売り出さざるをえないのですが、本気でシステムを組もうと考えているユーザ達にWindowsは人気薄です)

    大方の人は、USB接続赤外線リモコンを、何かの機器を(他のシステムとの連携を含む)自動操作する用途、で購入します。
    しかしビットトレードワンさんが公開している(Windows用の)送信用設定ツールはGUIのソフトです。
    GUIソフトと自動操作とは、非常に親和性が悪いです。
    なので、そもそもビットトレードワンさんは、(Windows用の)送信用設定ツールを、ユーザが実運用(自動操作)時に使用するとは全く考えていない筈です。動作確認や学習のみの用途で使ってもらいたいと考えて送信用設定ツールを公開している筈です。
    実運用(自動操作)はユーザ独自にアプリを作成して実現して欲しいと考えている筈です。
    その為にビットトレードワンさんは、ユーザがアプリを作成しやすいように(Windows用の)ライブラリを公開しています。
    ただし、最近は、自動操作のプラットホームとしてWindowsは好まれていません。
    今までのところ、ユーザ有志によって公開された実運用(自動操作)用のアプリは全て非Windows用のものばかりです。 -- disklessfun? 2016-11-28 (月) 01:10:14

Fedora23で2段階にしたところkernel Edit

(2016-05-04 (水) 10:37:54)

初心者で何も分からない事が多いので、詳細で丁寧なご説明にとても感謝しております。さて、Windows10、Ubuntu、opensuse、Debia最後にFedora23をインストールしました。すると、一時的にMBMが使えなくなるので #grub-install --force --root-directory=(/dev/hogeのマウントポイント) /dev/hoge を実施し、「systemdを採用したRHEL系最新ディストリビューション(CentOS等)用の方法(強引かつ単純)」のプログラムをそのままコピーして2段階ブートを完了しMBMが使えるようになりましたが、Fedoraのkernelアップダートの度にバグが生じます。Fedora でMBMを使えるようにする場合には、何か工夫が必要なのでしょうか?ご教示宜しくお願いします。


  • 私の方で検証環境を作れば最初から正確に答えられると思いますが、とりあえずは検証環境なしで、お答えします。
    まず基本的な説明を
    本来、grub2のアップデートを伴わないkernelアップデートでは、grub2の再セットアップは必要ありません。
    しかし、「2段階ブートの為」等の理由でgrub2をPBRにセットアップした環境では、頻度は低い筈ですが、grub-pc等のパッケージがアップデートされる場合にgrub2の再セットアップが必要になります。
    そんな場合でもUbuntu系であれば、事前にDebconfデータベースに正しいブートデバイス情報を書き込んでおきさえすれば、grub2の再セットアップが自動的におこなわれます。
    しかしRedHat系にはそのような便利な機構が備わっていないので、grub2をPBRにセットアップした場合には、必要な場合には手動でgrub2の再セットアップをおこなうか、もしくは自前で、自動的にgrub2の再セットアップをおこなう機構等を作る必要があります。
    例の「systemdを採用したRHEL系最新ディストリビューション(CentOS等)用の方法(強引かつ単純)」は、「自前で作った、自動的にgrub2の再セットアップをおこなう機構」のつもり(サンプル)です。ただしRedHat開発者側と何のすり合わせもしていない後付けの機構なので例えば/var/log/yum.logの運用仕様が変更されるだけでうまく動かなることが容易に予想できます。この機構がうまく動かないのであれば、とりあえずそれは無効にして、「yum updateの度にgrub2関連が更新されたか否かを手動でチェックし、必要とあらば手動でgrub2の再セットアップをおこなう運用」に切り替えてみて様子を見てはいかがでしょうか。
    繰り返しになりますが、grub2のアップデートを伴わないkernelアップデートでは、たとえgrub2をPBRにセットアップしていても、grub2の再セットアップは必要ありません。
    kernelアップデートの度に不具合が生じるとのことですが、そのkernelアップデートがgrub2関連のgrub-pc等のアップデートが伴っていないのであれば、grub2周辺を何も変更しなければ不具合は生じなくなる可能性が高いと思われます。
    例の機能を手っ取り早く無効にしたいのなら、
    ◇/sbin/hogehogeの中の記述を削除し、実行権限は付与したまま、中身が空のファイルに変更
    してやればいいと思います。/sbin/shutdown、reboot,haltを一遍にオリジナル状態に戻すより遥かに簡単だと思います。
    あと、/update-grub2.log の中身の確認もおこなうべきだと思います。エラーが生じていればそれが記述されていると思います。 -- disklessfun? 2016-05-04 (水) 15:06:48

質問 + "SSDを使用する際の重要なTips"について Edit

サイバー徘徊人? (2015-12-22 (火) 02:42:27)

Windowsシステムディスクのddイメージをgeometryの異なるSSD/HDDに移す方法がある旨記載されていますが、詳細な記述がみつけられません。ご教示いただけませんでしょうか。

具体的には、

  • H 240(255) -S 63なHDDのSector1だかから始まっているWinXP起動パーティション
  • H 255 -S 63でSector2048からパーティションが始まるSSD
    に移したいのです。なぜ、-H 255 -S 63かは後述

Sector2048から始めるSSDは、予め、Linuxで作ってWinXPでNTFSフォーマットしておくつもりです。

なぜ、このようなシステム移行にするかというと、Windowsのインストールメディアをもっておらず、WinXP PreinstallのHDDしかないからです。以前、有名どころのクローンソフトを使用してSSDにクローニングしたのですが、GeometryはHDDと同じになった記憶です。
そのSSDはATAデバイスとは認識されない状態に壊れました。ソフトは、SSD添付のAcronisがだめでEaseUse ToDoBackupだった記憶です。
※今考えると、Acronisが-H 240にすべき処を-H 255にしてしまっただけで、diskprobeでHead値を修正すればよかっただけかもしれません。こちらと出会う前の話です。

"SSDを使用する際の重要なTips" について

MLCなNAND Flash Memoryを使用したストレージ・デバイスは、H=64/S=32を基準にパーティション開始位置計算する利点というか必要性は理解できます。しかし、fdiskのパラメーターで"-H 64 -S 32"を付加するのは注意が必要なようです。

BIOSでgeo値が指定できる場合はよいでしょうが、できない場合は害になるようです。
最近のOSはLBAで処理になっているとのことですが、CHSでのアクセスをやるモジュールはまだあるようです。PATAなNotePCのBIOSは、MBRの値を無視して255,63をOSに通知しているようです。

具体的にはThinkPadX32のケースですが、UbuntuでCompactFlash(CF)を"-H64-S32"指定sda1=/,sda2=/Home,sda3=swapの3パーティション構成にしたところ、USB接続では起動し問題なく使えるのに、IDE接続すると、どうもsda2の/Homeにアクセスしたとたんにフリーズして使えないということを経験しています。(CF-IDE変換とIDE-USB変換組み合わせ使用)

"fdisk -H 64 -S 32 /dev/sda"で構成したCFですが、パラメーターなしのfdsikで見ると、IDE接続で255,63、USB接続では64,32です。なんとかIDE接続で64,32に認識させようと藻掻いている内にCFを壊したようです(USB接続で使い込んだからかも)。

このことから、BIOSのgeo値が変えられないマシンでは、fdiskのgeo値は弄らずdefaultのままにして、パーティション開始位置を64,32でのシリンダー境界に合わせる、つまり端的には、2048で割り切れる値にするのが肝かとの結論に至っています。255,63のシリンダー境界は完全無視でよろしいと割り切ります。
パーティション切りに拘らず、シングル・パーティションにすればいいのでしょうが、なぜかLinuxは至る処で"/","/Home","swap"の3つは作れといいますね。
SSDなら、マルチ・ブート環境にしなければ切り分けは意味がないように思うんですがね。

CFの代替としてヤフオクで安価なSATAハーフスリムを入手しており、SATA-IDE変換アダプタも調達し到着を待っている状態です。
今は、壊れる前のCFからddでクローンしたUSB Memory stick 32GBで動かしています。

蛇足ですが、PATAなThinkPadが3台ありまして、内1台(X32)をSATA-IDE変換なSSD(32GB trim有り)でXubuntuにし、別X32をCF-IDE変換なCF(64GB 1066x)でWinXPに、3台目は915PMの内部でSATA→PATAにしてあるT43という作りなのでmSATA-IDE変換なSSDでWinXP(重い腰があがったら純SATAに改造して同じmSATA SSDをmSATA-SATAでSATA接続に切り替える目論み)
全部PentiumMなPCで、当方では、新しめのPCも調達してあるので退役必死なのですが、最後にメンテナンスしておこうと考えている次第です。

ただ、これらのPCはメモリーさえ与えてやれば、WinXPやXubuntuであれば現役続行可能なので、誰かの参考になればと思い書き込ませていただきました。

よろしくお願いします。


頂いた質問には様々な内容を含んでいるので、これから私が書く内容も一応(1)仮定(前提)、(2)回答、(3)補足に分けました。

 

(1)仮定(前提)

  • サイバー徘徊人さんは、SSDを、H255,S63の古典的なジオメトリー値でパーティションを確保して使用するのは出来る限り避けたいと思っている。
  • サイバー徘徊人さんは、SSDを、H255,S63の古典的なジオメトリー値でパーティションを確保して使用することが可能なことは理解している。
  • サイバー徘徊人さんは、大昔の(黎明期の)HDDを除き、HDDが物理的にはH255,S63のジオメトリー値を持っていないことは理解している。
  • 「H 240(255)」の240は、第一パーティションの第一シリンダの先頭が、MBRとそれに続く領域の為、15セクタ分後ろにずれていることを示している。
 

(2)回答
Windowsのシステムパーティションの“イメージじゃない”コピーはWindows用のバックアップソフトを使う必要があります。
一例を挙げると、EaseUS TodoBackupでシステムパーティションをバックアップし、“SSDに最適化する”オプションを付けてレストアすると、レストア後のパーティションは、H64,S32でパーティションを確保した後にNTFSフォーマットして作成したパーティションと、“フォーマットに関しては”ほぼ事実上同じになると思います。当該パーティションは事前にNTFSフォーマットしておく必要はありません。
この処理中、EaseUS TodoBackupはMBRのパーティションテーブルを、自らの作業によって再作成するパーティションに沿うように必ず更新します。
なので、例えば作業前がH255,S63であったとしても作業後にはH64,S32(もしくはそれに類した)値に変わります。それが先頭のパーティションだとしたら、fdiskが自動認識する場合のH値、S値も変わるでしょう。

 

話が逸れますが、
>BIOSでgeo値が指定できる場合はよいでしょうが、できない場合は害になるようです。
Autoで駄目なケースは相当古いPCに限定される話だと思います。
そういえば、20世紀末のPCのIDEにCFをセットしてブートさせようとした際、どうBIOSを設定しても、たしかCFの方をH255,S63にしないとブートしないということがあったように思います(明確な記憶ではありませんが)。
BIOSはH値やS値に関係なく、ただ先頭のプログラムを起動してくれればいいと思うのですが、残念ながら古いPCにはそうじゃないものがあるようです(確信まではないのですが)。
ただし例えば手元に2003年のPCがありますが、H64,S32で問題なくIDEからブートします。
基本的には現在は殆ど使われていないような古いPCじゃない限り“H64,S32にすると起動しない”なんてことはない筈です。
なのでこのページに「PCにH64,S32にすると起動しないことがある」等とは特に書いていません。

 

話を戻します。
当該のX32はH64,S32でパーティションを確保して、ブートできるでしょうか?
つまり、MBRのブートローダー(Windows純正またはその他)がBIOSによって起動されるでしょうか
そしてその後Windowsがブートできるでしょうか?
もしうまくいかなければMBRのブートローダを(マルチブートにする必要がなくても)MBMに変えてみてはどうでしょうか
少なくともWindows2000純正のMBRのブートローダは問題ありでした。XP純正のブートローダも環境によっては問題が出現するかもしれません。
うまくいかない際はいろいろ試してみて下さい。MBMに変えるとか、Win7のMBRのブートローダに変えるととか…

 

(3)補足
>H 255 -S 63でSector2048からパーティションが始まる
H255,S63というのは、黎明期のHDDを除き、パーティションの先頭位置と大きさを決定するパラメータに過ぎませんから、例えば1パーティションしか確保しない場合、「Sector2048からパーティションが始まってH255,S63」は、Sector2048から始まってサイズが(255x63)x整数セクタのパーティションがある、ということに過ぎません。
H255,S63と指定する意味は、SSDの寿命やパフォーマンス的にも、BIOSの認識的にも、多分何も効果・意味はないでしょう。

 

>fdiskのgeo値は弄らずdefaultのままにして、パーティション開始位置を64,32でのシリンダー境界に合わせる、つまり端的には、2048で割り切れる値にする
これに意味があるのかどうか試して頂きたいと思います。
この手法で作成したパーティションテーブルと「fdisk -H 64 -S32」で作成したパーティションテーブルとの違いですが、パーティションの先頭位置は同じなので違いが生じるのは末尾の位置だけの筈です。末尾の位置は、先頭位置が同じ場合、個々のパーティションのサイズの違いに反映すると言えます。パーティションのサイズを2048の整数倍にするか、(255x63)の整数倍にするかがブートの可否に影響するのでしょうか。だとしたら興味深い情報だと思います。ただし余程古いPCにしか事実上役に立たない情報だと思いますが…
少し余談になるかもしれませんが、たとえば仮に先頭パーティションがH64,S32に沿っているとブートできないPCが存在したとしても、Linuxなら/bootはH255,S63に沿ったパーティションとし、/はH64,S32に沿ったパーティションにするといった手法で問題を回避する手段も採れます。/bootは起動時の一瞬しかアクセスしないのでH64,S32に沿ってなくてもSSDの寿命的にもパフォーマンス的にも全く問題ないからです。もしかすると同じ手法がWin7以降…

 

>sda2の/Homeにアクセスしたとたんにフリーズして使えないということを経験しています。
ここはBIOSを経由せずにLinuxカーネルがアクセスしている部分ですから今回は言及しません。個別の理由の可能性が高いと思われます。

 

>そのSSDはATAデバイスとは認識されない状態に壊れました。
これもわかりません。「GeometryはHDDと同じになった記憶です。」なので、ddでイメージコピーした状態に近いと思われる筈なのですが…
そもそもパーティションの位置やサイズなどでBIOS上で認識されるデバイスの種類が変わるという事態は、あるとしても、相当に珍しいことでしょう。
BIOSが相当に面倒くさい仕様なのか、デバイス側の問題か…

 

>MLCなNAND Flash Memoryを
細かい話ですが「MLCな」はここに不要です。多分実際にはおわかりで、単純に余計な言葉を付けてしまっただけだと思いますが…

 

>パーティション切りに拘らず、シングル・パーティションにすればいいのでしょうが、
シングルパーティションにすればブートの成功率が高くなるといったことはあまりないと思います。作業量が減るという面はあると思いますが…

 

>なぜかLinuxは至る処で"/","/Home","swap"の3つは作れといいますね。
その意味を理解していれば全然従う必要はないと思います。"/", "swap"の2つにしたければすればいいと思います。 -- disklessfun? 2015-12-23 (水) 08:31:47


disklessfun?さま、
返信ありがとうございます。

長くなってすみません。

(1)について、
4項目目の理由付けを考えたことはありません。
上3項目は、そうです。

(2)については、懐疑的です。

私は、1996年辺りからThinkPadしか触ってないんです。
特に、WinXPプリインストール機以降、Windowsをサラでインストールもしたことがありません。
ThinkPadの付属HDD容量が小さいため、まずは複数のソフト(2000年辺りから、EaseUSとAcronis)でディスクイメージを作り大きめの未フォーマット状態のHDDにリストア・リサイズして使ってきています。

>(EaseUSでの)作業後にはH64,S32(もしくはそれに類した)値に変わります。
は、HDDでの経験からどうかと思います。壊したSSDで確かめられればいいのですが、もう読めません。
うろ覚えでは、SSD最適化でクローンしても2048から始まっていなかったような記憶です。

当時のIBMの癖なのでしょうか付属HDDは必ず240,63でした。そのイメージをリストアすると255,63にされ、そのHDDのMBRをdiskprobe等で255→240に修正しないと起動させられませんでした。
R&Rとかを持たせているから特殊なのでしょうか。今はWin7ですし、2048スタートですよね。
昨年末にSSDを壊してCFでXubuntuでしたが、最近リストアして使用しはじめたHDDは以下のとおりです。
やはり、diskprobeでMBRの修正が必要でした。同時にやったT43というThinkPadも同様でした。

C:\WIN32TLS\MSSupportTools>diskpar -i 0 ← WinXPのコマンドプロンプトで実行


Cylinders = 5168
TracksPerCylinder = 240 ← !
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 40007761920 (Bytes) = 38154 (MB)


StatringOffset = 32256
PartitionLength = 40007729664
HiddenSectors = 63
PartitionNumber = 1
PartitionType = 7

End of partition information. Total existing partitions: 1

このHDDを、Linuxで "fdisk -l /dev/sda"とすると、255,63と表示されるのです。

で、Windows/Linuxとも、1st pertition start = 63 です。

HDDで使えてはいるものの、やはり、音と速度からSSDにしたくなる訳で、また壊さないようにといろいろ調べ回ってSSDの特性を知ると、start = 63セクターというのは避けたいとなるわけです。
要は、SSDのページ単位を破らないようにと考えると、スタートの63は良くないのかとの問題視です。
この理解が間違いであるなら、拘る必要はないともいえます。

>当該のX32はH64,S32でパーティションを確保して、ブートできるでしょうか?
Partition切ったCFの64,32は起動するだけは起動し、TerminalやThuna開けるくらいはできていました。
Single Partitioで作ったCF(16GB)の64,32はまともに動いているようです。
HDDにXubuntu 15.10をインストールしていますが、Xubuntu上のfdiskではHSは表示されません。
しかし、1st partition start = 2048 であり、快調に動いています。
そのHDDをUSB接続ですが、WinXPで見ると、255,63なのに start = 2048 なのです。

C:\WIN32TLS\MSSupportTools>diskpar -i 1


Cylinders = 2432
TracksPerCylinder = 255
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 20003880960 (Bytes) = 19077 (MB)


StatringOffset = 1048576
PartitionLength = 12003049472
HiddenSectors = 2048 ← !
PartitionNumber = 1
PartitionType = 83


StatringOffset = 12004098048
PartitionLength = 2999975936
HiddenSectors = 23445504
PartitionNumber = 2
PartitionType = 82


StatringOffset = 15004073984
PartitionLength = 4999610368
HiddenSectors = 29304832
PartitionNumber = 3
PartitionType = 83

End of partition information. Total existing partitions: 3

このWinXPとLinuxの違いがどこにあるのかがわからないのです。
当初、Linux側を疑いました。BIOSが何云おうがIDEは255,63と扱う仕様かと。
すると、chghead.exeなるBIOSのIDE geometryを弄るツールを発見したのです。
しかし、Phoenix系のBIOSでは起動できなくなるとの記述がありやめました。
手持ちのThinkPadはIBM BIOSと表示されますが、元々Phoenix BIOSのはずなので。

そこで、思いついたのが、スタートとする値を2048にするという方法です。
SSDですから、start=2048と表示されようが、どの位置に置かれているのかはわからないなと。
インストールメディアを持ち合わせていれば、やってみればいいのですが、ないのです。
逆に、start=63であってもSSD内部では消去ページ単位は守られるのでしょうかね?
もし、そうであれば、話は違ってくるのですが、壊れたSSD/CFの原因もわからないので悩ましいのです。

>その意味を理解していれば全然従う必要はないと思います。
意味は理解していると思います。Linux新参者なのでう〜んと思いながら追従してました。
ただ、長年のHDDとの付き合いでアームの動きを小さくする構成にすると癖になって、HDDではswapは挟むようにはしてみました。Winのpagefileのようにもっと使うかと思ったので、、、
ところが、メモリー十分なのでswap域分邪魔な存在でしかなくなってます。

長くなって、申し訳ありません。
サイバー俳諧人 -- サイバー俳諧人? 2015-12-24 (木) 04:58:47


>4項目目の理由付けを考えたことはありません。
240という数値の由来として、255,63の場合の第一シリンダ先頭のずれは普通は63なのですが、15にしている製品もあるかなと思って書いてみましたが、
そういう意味だったんですね。

 

>は、HDDでの経験からどうかと思います。…うろ覚えでは、SSD最適化でクローンしても2048から始まっていなかったような記憶です。
ディスクイメージという言葉からは1ディスク丸ごとバックアップを連想させます。私はTodoBackupで1ディスクのwhole imageは取ったことはないです。
サイバー徘徊人さんの方で実際どうだったのかわかりませんが、以下の手法をまだ実践していないのならおこなって頂き、報告を頂けませんか。
(1)コピー元のHDDからTodoBackupでCドライブだけのシステムパーティションバックアップを作成する。(2)SSDの方に、望みの(H64,S32の)パーティションテーブルを作成する。(3)SSDの目的のパーティションに“SSDに最適化する”オプション付きでレストアする

 

細かい話をすれば、ブートローダを入れたりアクティブフラグを立てたりなど、上記3段階の手順以外にも作業は必要です。その辺りは長文を頂いていることやPC歴からして、もちろんご存知だと思って省略しています。
ただし意外と、私とサイバー徘徊人さんの間の言語が違うような気がまだしないでもありません。
(追記)末尾にLinux新参者と書いておられますね。この辺りが言語の違いが漂う原因だと思います。できればLinuxでfdiskコマンドを使い、MBMをインストールして頂いて報告頂きたいです。

 

>そのHDDのMBRをdiskprobe等で255→240に修正しないと起動させられませんでした。
これは、そのバックアップ・レストアの、パーティション部のバックアップ・レストアがイメージ形式のバックアップ&レストアになっているのに対して、
パーティションテーブルの方は作り直しがおこなわれているということを示しているのだと思います。
Todobackupは内部的にイメージ形式のバックアップ・レストア機能と非イメージ形式のバックアップ・レストア機能を持っているような認識を私は持っています(選ぶインターフェースがあったと思います)。SSDに最適化するレストアは、イメージ形式のバックアップ・レストアではけっしておこなえません。

 

パーティションの実態を無視して、パーティションテーブルをH255,S63に作り直してしまうソフト(やインストーラ)って過去に他にもありました。
TodoBackupが実態を無視して、255,63に変えてしまうのは“さもありなん”だと思います。

#
>start = 63セクターというのは避けたいとなるわけです。
もちろん避けるべきです。
最近のfdiskが第一パーティションを第二シリンダから始めるのもパーティションの先頭位置が大切だからです。

 

>そのHDDをUSB接続ですが、WinXPで見ると、255,63なのに start = 2048 なのです。
もちろんご存知でしょうが、パーティションテーブルにH値、S値を書き込んである場所があるわけではありません。
パーティションテーブル内のパーティションの先頭位置等を見てdiskpartやfdiskが推測しているだけです。
H値、S値より大切なのは、実際の各パーティションの先頭位置やサイズ(終了位置)です。
diskpartで言えば、StatringOffsetとPartitionLengthです。
これらの値は同一のデバイスであれば、ツールやOSや接続方式に依らず同一の筈です(ごく例外的にSectorSizeの認識が接続方式によって違ったりすることがるかもしれませんが)。

 

ほんとうにメモリーが十分なのであればswapは省きたければ省いてももちろん構いません。
ただし普通はその辺りはあまりトラブルの原因にならないというのが私の持っている認識です。 -- disklessfun? 2015-12-25 (金) 20:41:27


disklessfunさま
  
掲示板整理いただいき、ありがとうございます。
  
ThinkPad付属HDDのバックアップはHDDフルで取ります。
リカバリー領域も含めていないとまっさらに戻せない理由とpartition単位だとマウント利用ができなかった経験からです。
  
さて、2つ目の返信を拝読して、間抜けなことをしていたことに気づきました。
が、実は、1つ目の返信への返信を投稿したあとからいろいろなことをやっていました。
  
1.
CFのgeometory問題のX32について、X32に使えるFlash Driveがないので、SATA仕様のT61にSATAでやったので蛇足です。
Xubuntu15.10LiveCDの試用モードから、H値S値指定なしの"fdisk /dev/sda"でpartition切りしてinstallがうまく行きました。
install後にfdiskでみるとH値S値なし、2048=1st partition、その後も64,32計算でのCylinder境界で文句言われてません。
single partition、もしくは、root+swapの2patitionが賢いと知りましたが、当初問題検証ということです。
崩すも面倒なので、これでいきます。
  
話はWinXPに移ります。機種もT43に変わります。
2.
ThinkPadのPre-Loadであれば、System partition上にあるi386等のフォルダーからWindowsXPのInstall Mediaが作れるとあったので、やってみると、USB Flash Driveに作れました。
Install Mediaで起動できたので、copyコマンドで作ったSSDに修復コンソールからFixboot等適用したりしていましたが、失敗です。
copyコマンドでの方法は、既存XPSystemをUSB Flash Driveに複製する方法が紹介されていたので流用したものです。
紹介説明でUSB Flash DriveはFAT32とあったものをNTFSにしたからでしょう。FAT32で作ってからNTFS変換すれば、あるいは完成していたかもしれません。
  
ここで、2つ目の返信を読みました。
3.
EaseUSのImageをpartitionで取り直し、XubuntuでH値S値指定なしfdiskで作った2048スタートのSSDに、SSD optimizeでpartitionリストアしました。
リストア直後は起動しませんでしたが、例のH値255→240の修正をしたところ、やっと起動しました。
問題は、Full Diskでリストアしていたからだったんですね。
ところで、このSSDは、XPが動かないので、先にXubuntuいれてしまいDual Boot状態になったのですが、こんな経緯ですから、妙な構成がまた出来上がりました。
dskprobeで見ると、MBR上は255,63なのですが、1st partiionのH値は240で、その後のXubuntu用partitionは弄っていないのでH値は元のMBRが適用される格好ですね。

>もちろんご存知でしょうが、パーティションテーブルにH値、S値を書き込んである場所があるわけではありません。
いえ、云われてみればという認識度です。確かにそうですね。
話がややこしくなりますが、Disk Imageから戻したXP環境がもうひとつ別にあります。
機種はX32(XP問題はT43とX32一号機)で、この2台は同じHDD(東芝のMK4026 40GB X32一号・二号機付属)使用で、PCそれぞれのDisk Imageをリストアしています。
PCとHDDのペアリングが元々であるX32では、HDD上のMBR/PBRともH値=240ですが、T43側のH値はMBRが255でPBRが240です。
当該X32は2006年に新古購入でシステム構成は店の追加ソフト等カストマイズが入っています。
T43は今年ヤフオク入手で付属HDDはたぶん当初からの付属で出品に際してR&Rで戻したもの。
ご説明の推測による産物だからでしょうか。でも、PBRの方はそこにいる輩の性分(PE1.0仕様)によるのですかね。
  
なんにしろ、クリーンインストールなしでStart Sector値63の回避は達成できたようです。お騒がせしました。
しかし、相談させていただいてよかったです。partition単位リストアは気づけなかったです。
  
>できればLinuxでfdiskコマンドを使い、MBMをインストールして頂いて報告頂きたいです。
申し訳ないですが、MBMは見合わせます。
複数OSやディストリも手を出すつもりですが、Fixedドライブ一台にひとつにします。
ほかは、USB Flash Driveを想定しましたが、今はPXEでシンクライアントにしようとしています。
複数のPCや環境があっても、使用者は一人なので、データはサーバーに集約との考えです。
T43も本当はLinuxで使いたいのですが、2点問題があってWinXPで使う事情なのです。
LinuxでのIntel915PMのPower Controlが対応できず、Fanが回り続けてしまう。対応策調査中です。
OS/2時代のNetscapeから使い続けているメールデータがLinuxのthunderbirdから開けなくなった。
Xubuntu14.04の当初は開けていたのですが、thunderbirdのアップデートで開けなくなり修正は先だというのでつなぎです。
  
余談です。
わたくしですが、PC歴は確かに長いですし、一般的ではないツール、情報漁りや裏ワザ好きですが、2006年以降昨年11月までX32一号機一台でWinXPでした。
(正確には、X32、NASとPalm)
2012年にHDD→SSDにして満足していたところ、SSDが壊れたのが昨年11月、その際、BackUp世代管理のヘマで復旧できなかったのがLinuxの始まりです。
Linuxな世界の言葉の障壁には苦痛を感じていますね。

ありがとうございました。
サイバー徘徊人 -- サイバー徘徊人? 2015-12-26 (土) 16:25:13


>リカバリー領域も含めていないとまっさらに戻せない理由と
ジオメトリーを変え、且つ、リカバリー領域を生かしたままにする例もあります。

 

殆どのリカバリー領域はPartition IDは7やcから違えてありますが、ファイルシステム的にはFATかNTFSです。
なのでパーティション群の位置関係を保てば、ジオメトリーや先頭位置を変えてもリカバリー領域を生かしたままにできる可能性があります。
ていうか、私は運にも恵まれたんでしょうけど、過去全てリカバリー領域は生かしてきています。
リカバリー領域のPartition IDを一時的に7とかcに変えてやればわりと普通のツールで扱うこともできるという例も多いです。
なのでリカバリー領域を生かしたままにする為という理由で、ディスク一括のバックアップに拘る必然性はありません。
余談になりますが、ディスク一括のバックアップ・レストアならWindows用のTodoBackup等を使う必要性もあまりありません。

 

あと、仮にリカバリー領域を生かせなかったとしても、どこかにディスク一括バックアップを保存しておけば、何かある度にそこからレストアすれば済む、という考え方もあるでしょう。

 

>partition単位だとマウント利用ができなかった経験からです。
これは少し毛色の違う話ですね。作業が正しければマウントでき、間違っていればマウントできないということに過ぎないでしょう。

 

>install後にfdiskでみるとH値S値なし、2048=1st partition、その後も64,32計算でのCylinder境界で文句言われてません。
これはその(新しめの)fdiskのデフォルト値がフラッシュドライブ(とかAFT)用になっているということでしょう。
(もしかすると旧タイプのHDDだとデフォ値が255,63、それ以外だと64,32になるのかもしれませんが)
Start位置が2048だと知った時点で、NANDドライブに最適化されていると受け取って殆どの場合問題ない筈です。

 

>USB Flash Driveに作れました。
今後はリカバリ領域を捨てる選択肢もあり得ますね。

 

3.の大きなパートはまだ完全には読んでません。

 

ただし1点、
>MBRが255でPBRが240です。
MBRは先頭セクタだけなので255とか240とかの数値は関係ないです。
どこかに255に関係する数値があるとすればやはりパーティションの先頭位置かサイズとしか考えられません。
色々計算してみればルールがわかるかもしれませんね(すみません今のところ自分ではやらないモードです)。
いや、後でやります。 -- disklessfun? 2015-12-26 (土) 21:13:49


ちょっと思い出しました。
diskpartが255,63や240,63を返してくる件についてですが、
以前にある作業に失敗した業者の方から、
「(Windowsの???(多分diskpartのこと)は(実際のパーティションテーブルの状態は無視して)BIOSから読み取った値を返してきていただけでした」
とメールをもらったことがあります。
WindowsのdiskpartはUNIXのfdiskと違い、ジオメトリー値を実際のパーティションテーブルから推測する機能は持っていなくて、
殆ど価値のない、BIOS?から読み取った値を返す仕様になっているようです。使い勝手の悪いツールのようです。
ただある業者さんから寄せられた情報を完全に信じているわけではありません。
サイバー徘徊人さんの「diskprobeで255から240に変更した」という話と整合性がまだとれていないと思います。まだ保留状態です。
いまさらお手数ですが、サイバー徘徊人さんにはdiskprobeでの操作をもっと詳しく教えて頂ければ有り難いと思っています。
とりあえず、diskpartの結果として上にペーストされた値を検証してみます。
Cylinders = 2432 で始まる例を取り上げてみます。
そのパートで正しいのはBytesPerSectorとDiskSizeだけです。Cylinders, TracksPerCylinder ,SectorsPerTrackは出鱈目です。
その後の3パート(3パーティションの情報)の数値を再計算して、fdisk式に書きなおしてみると、
以下のようになり、整合性がとれていることも確認できました。
64 heads, 32 sectors/track, 19077 cylinders
Start End Blocks
2 11448 11721728
11449 14309 2929664
14310 19077 4882432
これは2GバイトのCFでしょう。
diskpartが出力する、各パーティションの情報は一応信用できそうです。fdiskの出力と一致する筈です。 -- disklessfun? 2015-12-29 (火) 21:52:29


どうもです。

 

>いまさらお手数ですが、サイバー徘徊人さんにはdiskprobeでの操作をもっと詳しく教えて頂ければ有り難いと思っています。

 

diskprobe.exe ver1.0 2001/08/17
ThinkPad Preloadにc:\supportに収録されているものです。(たぶん、XPのInstall CDと同じもの)

 

操作対象SSD
・SSDに移し替えたいWinXP機(A機)HDDを取り外し、別のWinXP機(B機)にIDE-USB変換経由でUSB接続
・別のUSB-bootのXubuntu機に使用SSDをIDE接続し、partition作成(fdisk /dev/sdaでstart=2048)
・B機でEaseUS Todobackupを使ってイメージ化
・B機にSSDをUSB接続し同ソフトでリストア 
※DisktoDiskのクローニングでもよかったのですが、リストア起動を確認できるbackup作成も同時しておきたいのでこの方法でした。

 

作成した直後のSSDをA機にIDE接続した状態では、post後、画面左上端でカーサーが点滅する状態で停止
その状態のSSDをIDE-USB変換でB機にUSB接続して以下の操作です。

 

diskprobeの実行
DOSコマンドプロントで、>diskprobe
この時点でdiskprobeが認識したPysicalDriveは、0と1の2つ
Logical Volumeは、C:〜I: (PysicalDrive0-C:〜E:、PysicalDrive1-F:〜I:)
※PysicalDrive0には、IDE HDD=C:の他、仮想CD/DVDが2ドライブ

 

手順
1.対象SSDでC:となる、Logical Volumeリスト上F:をダブルクリックでHandle対象としてSet Active
2.メニューバーのSectors→readを選択し、Starting Sector=0,Number of sectors=1でセクター読み込み
3.メニューバーのView→NTFS BootSectorを選択
4.表示された画面のBios Parameter Block Information側3列の真ん中、下から3項目Headsの値が問題箇所
5.値255を240に上書き
6.メニューバー下アイコン左から4番目Write to diskを選択
※二重三重に書き込み警告が出ますが、書き込みOKを選択すればopen時にRead only設定でも書き込まれます。

 

確か、上記操作だったと思います。ただ、最終はSSDのオープンをPysicalDriveからする以下手順だったかもです。
1.PysicalDriveリスト上PysicalDrive1をダブルクリックでHandle対象としてSet Active
2.メニューバーのSectors→readを選択し、Starting Sector=0,Number of sectors=1でセクター読み込み
3.メニューバーのView→Partition tabeを選択
4.表示画面の左下枠Relative Sectorの値欄隣のgoボタンを選択(ここに1st partitionのstart Sectorが表示)
5.メニューバーのView→NTFS BootSectorを選択
6.表示された画面のBios Parameter Block Information側3列の真ん中、下から3項目Headsの値が問題箇所
7.値255を240に上書き
8.メニューバー下アイコン左から4番目Write to diskを選択
※二重三重に書き込み警告が出ますが、書き込みOKを選択すればopen時にRead only設定でも書き込まれます。

 

今試したら、
PysicalDriveをSet Activeし、
Sector readで、Starting Sector=2048,Number of sectors=1
View→NTFS BootSctor
にしても、目的のBios Parameter Block Informationに入ります。

 
 

ところで、今見て気づいたのですが、出来上がったSSDはGRUB2でマルチブートになってますが、どこでセレクター表示するようスティールするんですかね。
ブートプロセスって、ほんと難解です。

 
 

なにかの手がかりになりますでしょうか。
サイバー徘徊人 -- サーバー徘徊人? 2015-12-31 (木) 00:28:43


まだ全部読んでませんが、255→240と書き換えた対象が(MBRの筈はないので)何なのか知りたかったのですが、PBRのNTFS BootSectorの中らしいということがわかりました。これなら筋がとおっていてすごく納得です。この、修正が必要な現象自体はTodoBackupの(厳し目ですが)バグだと分類できると思います。まだこれから詳しく読みます。 -- disklessfun? 2015-12-31 (木) 00:55:14


遅くなってすみません。
お忙しいところ丁寧なご報告ありがとうございます。
せっかく寄せて頂いた情報です。他の方にも出来るだけ役立ててもらえるように補足を書かせて頂きます。

 

12月31日に書いたように、
サイバー徘徊人さんがパーティション単位でバックアップし、事前にSSDに最適化状態で作成したパーティションに対して
SSD最適化オプション付きでレストアしたところ
そのままでは使用できず、修復作業をおこなう必要があった件については、
修復対象が、サイバー徘徊人さんが自己申告されていたMBRではなく、実は当該NTFSパーティションの
PBRであったことが12月31日に頂いた詳細なご報告で判明しました。

 

この修復作業は「NTFSのPBR修復」とか「NTFSのブートセクタ修復」と銘打って良いものの筈です。
実はそれらのキーワードで検索すると当サイトのTips: 強力な(?)NTFSのPBR修復法が検索結果の上位に表示されます。
そのページでは、NTFSのPBR修復法として2種類の方法を紹介しています。
私が最初に実践した手法は、私が特にWindowsに詳しいわけでもないので、UNIX系ユーザの知識・技術で思い付く手法となっています。
次に実践した手法は、当サイトの読者に頂いた情報を元にしており、それをUNIX系ユーザの知識・技術で具体化したものとなっています。
今回サーバー徘徊人さんのご報告にあった手法は、私にとってはNTFSのブートセクタ修復に関する第3の手法と呼べるものです。
実は以前から、MicrosoftとNDAを結んだ商用ソフトは同等の機能を(当然)持っていると思ってきました。
しかしdiskpartにそのような機能があったとは知りませんでした(多分Windowsに詳しい人からすれば、ええっ知らなかったの?と驚かれるようなレベルの話でしょうけど)。
多分diskpartを用いるこの手法は、PBRが完全に壊れていては適用できなくて、たとえ内包する数値は間違っていても、とりあえずNTFSのPBRだと判別できる状態でないと適用できないと思われます。でもMicrosoft謹製の手法だけに、レストア先でパーティションのジオメトリー値をバックアップ元と違えても、新環境に合ったPBRを“作り出せる”という他の2つの手法にはない大きな長所を持っており、私も今回マスターしておくべきだと思っています。
この“第3の手法”を用いずに他の手法を使って同じ結果を得ようとすると、正しいPBRを得る為に当該パーティションの新たなバックアップを取る必要がある等、時間や資源を相当余計に食ううことになってしまいます。

 

ただし、今回サイバー徘徊人さんがPBRの修復をおこなわなければならなくなったのは、ThinkPadだからだと思います。
言い換えると「少し珍しい種類のPCだから」だと思います。
殆どのPCでは、今回のように商用ソフトでバックアップ&レストアをおこなったのに追加の修復作業が必要なんて事態にはならないと思います。商用ソフトは、少なくとも大多数のPCではそうならないように動作確認がおこなわれている筈です。

 

あと、今回は事前にSSDに最適化したパーティションテーブルを作成しておいてからレストアをおこなったわけですが、
(先日書いたように最近のfdiskはデフォルトでSSDやAFTに最適化したパーティションテーブルを作成します。)
TodoBackup等商用ソフトはパーティションテーブルの修正機能も持っていますので、少なくとも、レストア先に1パーティションしかない場合には、
事前にSSDに最適化したパーティションテーブルを作っておかなくても大丈夫だと思います。
ただし、詳細は省きますが、少なくともTodoBackupのパーティションテーブル修復機能は他に問題を持っていますので、
私なんかはTodoBackupまかせにすることは今後も暫くはないと思います。
事前にきっちりとパーティションテーブルを作成しておき、且つレストア後に、TodoBackup(等)によって不適切にパーティションテーブルが修正されていないか確認する、というプロセスを必ず踏むと思います。 -- disklessfun? 2016-01-03 (日) 23:18:29


間違いではないか。 Edit

ゆうた? (2014-03-05 (水) 10:42:05)

http://wikiwiki.jp/disklessfun/?exec-cmd

/etc/rc.d/haltスクリプトの先頭あたりに(ヘッダーコメントの直後あたりに)

/etc/init.d/haltスクリプトが呼び出されます。
と矛盾しているようですが、いかがでしょうか。


  • まずお断りしておきますが、あの文章を書いたのは7年以上前なので、最新のRedHat系だと仕様が変更されている可能性があると思います。
    さて本題に入ります。/etc/rc.d/haltと/etc/init.d/haltはリンクされていて実体は同じなんです。これは少なくとも当時当然知っておくべき知識でしたので、既に知っている人は躊躇なく受け入れ、まだ知らない人は最初一瞬「あれっ」と思うものの、「もしかして実体は同じってこと?」と気づいてくれることを狙った記述です。 -- disklessfun? 2014-03-05 (水) 23:44:43

Minimum Ubuntu 12.04 Edit

Hi.Yamamor? (2012-07-07 (土) 23:43:07)

管理人様、こんにちは。
こちらからかなり流用してMinimum Ubuntu 12.04版つくってみました。
ただし、chrootしない方式はあきらめました。
詳細は以下のウェブページをご覧になってみてください。
http://www.geocities.jp/bay3897/linux/min-ubuntu.html
(旧URL)http://www.geocities.co.jp/SiliconValley-Bay/3897/linux/min-ubuntu.html
よろしくお願いします。


  • ご苦労様です。そしてありがとうございます。その手法の方が今後のメンテナンスのことも考えると好ましい可能性が高いと思います。自前でtmpfsを確保してchrootという手法はある意味「古典的」で私もMinimum Ubuntu以外の過去公開したブツでは全てその手法を用いています。Minimum Ubuntuではmountallをフォローしていきたいと当初は思っていたのですが、10.11で「あれっ?うまくいかないな。もう、これ以上時間かけたくないや」となって、放置モードに陥っていました。
    さて、どのようにページをリンクさせましょうか。「本プロジェクトはYamamorさんのページにの引き継がれました」と書きたいところですが(笑) -- disklessfun? 2012-07-08 (日) 22:32:25
  • お返事ありがとうございます。リンクして頂けるなら http://www.geocities.jp/bay3897/linux/min-ubuntu.html でお願いします。 ところで、使用目的は個々人で結構異なり、必要なソフトウェアも様々です。 管理人さんはじめ多くの方が色々なバリエーションを作って公開されたらよいのになあと思います。 話は変わりますが、昨今の2TB以上のHDDを使うことを考えると、素直にGPTとGRUB2を使うのがよいだろうと思っています。それに対応したMinimum Ubuntuをそのうち作りたいなあと思ってます。 -- Hi.Yamamor? 2012-07-14 (土) 17:14:24

拡張領域のEPBRとMBMの使用法について Edit

sb? (2012-05-06 (日) 12:38:07)

はじめまして。管理人様
以前からこちらの情報を参考にさせて頂いておりました。
おかげさまで自分の環境においてMBMによるマルチブート環境を
構築することができました。
このサイトの「ハードディスク操作のまとめ」のページにおいて
疑問が生じ、それ以降ネットで調べようとしてきましたが、
解消することがなかったのでここに書かせていただきます。
お時間があった時にでも返答してくださるとありがたいです。

  • H 64 -S 32のオプションを使いfdiskで領域を必ずシリンダ先頭から
    始まるように作成した場合の論理領域のことですが、
    拡張領域の先頭部分で論理領域より前には1セクタ分のEPBRが
    入るはずであり、さらに2つ以上の論理領域を拡張領域に作成しても
    各論理領域が入る入れ子の拡張領域の先頭にもEPBRが入るはずです。
    すなわち、各領域を必ずシリンダ先頭にするには拡張領域の先頭
    と1番目の論理領域の先頭は1つシリンダをずらし、
    かつ複数の論理領域があると、その間にもEPBRを含んだ
    1シリンダ分のずれをいれないとまずいような気がするのですが
    この認識は誤りでしょうか?
    実際fdiskではそんなの関係なく連続で論理領域を作成できるかのように
    動作していますが、それは見た目だけで、
    実際のPBR(EPBRではない)はシリンダ戦闘でなく1トラック分ずれて
    始まっているのでしょうか。
    また、もうひとつ質問があるのです。
    fdiskでは -H 64 -S 32で作成したのですが、
    MBMでF10でテーブルを表示させた時、MBMはH 255 S 63 として表示します。
    その関係なのかしょっちゅう「シリンダ境界でない」という
    メッセージを出すのですが、fdiskの -H 64 -S 32のオプションのように
    MBMにヘッダ数セクタ数を明示的に指定する方法はあるのでしょうか。
    どちらもネットで個人的に調べた限りでは答えが見つかりませんでした。
    EPBRについては、拡張領域にたった1つの論理領域を入れる場合に限っては、
    先頭パーティションにのみ適用される「ヘッダルール」すなわち原則領域
    はシリンダ境界だが、MBR,EPBRがある1つ目だけはトラック1つ分ずらす
    (XPまでの先頭領域が63セクタからスタート)が適用されるという表記は
    ありましたが、複数論理領域において具体的に数字をあげて説明し、かつ
    多くの場合で複数の論理領域が連続して生成できることとの整合性を
    説明しているサイトはありませんでした。

  • まだじっくりと読んではないのですが、とりあえず簡単に答えさせて頂きます。
    多分今までどこにも書いたことがないのですが、私は、H64 S32にした場合は、最初の基本領域の場合と同じく、拡張領域の最初の論理領域も、先頭シリンダから詰めて確保せずに、2番目のシリンダから確保するようにしています。かなり以前から当然のようにそうしているので、他人さんに知らせるのを忘れていたように思います。
    MBMの件は詳しく調べていませんが、MBMは現在ソースが公開されているので、必要と感じればカスタマイズすればいいのではないでしょうか。私はMBMの区画エディタは全く使わないし、あんなコンパクトなエディタじゃ心元ないので使いたくありません。なのでこれ以上は説明できないと思います。 -- disklessfun? 2012-05-07 (月) 01:44:03
  • 返答して下さりありがとうございます。最初の論理領域はずらして作成されているのですね。納得しました。MBMについてもやはりその解決方法なのですね。これも納得しました。文章の意味がわかりずらいかもしれませんので補足しますと疑問に思っている残りは複数の論理領域を拡張領域に入れた場合です。fdiskでは前の論理領域終了セクタの次のセクタから次の論理領域を作成できている(もしくはできているように見える)のですが、本来は1つ目の論理領域の後ろには入れ子のように新しい拡張領域が配置されて、その中に2番目の論理領域が作成されるはずです。その場合入れ子の拡張領域の先頭にEPBRが配置されているはずなので、1番目の論理領域と2番目の論理領域の間にはそのEPBRの分の隙間が必要なのではというのが疑問です。とにもかくにも早々に返事を書いていただきまことにありがとうございました。 -- sb? 2012-05-07 (月) 07:24:28
  • 何度も失礼致します。新しいことがわかりましたのでご報告致します。今まで-H64 -S32でfdiskを起動し、uでセクタ表示にしてから切ってましたが、テスト用にハードディスクを用意し、シリンダ表示で試しにシリンダ数を指定して論理領域を切ってからfdisk -luをしてみると、見事に全ての論理領域の開始セクタが前の論理領域の終了セクタと32セクタすなわち1ヘッダ分ずれて作成されました。シリンダ表示で切ると、自動的にEPBRの分を開けて1ヘッダ分ずらしてくれているようです。この挙動は納得できる物でした。すると、セクタ表示で開始セクタ指定で論理領域を切ったとき、セクタを空けずに切れたように見えたのはfdiskの誤作動か何かかもしれません。実は前にそれを切った際に使用したfdiskは旧環境のもので、それはすでに消してしまっているのでfdiskのバージョン等の情報や再検証ができません。現在の1ヘッダずらして作ってくれたのはutil-linux-ng-2.17.2-12.4.el6.i686に含まれているfdiskです。なんとも締まらない話になってしまい申し訳ありませんが一応のご報告です。失礼致しました。 -- sb? 2012-05-10 (木) 18:59:56
  • 中途半端な回答のまま放置していてすみませんでした。今回はいわば、old.extract-backuped-pbr.shの34行目に表されている仕様を確認されたみたいなものですね。
    sbさんはお気づきでしょうが、厳密に言えば、私はSSDで論理パーティションを確保する際の理想的な手法を確認していません。 -- disklessfun? 2012-05-11 (金) 02:49:03
  • 管理人様こちらの不躾な質問に応対していただきありがとうございました。質問する際の礼儀である自分の状況を詳しく説明するというということすら旧環境を残さなかったばかりに今やできなくなっているという体たらくになってしまって申し訳ありません。本来なら前にセクタを連続して切ったように見えたディスクを今のfdiskで見て、それでも連続セクタに見えているのかそれとも新しいfdiskではちゃんとEPBRの分空いているのかを検証してお知らせすべきで、それがなければ旧fdiskの誤作動がどのようなものかはっきりわかりません。しかし旧環境のパーティションテーブルの情報はfdiskの出力の該当部分のテキストだけしか残っていない状況でした。それを元に質問をしていました。そのため再検証がこれ以上できず申し訳ありません。(旧環境はcentos4を元にしていたのですが、長年自分勝手にいろんなものをyum使わず入れまっくていたので自分でもパッケージを把握できなくなっていためちゃくちゃなものになってしまったもので、今となっては再現できないものでした。恥ずかしい限りです。)これからはGPTシステムでGUIDによる認識が広まってしまい、その場合には当然連続して領域確保ができるようになるため、EPBRのことを気にするような人間はさらに減っていくようになってしまうでしょうから今回のような情報をネットで見ることもほとんどなくなってしまうかもしれません。そういう点でも今回の管理人様のお答えは自分にとって大変勉強になりました。本当にありがとうございました。 -- sb? 2012-05-11 (金) 08:17:20
  • 正直なところ以前から私は「SSDは(今のところ)どうせ基本パーティションのみで利用するから、(論理パーティションに理想的に適合しなくても)ままいいや」と思っていました。
    あと、ハードディスクに関しては将来、キャッシュに不揮発次世代メモリが使われるようになって、論理セクタサイズがいくらであってもパフォーマンスが変わらないのが当たり前にになって欲しいと思っています。もっとも数年後は現在のようなレガシーな仕様への対応がそもそも不必要になっている可能性も大ですが。 -- disklessfun? 2012-05-18 (金) 01:54:33

スピードメーター Edit

ごん? (2012-02-19 (日) 23:21:21)

こんばんは。管理人様
スピ−メーターのパルス信号で調べていましたらここにたどりつきました。
トヨタのアリストなんですが純正の海外用260キロをとりつけたのですが純正の180キロメーターと同じ動きしかしません。
車速パルス変換器をつくればいけると思うのですが・・・
宜しければご指導お願いします。

マイコンの知識はゼロです。
このサイトを見て興味が出てきて初めてみようと思います。
おすすめな、PICライターなどありますか?


  • 「純正の180キロメーターと同じ動きしかしません。」 ここはどういう意味でしょうか。180km/h以内なら同じ動きをするのが正常だと思いますが -- disklessfun? 2012-02-20 (月) 02:21:54
  • そうそうのお返事有難うございます。 -- ごん? 2012-02-20 (月) 08:16:06
  • 180メーターの上に260の表示のシールを張ったみたいな状態です。60キロですと120キロのところに針がくる感じです。 -- ごん? 2012-02-20 (月) 08:21:32
  • その症状は、海外用メータが、国内用とは、対応する「車速パルスの倍数」が異なることを示しています。「60キロですと120キロ」が正しいなら、1/2にパルスを分周する分周機を中間に挟めば解決します。念のためお聞きしますが、海外用メータ自体に何か「設定スイッチ」みたいなものはないですか?「設定スイッチ」で対応するパルスの倍数が変更できるのなら、それが最も簡単に解決できる手段です。 「設定スイッチ」がないのなら分周機を作ってみて下さい。このページをよく読んでから、またわからないところを質問して下さい。 -- disklessfun? 2012-02-20 (月) 21:52:32
  • とりあえず、AKI−PICプログラマー Ver.4完成版を購入しました。マイコンはどのような物を用意すればいいですか?配線図あるとうれしいのですが -- ごん? 2012-02-20 (月) 23:18:57
  • 買っちゃいましたか。先のページで紹介しているデジタルスピードメーターは分周機の機能を含んでいます。購入時にマイコンに書きこまれているファームウェアを修正する必要がありませんから、実はPICライターを持ってなくても分周機を手に入れることができます。まあ、とにかく先のページを読んで下さい。入出力回路の回路図があります。またデジタルスピードメーターの回路図も参考になります。 -- disklessfun? 2012-02-20 (月) 23:24:49
  • こんばんは、買っちゃいました(^。^;)あったらいろいろとできると思いまして。がんばって作りたいと思います。http://www.asahi-net.or.jp/~ge8w-ngkw/mente/mente089.htmlこのような感じの物を作ろうと思っています。 -- ごん? 2012-02-21 (火) 22:04:59
  • 今回以降もいろいろとマイコンを活用して頂きたいと思います。ところで初めての方にお薦めするのはやはりデジタルスピードメーターです。部品も基板も揃っていますので。
    また、先日は、こっちを作られた方もいました。 -- 2012-02-22 (水) 02:28:22
  • はい!ぼちぼち勉強していきます。できれば、車速パルス分周機の配線図をいただけるとありがたいです。 -- ごん? 2012-02-23 (木) 17:15:16
  • 回路図を追加しました。 -- disklessfun? 2012-03-08 (木) 22:22:14

pic燃費計 Edit

4989? (2011-12-14 (水) 22:25:27)

こんばんは。管理人様
エコ時代の今日、ネット上で自作燃費計を見るのですがプログラムが
チンプンカンプンです。
そこで、お時間があるときにでも燃費計(初心者にわかる)を
取り上げて頂けませんでしょうか?
ご検討よろしくお願いいたします。

失礼します。


  • 具体的に4989されているプログラムを示して頂きたいです。 -- disklessfun? 2011-12-15 (木) 01:05:55
  • マイコンによる燃費計算というのは基本的に「ある係数×インジェクションパルス・カウント数÷車速パルス・カウント数」で、回転数計なんかより簡単なプログラムだと思いますよ -- disklessfun? 2011-12-15 (木) 21:32:41
  • 体調を崩しパソコンみれなくてご迷惑おかけいたしました。すみませんでした。 -- 4989? 2012-04-16 (月) 09:05:48
  • 2個の信号をカウントしてLCD表示させるのにお勧めのPICはなにでしょうか?まったくの初心者です。 -- 4989? 2012-04-16 (月) 09:08:21
  • 実際には18ピン以上のPICなら全て使えると思いますが、理想的なスペックを挙げると、「シュミットトリガー入力の外部割込みポートが2つ以上あること」となります。近日中に秋月で販売しているものを確認しておきます。 -- disklessfun? 2012-04-17 (火) 23:50:55
  • 管理人様こんにちは。お返事まことにありがとうございます。プログラムはアセンブラ語とC言語どちらが取り掛かりやすいでしょうか? -- 4989? 2012-04-19 (木) 18:39:18
  • 調べたところ、PIC16Fシリーズには「シュミットトリガー入力の外部割込みポートが2つ以上あること」を満たすものはないようです。つまりPIC18Fシリーズを選択する必要があります。PIC18Fシリーズは標準のプログラミング言語がC言語(MPLAB C18)ですし、4989さんの今回の目的の場合、アセンブラである必要もないので、C言語(MPLAB C18)を選択するのが適当です。 -- disklessfun? 2012-04-21 (土) 01:24:22
  • 現在、秋月で販売中のPIC18Fシリーズの中では下記の理由から、PIC18F1320, PIC18F2550, PIC18F2455, PIC18F2523, PIC18F2320, PIC18F2620, PIC18F2580, PIC18F2321, PIC18F2431, PIC18F2480, PIC18F2553, PIC18F258, PIC18F248 あたりが適当です。値段とか、スペックとか、他の人が使っているか、などの条件を考慮して選んで下さい。
    (1)標準的なキャラクタ液晶をPICから制御するには、最低限でもPIC側で7ピンを費やすので、少なくとも十数ピン以上を持つチップが必要(PIC18Fシリーズなら満たす) (2)標準的なキャラクタ液晶をPICから制御するには、PICを5Vで動作させるのことが標準。つまりPIC18Fシリーズのうち、型番にKとかJが付いたものは避けるべき (3)2系統の入力パルスを(標準的な方法で)並行してカウントするには、外部割込みが2系統以上必要。(ピン配置図にINT0とINT1がある必要がある。PIC18Fシリーズなら満たす) (4)今後、同一型番を他用途で使うことも考え、出来れば、安くて機能豊富なものが好ましい(フラッシュ容量不足でPIC18F1220, PIC18F2221, PIC18F1230は好ましくない、PIC18F252,242は古めかしいので好ましくない) (5)40ピンのチップはピン数が余りすぎるので、せいぜい28ピンくらいまでにする (6)DIPパッケージ -- disklessfun? 2012-04-22 (日) 23:24:45
  • 管理人様 毎度ご丁寧に詳しく教えてくださり本当にありがとうございます。管理人様がこの中でお勧めなのはどれですか?自分では選べません、、、 -- 4989? 2012-04-23 (月) 14:04:36
  • PICライタは何を予定していますか? -- disklessfun? 2012-04-25 (水) 01:19:23
  • お返事遅くなり申し訳御座いません。ライタは”pickit 3" -- 4989? 2012-05-05 (土) 11:57:38
  • すみません途中でエンターキーを押してしまいました。 -- 4989? 2012-05-05 (土) 11:59:13
  • pickit 3ということは、純正ですから、書き込みにおいては、どのチップを選んでもいいということですね。web上にサンプルの多いチップを探しましょう。
    ところで、インジェクションパルスはカウント数を数えるのではなく、Hi(もしくはLow)の積算時間を数える必要があるようです。CCP計測した値(時間)を積算していく必要があると思います。当初書いた仕組みよりは少し複雑なものになります。 -- disklessfun? 2012-05-07 (月) 01:53:48
  • 前言訂正:確かに、インジェクターを直接制御する電圧ならHiもしくはLowの積算時間を数える必要があるハズなんですが、実際はどうなのか、ちょい古なトヨタ車で確かめてみたところ、ECUの出力ポートでのインジェクター制御用のパルスは、単純に「燃料流量大=高い周波数」「燃料流量小=低い周波数」となっているように思えました。4気筒エンジンの内の1気筒のインジェクションパルスですが、アイドリング状態で11Hz、8割くらい踏んだ状態で49Hzでした。この状況は、カウント数が燃料消費量に比例するという当初の予想と矛盾しません。この予想が正しいのなら、燃費はやはり「ある係数×インジェクションパルス・カウント数÷車速パルス・カウント数」で求めることができるということになります。 -- disklessfun? 2012-06-08 (金) 23:02:00
  • もう、ここを見てないのかもしれませんが、4989さんがHD447800互換・キャラクタ液晶、PIC18F2420、割り込み入力2ポートのハードをご自身で設計されるなら、それに合わせたファームウェアをご提供してもいいですよ。最近のこちとらはハード作成に対する敷居が高いのですが、パソコン机の前だけで作業が済んでしまうファームウェアの作成なら出来を保証するわけではないですが、ご要望をいただければやりますよ。 -- disklessfun? 2012-06-08 (金) 23:12:54
  • 管理人様、ご無沙汰いたして申し訳ございません。少し考える時間を下さいませ。それとファームウェア有償でしょうか? -- 4989? 2012-06-15 (金) 21:58:01
  • 管理人様、キャラクタ液晶は[SC1602BSLB(-XA-GB-K)]ではいけませんか? -- 4989? 2012-06-15 (金) 22:15:05
  • 無償です。有償=納期あり(or厳守)ということになり、それはとても無理です。私の趣味として燃費計プログラムを経験してみるということが目的です。「ある係数×インジェクションパルス・カウント数÷車速パルス・カウント数」ならかなり簡単ですし。
    その場合順番としては、(1)4989さんからメールで回路図を送って頂く (2)回路図の手直しが必要ならそれが終わった後に私から液晶動作確認プログラムをメールで送る (3)動作確認OKなら次にスイッチ動作確認プログラムを送る (4)動作確認OKなら次にインジェクションパルス確認(周波数メータ)プログラムを送る (5)動作確認OKなら次に車速パルス確認(周波数メータ)プログラムを送る (6)動作確認OKなら燃費計プログラムを送るーーてな手順になると思います。
    その1602なんちゃらはHD447800互換です。
    いずれにしても実施するなら4989さんご自身もかなり電子工作にはまらないと(勉強しないと)完成は遠いと思います。 -- disklessfun? 2012-06-15 (金) 23:22:38
  • 管理人様、いろいろご迷惑かけております、すみません。書き込み器はpickit 3を予定してたのですが知り合いからRCDライタなる物を貰いまして、マイコンを18ピンマイコンへの変更はできないでしょうか?ご無理をいい申し訳ございません。 -- 4989? 2012-06-16 (土) 10:04:02
  • 現状のお手持ちのRCDライタは18ピンのソケットしか付いていないのかもしれませんが、RCDライタは本来18ピンまでのPICにしか書き込めないわけではありません。このページを読んで下さい。ソケットを追加したり交換したり、場合によってはICSPケーブルを追加したり一部の抵抗の交換が必要でしょう。 -- disklessfun? 2012-06-16 (土) 16:43:39
  • リンクページとても参考になりました。管理人様の記事(痒いところに手が届く)みたいで好きです。ありがとうございます。 -- 4989? 2012-06-16 (土) 18:31:11
  • 質問です、インジェクターパルスカウント方式だと厳密な数値が出ないような気がするのですが、アイドリング時とアクセル全開時だと噴射時間が違いますからネット上にインジェクター噴射量があります。インジェクターは1分間に噴射できる燃料(300cc/minなど書かれていますのでパルス幅の時間を測定する方が正確な数値が得られるのでは?底辺の者が生意気な事言い申し訳ございませんでした。 -- 4989? 2012-06-16 (土) 18:42:06
  • このあたりの事情、私も疑問に感じているところです。「燃費計を実際に作ってみたら確認できるだろう」と考えています。繰り返しになりますが、私の手元のトヨタ車ではアクセル開度大=ECU出口でのインジェクションパルス周波数高、アクセル開度小=周波数低です。しかしこれは言うまでもなく周波数と燃料噴射量の相関関係としては特殊です。普通はありえない相関関係なので中間に何らかの未知の機構が存在するものと考えられます。またこのような状況ですと当然、メーカーによってインジェクションパルスの仕様が大きく異なることも考えられます。もしかするとメーカーによってはインジェクションパルスの周波数は一定でHi,Lowの比率だけがアクセル開度によって変化する仕様なのかもしれません。この仕様の場合はもちろんインジェクションパルスのカウント数は何の役にも立たず、パルス幅の時間を測る必要があります。
    ということでまだ確たることは言えません。4989さんの車の仕様によって話は全然違ってくると思います。
    現時点で一つ言えることは、Aという車種でカウント数で燃料消費量を測ることができるのなら、そのAという車種ではパルス幅の積算で燃料消費量を測ることはできないということです。逆にBという車種でパルス幅の積算で燃料消費量を測ることができるのなら、そのBという車種でカウント数で燃料消費量を測ることはできないということです。かならず一車種につき一方式に限られる筈です。使用できる計測方式は車種によって決まっている筈なので精度の良し悪しで選べないと思います。
    わかってるように書いていますが、私は実際の詳しい事情は全く知りません。
    参考として知りたいので、4989さんが見つけた情報のURLを教えて頂けませんか?それと、4989さんの車種も教えて下さい? -- disklessfun? 2012-06-16 (土) 20:24:07
  • こんばんは。こちらとかこちらこちらも私の車種はホンダライフです。 -- 4989? 2012-06-16 (土) 20:44:02
  • 数時間前に3個目のURLだけ見て放置していました。さっき1個目のURLを見た瞬間に目からウロコが落ちました。「インジェクションパルスの周波数は回転数に比例する」ということを考えていませんでした。燃料噴射のことを、キャブレターのベンチュリを電子化した程度のものだと誤解していました。燃料噴射というものは、筒内直接噴射でなくても、きっちりとタイミングを測って噴射するものであることを今更ながら知りました。これで合点しました。確かにおかしいとは思っていたんです。「アイドリングと8割方全開との燃料消費率の違いが5倍未満というのは小さすぎる!!」と。前レスは全面撤回します。多分、全メーカー・全車種、同様の仕様なのだと思います。ご心配をおかけしました。
    じゃあ、よろしければ初めて下さい。 -- disklessfun? 2012-06-16 (土) 23:46:41
  • おはようございます。ハードウェアの準備にお時間を下さい準備整い次第またご連絡いたします。失礼します。 -- 4989? 2012-06-17 (日) 10:01:08
  • 別の線があります。ビット・トレード・ワンのデジタルスピードメータの回路を子細に検討したところ、(車速パルスが5Vの車種なら)ほんの僅かなハード改造(一部の抵抗を外したり、ジャンパ線を追加したり)するだけで、燃費計に仕立て直すことができることに気づきました。こちらだと液晶表示ではなく7セグLED表示になります。 -- disklessfun? 2012-06-17 (日) 10:54:39
  • ちょっと(2,3週間)待って頂ければ、私単独で、ビット・トレード・ワンのデジタルスピードメータを改造した燃費計を作り上げられると思います。当方のトヨタ車で動作確認後、写真や改造方法等を詳細に公開しますから、それを4989さんが真似して作るというのはどうでしょうか?ホンダライフで使う為にはもしかすると車速パルス入力系に電圧変換回路を追加する必要があるかもしれません。あと、私が作るものは、あくまで一度のACC・ONの間に、スイッチ位置Aで瞬間燃費表示、スイッチ位置Bで燃費計測開始=距離表示開始、スイッチ位置Cで燃費計測終了=計測区間での燃費表示――といった仕様になると思います。 -- disklessfun? 2012-06-17 (日) 11:08:14
  • もしかすると回路の都合上、瞬間燃費は実際には瞬間と言えるようなものではなくて「わりと直近の燃費」みたいなものになるかもしれません。そもそも最初のバージョンではその機能も省略する可能性が高いと思います。 -- disklessfun? 2012-06-17 (日) 11:11:50
  • 管理人様、いろいろご検討頂きありがとうございます。ご提示の案に賛成いたします。ですが、LCD表示に改造して頂きたいのと、使用燃料量が分かる様にプログラム追加をして頂けると非常に嬉しいです。ここまでご親切な対応感謝申し上げます。 -- 4989? 2012-06-17 (日) 12:09:54
  • 先日も書きましたが、私にとって「ハードの作業=どっちかというと面倒」、「ソフトの作業=気楽」という意識がありますので、4989さんの選択によらず私独自に、ビット・トレード・ワンのデジタルスピードメータをハード的に小改造、ソフト的には大改造した燃費計を作りたいと思います。そこに達すれば、4989さんの方針が変わるかもしれませんし、私の方針(=気分)も変わるかもしれません。私としてはまずはハードの作業が楽なことをやりたいんですよ。 -- disklessfun? 2012-06-17 (日) 12:19:58
  • 了解いたしました。管理人さんお願いがあります。自分でLCD改造する時プログラム変更時アドバイス頂けますか? -- 4989? 2012-06-17 (日) 12:23:23
  • もちろんです。 -- disklessfun? 2012-06-17 (日) 13:19:19
  • すみまません。まだできていません。 ハードについてはだいたいこのよう( file自動車用デジタルスピードメータ→燃費計化_改造内容.txt )に作りました。当初は先にソフトを作ろうかと思っていたのですが、ソフトはまだ全く手付かずです。7月7日の写真1 7月7日の写真2。右側は以前から弄っていたデジタルスピードメータ。左側は燃費計用のハード改造を施したデジタルスピードメータ。左側は直視式にする予定。右側は反射式にする予定。-- disklessfun? 2012-07-08 (日) 22:38:19
  • ハードはフードを除いて完成しました。 -- disklessfun? 2012-07-10 (火) 00:27:28
  • 7月9日の写真1 7月9日の写真2 7月9日の写真3。左側は燃費計用のハード改造を施したデジタルスピードメータ(直視式)。右側は以前から使っていたデジタルスピードメータ(反射式。再度、基板を連結しました。開口部は今のところ最小限の大きさです)。 -- disklessfun? 2012-07-10 (火) 22:57:55
  • 管理人様、お疲れ様でございます。底辺のものが失礼ですが良い感じに出来上がっていますね!こういう事を「チャチャット」できる所がすごいです.また寄らせて頂きます。 -- 4989? 2012-07-11 (水) 18:14:48
  • 現在の反射式(中身は普通のデジタルスピードメータ) 直射式(中身は燃費計)。直射式のフードの上・側面は厚紙で作った仮のものです。まだ燃費計のソフトは作っていません。今回写真をアップしたハードについても、前回アップしてから1週後の時点と殆ど変化していません。すみません。 -- disklessfun? 2012-08-20 (月) 06:52:32
  • 大変長らくおまたせしました。プログラムを作りました。ほぼ「??改造内容.txt」の末尾に記述した仕様どおりです。 -- disklessfun? 2013-02-08 (金) 23:27:58
  • こちらにソースを掲載しました。ご利用下さい。また、以前お伝えしたように、質問等も遠慮なくお寄せ下さい。 -- disklessfun? 2013-02-10 (日) 14:08:26

RAID1マシンのブート環境 Edit

kita1? (2011-11-17 (木) 12:24:51)

管理人様、初めまして、kita1と申します
ここでいう、MBMを使った二段階ブートはその解りやすさ
保守性のよさに賛同して、自分の使用するWindowsPCには
全て導入し、別パーティションにSystemRescueCDやmemtest等を入れて
Winパーティションの保守点検に使用しています。
ところで、自宅にはRedHat9のサーバがあるのですが
/bootと/の二つのパーティションをソフトウェアRAID1で運用しています
そろそろ新しいサーバ(centOS6の予定)を構築しておこうかと思うのですが
WindowsPCと同じ様に保守用のパーティションとのマルチブートにしようかと思うのですが
・MBMからRAIDデバイスをブートできない
・GrubはRAIDデバイスのPBRに置けない
・従ってMBRのブートローダとしてはGrub使うしかない
という認識で合っているでしょうか。
サーバはシングルブートのままで保守用にはMBMでマルチブートな専用のUSBスティックでも
作っておくのが最もスマートな方法なのかなとも思ってしまいます
なにか御意見あったらよろしくお願いします


・MBMからRAIDデバイスをブートできない
MBMはPBRのプログラムを呼び出すだけなので、別にそんなことはありません。grub-legacyの時代なら私もブートさせてました。ただし現在は以下に記述したようなgrub2側の問題で実施する意味も機会もなくなっています。

・GrubはRAIDデバイスのPBRに置けない
これはそのとおりです。
raid1のPBRは現在空いています。grub-legacyの時代はここにローダを置いて何の問題もありませんでした。しかし現在はgrub2のセットアップコマンドがセットアップしないので駄目だということになっています(私はこの部分の仕様についてはgrub2のソースの確認はおこなっていません。環境によってはセットアップに成功する可能性もあります)。

・従ってMBRのブートローダとしてはGrub使うしかない
いいえ、そんなことはありません。簡単に言って以下の2つのうち、どちらかの手法を用いれば/をraid1にした環境でもgrub2をMBRにセットアップすることを避けることができます。
(1)grub2をセットアップする為のパーティションをraidパーティション以外に別に設ける
(2)/bootはraidにしない
1は、どんなに小さくてもいいので(何しろPBRを使うだけ)、/boot用と/用とは別にパーティション(IDは83が妥当)を用意し、そこにgrub2をセットアップする手法です。拡張領域のPBRもその用途に一応使えますが、OSのインストーラの中にはお節介なものがあって、PBRをクリアしてしまう場合があるので、そこはお薦めできません。明示的にgrub2のPBR専用パーティションを設けることをお薦めします。
2についてはほぼ説明不要だと思います。/bootは簡単にバックアップ可能なので別にraidにしなくても運用できますし、もしバックアップしていない状態で完全にHDDが壊れてしまっても、カーネル再構築でもしていない限りそこにその環境独自のデータはないので、完全な復旧が可能です。 -- disklessfun? 2011-11-19 (土) 14:27:56

  • kita1です。早速の返信ありがとうございます。 -- kita1? 2011-11-19 (土) 19:37:48
  • 続き (1)のブート専用パーティションを設ける方法は成功しましたが、いまいち理解不足な部分がありそうなのでまだ色々実験してます。 ところで、grub1なら、RAID1のPBRにgrubを置いてMBMからブート可能、ということですが 例えば sda1+sdb1-->(raid1) md0--/boot sda2+sdb2-->(raid1)md1--/ という構成のときに、 ・grub1ならmd0のPBRにgrubをセットしてMBMからブート可能ということでしょうか? ・md1のPBRにgrubをセットアップするときsetup(hdx,0)のhdxはどう記述するのですか? ・MBMからはmd0、md1などのデバイス(パーティション?)も認識できるということですか? 当方centos6をインストールしたところデフォルトでgrub0.97がインストールされてましたが これで、上記のようなブートが可能なのでしょうか? 新規でいくらでも実験できるので色々ためしてみたいのでよろしくお願いします -- kita1? 2011-11-19 (土) 19:54:51
  • 「hdxはどう記述するのですか? 」ちょっと頭をリセットしてすっきりさせて下さい。過去に私がraid1デバイスにgrub-legacyをセットアップしたのはraid1を構成する生デバイス(kita1さんの環境だと/dev/sda2とか/dev/sdb2のこと)に対してです。同様にMBMに対する誤解も解けますよね。 -- disklessfun? 2011-11-19 (土) 20:13:34
  • ソフトウェアRAIDでの/dev/md0とか/dev/md1はブートした後にOSが仮想的に作るものに過ぎません。 -- disklessfun? 2011-11-19 (土) 20:29:01
  • /dev/sda2とか/dev/sdb2はずーっと存在し続けてますよ。 -- disklessfun? 2011-11-19 (土) 20:30:25
  • ありがとうございます、了解しました。とすると現状RAIDになってるsda1とかsdb1は、MBMからはファイルシステムが不明なID(fd)となっていますが、ブートローダ(grub)が正常に書き込まれていればMBMから起動できるということでいいでしょうか? -- kita1? 2011-11-19 (土) 20:49:48
  • MBMはPBRのプログラムをコールするだけです。コール時にIDをチェックしたりはしません。 -- disklessfun? 2011-11-19 (土) 21:21:15

パルス分周器のプログラム Edit

toto? (2011-10-12 (水) 02:13:44)

管理人様、初めまして。totoと申します。
よろしくお願いいたします。
さて、電気式タコメーターを購入したところ、表示が実際の2倍に表示されてしまうため、解決方法を探っていたところ、こちらのサイトにたどり着きました。
「プログラムソース公開のデジタルスピードメータと車速パルス変換器(パルス分周器、パルス逓倍器)の自作」にある車速パルス分周器を制作したいのですが、あいにくPICの知識はほとんどないため、少し教えていただけますでしょうか?。
1/2分周にしたいのですが、その場合プログラム(pulse-devider_by_external_interrupt.asm)の修正点はありますか?
43行目から46行目を単純に削除するだけでいいのでしょうか? 
ご教授いただければ幸いです。
なお、PICへのプログラム書込はライターを持っていないので、業者に外注する予定です。


  • 43行目から46行目はコメントアウトされていますから、削除してもいいですけど、削除しなくても全く問題ありません。そんなことより、出来ることなら、この際PICライターを手に入れて欲しいです。実は1/2分周するという特定の目的だけを実現するだけならマイコンを使わない手段もあります。せっかくPICなどのマイコンを使うなら是非PICライターを手にいれるべきです。PICライターの作成は、電子工作の難易度レベルとしては、当サイトで紹介しているパルス分周器と同等のごく簡単なものです。シリアル(RS232C)ポートを持つPCを持っている場合は特に簡単な作りのPICライターが使えます。 -- disklessfun? 2011-10-12 (水) 22:05:33

暖機運転が必要〜電源トラブル Edit

ローエンド? (2011-07-02 (土) 19:16:50)

 はじめまして管理人様。色々勉強させていただいております。
さて、問題の電源は、DellのSFF(省スペース)モデルのものです。
マザボに接続して電源スイッチを押すと、 [tip] 黄LED(電源トラブルを示す)が点滅し、起動できません。

そこで、ATX20ピンを外し、緑(PS_ON)を隣の黒(COM)に繋いでやると、最初はファンが回りそうで回らない状態です。
ところが、切ったり繋いだりを3〜5回実施すると、ファンが回り出します。 (^-^
この時、テスターで電圧計測をすると±12V,±5V,3.3Vはいずれも正しく出力(上回る事はあっても低下は無し)されている様子です。

一旦ファンの回転を確認した後の電源は普通に使えてしまいます。再起動はもちろん、スタンバイからの復帰も、高負荷な処理も問題ございません。
タイトルの通り、暖機運転しないと働いてくれない電源になってしまいました。

電源を開けて目視確認してみると、妊娠とはいかないまでもメタボ気味のコンデンサが1つありました。これを交換すれば正常に戻せるでしょうか。それとも2次側全交換が必要でしょうか。
MOS-FETなどのパーツまで不良という可能性もあるでしょうか。
過去に、別のPCで電源トラブルには2回ほど遭い、買い換えた経験があります。
今回は3回目となりますが、修理にチャレンジしてみたくなりましたので、アドバイス願えましたら幸いです。宜しくお願いいたします。

 電源トラブルは、猛暑と節電のため増加すると思われます。また、PC価格も安価になっていますから、その電源が重視されることは少ないと思います。
嫌な時代になってきたものですね。


  • 現物を調べたわけではないのでもちろん確証はありませんが、コンデンサの劣化が原因の可能性が非常に高いケースですね。「回りそうで回らない」ということからそう強く感じます。膨らんだコンデンサが原因かもしれませんが、他のコンデンサかもしれませんし、複数が駄目になっているのかもしれません。何度も電源を取り外して分解するのは面倒ですから「どれが原因かはっきりわからないけど面倒だからえーい二次系全部変えてやれ」というのが最もよくある処置のパターンじゃないでしょうか。実際にどう処置するかは好みと(どれが原因なのかはっきり確かめたいという)興味次第なのではないでしょうか。ちなみにファンは回転数制御の為にかなり起動時に余裕がない設定になっているのでしょう。 -- disklessfun? 2011-07-03 (日) 05:13:21
  • なるほど!!ガッテンです。ありがとうございます。周囲のコンデンサも使われて来た環境は一緒ですから、続けざまに逝ってしまったり、既に疲れ果てている可能性があるわけですね。わかりました、コンデンサを調達したいと思います。 -- ローエンド? 2011-07-05 (火) 20:48:17
  • 管理人様、その後のご報告をさせて頂きます。 -- ローエンド? 2011-07-12 (火) 18:15:52
  • コンデンサを交換したところ、きちんと動作する様になりました。2次側全交換の予定でしたが、固定のためにちりばめられたシリコンコーキングと、省スペース用ならではの"すし詰め"状態に挫けてしまい、全交換には至りませんでした。マザボのコンデンサ交換より難易度が高いと思いました。おかげさまで直りました、ありがとうございました。 -- ローエンド? 2011-07-12 (火) 18:21:24
  • ご連絡ありがとうございます。他の方ももっと挑戦してみて欲しいですね。個人的にはマザボのコンデンサ交換はマザボをケースから外すのが面倒に感じるので電源の修理の方が楽だと感じます。 -- disklessfun? 2011-07-13 (水) 23:45:40

個別ファイルのリンクを致しました Edit

シバケン? (2011-06-04 (土) 19:52:55)

管理人様、初めまして。
シバケンと申します。
宜しく、お願い致します。

早速ですが、貴サイトの、
grub2とgrub1の扱い方(様々な再セットアップ方法等)
マルチブートするなら2段階ブート方式に統一しよう

につきまして、個別ファイルをリンク致しましたので、ご了解を宜しくお願い致します。

サイト名称「シバケンの天国」
http://www.eonet.ne.jp/~mr-shibaken/index.html

リンク場所
http://shiba2211ken.bbs.fc2.com/?act=reply&tid=3992719

http://www.eonet.ne.jp/~shibaken-oyazi/mina_linux_s_4.htm#no11

以上、宜しくお願い致します。


  • ご丁寧にご連絡ありがとうございます。 -- disklessfun? 2011-06-06 (月) 22:33:33

以下の方法、ご教授いただければ、と思います。 Edit

安藤? (2011-05-04 (水) 22:58:09)

NTFSのフォーマットはGNUのツールではおこなえません。以下の方法等でおこなって下さい。

   当該マシンに他にインストールされたWindowsがあるならそれを使っておこなう

[email protected]


  • Linux上ではできなくて、Windows上でおこなう必要があるってことですよ。どこがわからないかを具体的に質問して下さい。 -- disklessfun? 2011-05-04 (水) 23:09:08

menu.lstの存在場所の確認 Edit

kinchan1? (2010-11-21 (日) 16:42:53)

 以下のとおりの設定でマルチブートしていますが、/sdb6のLinux Mint 9 のmenu.lstがどこにあるか分からず、修正できません。
 管理人さんの「二段階ブート」論に私も賛成です。最初にLinux(Vine Linux 2.5)を使った際は、LiloをMBRにいれた一段階ブートでしたが、間もなくMBMのことを知り、以後は二段階ブートに統一しています。しかし、二段階ブートについての記事が、本やWebを問わず少ないのは不思議でしかたありません。

(1) 構成

MBR     MBM 0.38
/sda    基本領域 FAT32  Windows2000
/sdb1   基本領域 FAT32  Windows,Linux 共用データ領域
/sdb2   基本領域 同上
/sdb3   拡張領域
        /sdb5  ext3  Puppy Linux 4.3JP + grub(legacy)
        /sdb6  ext3  Linux Mint 9       + grub(2からlegacyに変更)
        /sdb7  ext3  Vine Linux 5.1     + grub(legacy
        /sdb8  swap領域
/sdb4   基本領域 ext3  Linux予備

 

(2) grub2使用時の状況
 Linux Mint を最後にインストール。grub2 をsdb6にインストールするよう指定し、Puppy のmenu.lstにMintのカーネル指定を行い、MBM,Puppyのgrub,Mintのカーネルという形でMint正常起動。Puppy,Vineも正常起動。
 しかし、MBMからMintのgrub2を起動したところ、Mintは正常起動したが、その後Puppy,Vineを起動すると、どちらも解像度が変わっていた。上述のおりMintのカーネルを直接叩いた場合は異常は生ぜず、grub2が原因としか考えられない。

(3)Mintへのgurb(legacy)のインストール
 Mintのgrub関連と思われるディレクトリを退避。Vineのmenu.lstにMintのカーネル指定の記述を追加。Vineをルートで起動し、以下のコマンド実施

grub    ※Ver.0.97
grub>root (hdb1,6)   ※grubのインストール元(Vineのパーティーション)
grub>setup (hdb1,5)  ※grubのインストール先(Mintのパーテイーション)

 この状態でPC再起動、MBMの /sdb6部分を選択するとVineと同一のnenu.lstが表示され、その中のMintを選択するとMint正常起動
 Vine,Puppyも正常起動する。

(4)Mintにおけるmenu.lstの存在場所
 上述(3)のとおり、動作は正常である。しかし、通常 /boot/grubに存在するはずのmenu.lstが見当たらない。否、stageファイルも見当たらない。
 /boot/grubにはgrubenv というファイルしか見当たらない。動作するということは、隠しフォルダに存在するのか、或いは、Vineのものを参照するようになっているものと思うが、私にはわからない。
 現在Vineのmenu.lstは5秒でVineが起動するようにしており、Mintでもそのままになっているため、Mintにおいては5秒でMintが起動するように修正したい。

(5)その他
 話がややこしくなるので、あえて上述しなかったが、私は実はMintのインストールをやり直した。最初、ext4でフォーマットしたらしく、この状態ではMBM0.38からMintのgrub2を起動できなかった。そのため、Puppyのmenu.lstにMintのカーネル指定を行ったところ起動できたので、Puppyのgrubはext4対応である。また、MBMも0.384以降ならext4対応しているようである。
 しかし、Mintをext3でインストールし直した。


  • (3)の※の右側の説明が正しくありません。一つ目は正しくは「grubのインストール元」ではなく、「(起動時に見にいく)grubディレクトリのあるパーティション(の指定)」です。二つめの方は明らかな間違いではないのですが、間違いだと言ってしまった方がkinchan1さんの為になると思うので敢えて「間違い」と書かせて頂きます。二つめの方は「grubのセットアップ先」と書くべきです。
    さて、/dev/sdb6のgrubディレクトリがほとんど空であったのは当然です。grubディレクトリの中身はPBRをセットアップ先に選んだ場合、セットアップ作業で書き込まれるのはPBRの1セクタだけです。またrootコマンドで/dev/sdb6のPBRから/dev/sdb7のgrubディレクトリを見にいくとう指定をおこなってしまっています。
    Vine上で作業をおこなって望みの環境を得るにはここに準じた作業をおこなって下さい。内容的にはVineから/dev/sdb6のブート環境をレスキューしている作業に近いのですから、/dev/sdb6のgrubディレクトリの中身は自分でコピーしたり(stage2とかstage1.5)、作ったり(menu.lst)しなければなりません。 -- disklessfun? 2010-11-21 (日) 23:03:31
  • もしMintにgrub-legacyパッケージが用意されているなら、まずMintを従来パスで起動し、Mintにgrub-legacyパッケージをインストールし、その後setup作業をおこなうやり方の方が容易でしょう。 -- disklessfun? 2010-11-21 (日) 23:24:09

プートした環境とは別の環境へのGRUBのセットアップ
 2010-11-21付「menu.lstの存在場所の確認」の続報です。

 管理人様のご指摘のとおり、私がgrub >root の設定を誤っていたため、妙なことになっていることがわかりましたので、再度grubのインストールを行い、無事想定していた動作ができました。

/sdb6    Mint
/sdb7    Vine

の構成で、VineからMintへのgrub(legacy)へのインストールなのですが、実際はVineからFDにgrubをインストールし、そのFDから更にMintへインストールしました(FDからの起動も試してみたかったので)。

1 Mintの/boot/grubディレクトリを退避(私の場合は、削除しても良います)。
2 Vineの/boot/grubディレクトリをMintに/boot/grubとしてコピー
  コピー後、menu.lstはMintがディフォルト起動となるよう修正
3 FDからgrubを起動し、以下のコマンド実施(FDのgrubはVineと同じものな ので、Vineからgrubを起動しても同じはず)

    grub>root (hd1,5)
    grub>setup (hd1,5)

 これで完了。FDを抜き、PC再起動。MBMのsdb6領域選択、sdb6のMintのlst表示、ディフォルト設定のMint起動

 無事設定でき、お礼申し上げます。

 ただ、以下の点ご教示ください。

 管理人様は、上記作業の後に、「4 退避したgrubディレクトリをもとに戻す」旨記述されています。私は 2 の段階でmenu.lstを修正していますが、そうでなければ、ここで従前のmenu.lstを戻すなり、修正する必要があるのはわかりますが、menu.lst以外でそういうことの必要なファイルがあるのでしょうか。
 私の場合は、本来あったgrub2,その後いれたgrub(legacy)とも削除したのと同じ状態で再インストールしたため、少し状況が違いますが、仮にMintがgurb(legacy)を使っており、不調になったためVineから再インストールするとします。Vineからインストールするために、関係ファイルをMintにコピーするのはわかりますが、それで完結しないのでしょうか。

 更に「5 レストアされたOS上でgrubを再セットアップ」と記述しておられますが、これはどういうことなのでしょうか。

 また、管理人様の記述では、私の例では、Mintのことを「レストアされた(側)」となっています。しかし、Vine(or FD)からgrubコマンドを使うところまでは、「レストアされる(側)」と記述すべきでしょう。「される」と「された」では作業の前後関係の意味合いが全く異なります。全体を通して読めば理解できますが、この記述は修正していただきたく思います。 -- kinchan1? 2010-11-23 (火) 12:29:25


まずは言い訳から。
当ホームページは当初、技術系で興味のある人にだけ理解してもらえばいいと思って書いたのであまり読みやすい状態になっていません。しかし実際には初心者に近い方のアクセスも多く、こういうことも当然起こると思います。ご容赦下さい。

さて、kinchan1さんがどういう方なのかわかりませんが、若くてコンピュータも使い始めたばかりかもしれないと勝手に推測し、自らの文の拙さは横に置き、率直にビシビシ書かせて頂きます。
上の文中の「…あるのでしょうか」「…完結しないのでしょうか」「…どういうことなのでしょうか」は↓以下の2点を理解してのものでしょうか。

  • この説明は今回のkinchan1さんの為に書き下ろしたものではありません。
  • 当然、「ここ準じた作業をこなって下さい」との表現をとっており、「そのまま真似して下さい」という意味ではありません。


同文中の「また、…」から「修正していただきたく思います」までにおける誤解は特に解説しましょう。

当該説明の冒頭部に目をやって下さい。「以下のような手順は、リストア時など、他のOSから別のOSのgrubを再設定する場合」とあります。明らかにこの表現は、「リストア」作業と「他のOSから別のOSのgrubを再設定」する作業がイコールではないことを示しています。また「リストア」には「時」が付けられているので相当周知のものであることが示唆されています。

次は本文の冒頭部に目をやって下さい。「新しいHDDにシステム全体をレストアしたり」とあります。これによって、以降の同説明中では「『レストア』とは 『(いわゆる)バックアップ&レストア』の『レストア』の意味である」ということになります。つまり「レストア」とは「OS環境」のファイル群をバックアップから解凍して所定のファイルシステムの中身を復元する作業(またはこれに類した作業)という意味になります。最初に宣言した意味は最後まで同じ意味だととらえるのが通常の文の解釈です。

その他、「レストアする側のOS」「レストアされた側のファイルシステム」「レストアする側から同名のファイルをコピーして上書きします」「勿論レストアする側の」「レストアされた側のOS」「(勿論レストアされた側のOS上で、」。これらの表現は全て、「レストア」という言葉が「grub」ではなく「OS環境」にかかっていることを示しています。

そもそも、日本では、この分野で単に「レストア」と言えば、通常は上記の意味です。また「レストア」「リストア」、両方が使われていることも相当に周知なことです。
ここまでおわかりになられましたでしょうか。

一般的な手順では、grubの(再)セットアップ作業をおこなうのは「レストア」の後なので、1.の時点で「レストアされた」との表現になっているわけです。kinchan1さんには、1.を読んで「何で『レストアされた』との表現になっているんだろう」と気づいた時点で、「何か自分が誤解しているのではないか」と考えて欲しかったです。 -- disklessfun? 2010-11-26 (金) 01:11:28


「fdiskの使い方Tips」は間違ってまrせんか? Edit

通りすがり? (2010-11-02 (火) 21:41:38)

  • すいません。本文を書く前に送信しちゃいました。HCS(ヘッド/シリンダ/セクタ)はMBRがbiosを使ってHDDにアクセスする為に使用するパラメータでOS起動後はLBAしか使いません。63等の奇数なのは最上位ビットを0にして明確に「マイナスではない」としてます。FLASHの効率については論理フォーマットのクラスタサイズを合わせるのが正解でしょう。1セクタ512バイト、1クラスタ64セクタとすればFLASHの消去単位と合います。しかしこれは各メーカー(例えばパナソニック)が配布してるフォーマットツールを使うべきでしょう。1ブロックのページ数はFLASHの品種で異なるかも? -- 通りすがり? 2010-11-02 (火) 22:05:43
  • ”-H 64 -S 64”を勧めるのは間違っていると言いたいわけですか?確かにブロックサイズが非常に大きい場合は他の値を使うべき場合もあるでしょう。ちなみに私自身はフラッシュデバイスの場合はここに書いた、第一パーティションを第二シリンダから使用する手法を常に用いていて、非常に大きなブロックサイズにも対応できるようにしています。Hの値をブロックサイズに合わせなくても、シリンダサイズをブロックサイズの倍数に合わせれば良いわけです。さっきリンクを張ってあったページはアクセスできないし、fdiskのTipsはMBRの構造に関係ない話なので消しました。 -- disklkessfun? 2010-11-02 (火) 22:28:52
  • 「通りすがり」さんが書いているように、OS起動後はLBAしか使わないので第一パーティションを第二シリンダから始めるようにすれば、基本パーティションに関してはシリンダサイズの約数がブロックサイズと一致さえしていればパフォーマンスのロスは一切生じないことになります。 -- disklessfun? 2010-11-02 (火) 22:37:41

PBRのバックアップ Edit

a? (2010-10-16 (土) 16:12:46)

リナックスを外付HDDにインストールする過程で、過ってgrubをCドライブにインストールしてWINDOWSが起動しなくなってしまいました。

色々ネットで調べ、リナックスでMBRをインストールしたり、512バイトを0で消したり、回復コンソールでfixmbr,fixbootを試しましたが、起動できませんでした。

いろいろ試し過ぎたせいか、リナックスからも認識されなくなってしまいました。

そこで御サイトの強力なNTFSのPBR修復法を試そうと思い、コンソールにdd if=dev/sda1 of=savedir/client-name-sda1.imgと書き、enterキーを押すと、”そのようなファイルやディレクトリはありません”と出ます。

やり方が間違っているのでしょうか?
よろしければ御教授願えませんでしょうか。


  • まず「修復法 1」の方をお試し下さい。それと、”そのようなファイルやディレクトリはありません”とのエラーが出た理由はsavedirというディレクトリがないからです。私が示したのはあくまで例文ですよ。「sda1」も「/savedir」も「client-name」もご自身の環境に合わせて適宜変更して下さい。 -- disklessfun? 2010-10-17 (日) 12:36:11
  • なるほど、そうだったんですね。今回初めてリナックスを触ったもので、コマンドやスクリプトなど全く理解していませんでした。そこで調べながら「修復法1」を試してみました所、「Error,Not a NTFS boot sector」とエラーが出ましたが512バイトのファイルはおっしゃる通り作成されました。この場合はどうすればよいのでしょうか。よろしくお願いします。 -- a? 2010-10-18 (月) 18:46:12
  • いやいや、いくら512バイトのファイルが作成されたとしても、作成時にエラーが出た場合にはそのファイルは使えません。調査がおこなえるように消さずに残してあるだけです。まさかそのファイルをそのまま使用しようとする人はいまいと思いましたが、念のため少し小さな字ですが赤字で、ダウンロードリンクのすぐ近くに「NTFSのブートセクタでないと判明した場合もファイルは削除していません」と記しています。
    実はエラーが発生せず、首尾よく目的の512バイトのファイルが得られた場合には、「次にどうするべきか」を自動で表示する仕様になっています。
    困りましたね。実はgrubを誤ってNTFSのパーティション(←この言葉、覚えて下さい)にセットアップ(インストールとは言いません)してしまった場合、「修復法 1」もしくは「修復法 2」でしか(※)修復できないんです。fixbootやfixmbrは何の役にも立ちません。
    ※ ここでの「修復法 1」と「修復法 2」には、実質的に「修復法 1」や「修復法 2」と同じ処理をおこなう方法も含みます。
    最初から「修復法 1」を採用していれば簡単に修復できた可能性が高いと思いますが、「いろいろ試して過ぎ」ているうちに本格的に壊してしまった可能性がありますね。特に危険な作業が、コマンドに慣れていない人が「512バイトを0で消したり」する作業です。この作業は自分が実行するコマンドの意味を完全に理解できない人は実行すべきではありません。
    ただ、本当に壊れたと判断する前にまだいろいろ試すことがあります。
    まず1つ確認したいです。、「a」さん、「extract-backuped-pbr.sh」と「old.extract-backuped-pbr.sh」のどちらを実行しましたか? もちろんダウンロードページを読めばわかりますが、普通は「extract-backuped-pbr.sh」だけを実行すればいいです。「old.extract-backuped-pbr.sh」の方は使用できる環境が限られますので、もしこちらを誤って使用していたなら「extract-backuped-pbr.sh」で再実行してみて下さい。
    それから、初心者だということなので、引数(って言葉わかりますよね)が正しいか心配なので、fdiskコマンドでパーティション情報を見てみて下さい。
    「extract-backuped-pbr.sh」と同様、rootユーザで「 fdisk -l 」を実行してみて下さい。もちろん「」の中だけです。
    先に「extract-backuped-pbr.sh」(かold.extract-backuped-pbr.sh)を実行した際の引数は正しかったでしょうか。
    「extract-backuped-pbr.sh」は何度実行しても、どんな引数を与えても危険ではないので、念のため他の引数でも実行してみてはいかがでしょうか。先に実行した際の引数が「/dev/sda1」だったら「/dev/sda2」にするとか。
    もし、例えば「/dev/sda1」ではエラーなしに実行でき、「/dev/sda2」では「Error,Not a NTFS boot sector」が出るなら「/dev/sda2」は壊れている可能性が高いと言えるでしょう。

    さて、上に書いたように「修復法1」をやり尽くした上で駄目だったとして、それでも諦めがつかないなら「修復法 2」を試みましょう。ただし「修復法 2」は別に難しくはないのですが、「a」さんのような全くの初心者の方の場合は最後まで実行するのは難しいのではないかと思います。出来ればお近くの詳しい人にヘルプを要請することが望ましいと思います。
    「修復法 2」は対象のパーティションを丸ごとバックアップするだけの空きディスク領域が必要です。また対象のパーティションの「NTFS・クイックフォーマット」をおこなう必要があります。 -- disklessfun? 2010-10-18 (月) 22:53:25
  • extract-backuped-pbr.shを実行しました。それとパーティションはsda1です。HDDにはWindowsが1つのみ入っており、パーティションを区切ったりはしておりません。 -- a? 2010-10-19 (火) 17:35:12
  • アドバイスありがとうございます。「extract-backuped-pbr.sh」を実行しました。それとパーティションはsda1です。HDDにはWindowsが1つのみ入っており、パーティションを区切ったりはしておりません。外付けHDDで「修復法 2」を試して修復が難しいようなら、中のデータだけでも救出する方向でやっていきたいと思います。 -- a? 2010-10-19 (火) 17:43:18

物理セクタサイズが4096バイトなHD Edit

ずっとMBM? (2010-07-25 (日) 15:59:43)

普段MBMを便利に使っております。
PCの内蔵HDの乗せ換えを検討しているのですが、最近の物理セクタサイズが4096バイトなHD(たとえばWESTERN DIGITAL WD20EARS等)でもMBMはいままで通り使えるのでしょうか。よろしくお願いいたします。


  • 確かめていません(ここ大事。あまり信用しないように)が、少なくともブートマネージャー部分は使えるでしょうね。 -- disklessfun? 2010-07-25 (日) 23:58:10
  • という事は、パーティションのきり方さえ気をつければ、ディスク本来の性能を出しつつ、MBMは今まで通り使えそうですね。ありがとうございました。 -- ずっとMBM? 2010-07-26 (月) 00:53:48
  • ただし、もちろん互換モード利用が前提です。私はエミュレーション機能がないものは買いたくないです。ここも読んでみるといいと思います。 -- disklessfun? 2010-12-30 (木) 21:24:22

MBM2段階ブートにおける、Grub→Winの起動について Edit

pep? (2010-04-03 (土) 19:22:43)

disklessfun様
この度、WinXP(ProSP3)プレインストールノートにデュアルブートという形で、初めてUbuntu9.10を導入するにあたり、こちらで紹介されている2段階ブート方式に挑戦致しました。結論から申しますと、おそらく成功したと思うのですが、少々疑問に思うことがありまして、こちらに質問させていただきます。
以下のパーティション構成で、Ubuntuインストールの際にGrub2(正確には1.97)をまずMBRに入れ、ついでこちらで解説されているコマンドでもってPBR(/dev/sda2)にGrub2を再セットアップ、最後にMBM0.39をMBRにインストール、という手順を辿りました。
/dev/sda1 ntfs WinXP
/dev/sda2 ext4 /boot
/dev/sda3 ext4 /
/dev/sda4 Extended
/dev/sda5 swap
/dev/sda6 ext4 /home
/dev/sda7 ntfs
上記の作業後、MBM起動画面において、"1.HPFS/NTFS"からは(おそらく)NTLDRがチェーンロードされWinXPが、"2.Linux ext2fs"からはGrub2がチェーンロードされUbuntuが、それぞれ正しく起動します(ちなみに他のパーティションはInvalid boot record等がきちんと表示され、何かが起動することはありません)。
しかし気になるのが、後者のチェーンロードされたGrub2からはWinXPも選択・起動できてしまう、ということです。この場合のGrub2からのWinXPの起動は、PBR(/dev/sda2)のGrub2がさらにPBR(/dev/sda1)のNTLDRをチェーンロードする、といういわゆる3段階ブートによるもの(Grub2・NTLDR両方のブート環境に依存する、こちらで言うところの非推奨の起動法)、という解釈でよろしいのでしょうか(grub.cfgのWinXP関連部分には確かにchainloader +1と記述されています)。 それとも、私の導入作業上のミスで正しい2段階ブートが実は構築されておらず、そのせいで生じた現象なのでしょうか。
おそらく初歩的な質問なので、伺うのも大変心苦しいのですが、ご回答いただければ幸いです。よろしくお願い致します。


  •  pepさんの構築作業に誤りはないと思います。それから"基本的には"、pepさんの解釈は正しいです。ただしpepさんが文章の中で用いられた「3段階ブート」という言葉について注釈を付けさせて下さい。今回のpepさんの環境は確かに"3段階に連なったブート"ではあるんですが、私としてはその環境を「3段階ブート」と呼んで欲しくないです。
     私がこちらで説明している「3段階ブート」は目的を持って"わざと作った"環境です。この手法ではgrubの設定ファイルをOSのないパーティションに置くので、"意図せずにできてしまった"pepさんの環境とは特徴が異なります。
     今回のpepさんのような、2段階ブート統一を実現した環境でgrubの設定ファイルに無駄なエントリが載っていることで、意図せずに"3段階に連なったブート"が起こりえてしまう状況はほぼ無意味だと言えるので、私としてはこちらの設定を施して無駄なエントリを削除することをを推奨しています。/etc/default/grubの編集後に# update-grub2を実行すれば無駄なエントリが削除されます。# update-grub2はカーネル更新時には自動で実行されます。
     何故、デフォルトの状態ではgrubの設定ファイルに無駄なエントリが載るのかを理解する為にはこちらが少し参考になると思います。このページを読んでも参考になると思います。
     こちらが参考になりますが、チェーンロードはブートローダ(チェーンローダ)の種類に依らず幾重でも連ねることができます。 -- disklessfun? 2010-04-03 (土) 22:58:33
  • 早速のお返事、そしてわかりやすいご説明をどうも有難うございます。MBM2段階ブートは正しく構築できているだろうとのこと、これで安心して他の設定作業も行えます。
    また教えていただいた作業を実行し、無事grubの中のWinエントリを削除することができました。当初は「一番初めにgrubをMBRに(チェーンローダーとして)入れたため、PBRにセットアップした後もその(チェーンローダーとしての)設定が引き継がれたのかな?」などと単純に考えていましたが、grub2の「全OSのブートを司る」ことを期待された作りがそもそもの問題だったのですね。
    該当ページには一応すべて目を通したつもりでしたが、私の理解不足のせいでお手間をお掛けし、失礼致しました。今後もこちらのページで色々勉強させていただきますので、よろしくお願い致します。 -- pep? 2010-04-04 (日) 22:01:00
  • 大変遅くなりましが「私の理解不足のせいでお手間をお掛けし、失礼致しました」には少々心苦しさを感じます。我ながらこのページのスプロール化は著しいと思うからです。今のところ読者の方にはページ冒頭に載せたフォロワー様達のページへのリンクを活用して頂くしかないかなと思っています。 -- disklessfun? 2010-05-04 (火) 19:35:19

EFIとGrub Edit

leny? (2010-02-04 (木) 02:33:17)

Grub関連の記事、いろいろと参考にさせていただきました。ありがとうございます。
ちなみに「ちょっと問題な、grub2開発者の考え方」なんかは少し驚きでした。作者はなかなかすごいことを考えているんですね。
ところで話変わりますが、EFIが本格的に普及したら、EFI側でマルチブートがサポートされたりして、Grubなどのブートローダはいらなくなってしまうのではないだろうかとふと思ったのですが、Grubは残るんでしょうか?ちょっと疑問に思っています。
管理人さんはどう予想されますか?


  • お返事が遅れました。
    lenyさんにはこのページを読んで頂いて、「チェーンローダ」と「カーネルローダ」の違いと、参考例として現在の各OSがどのようなブート方法を採用しているかを知って頂きたいです。
    コンピュータに限らず一般的な話として、物事は階層的な構造になっていると管理がし易くなります。典型的な例の一つとしてOSI参照モデルが挙げられます。
    まだ現在の話を続けます。Windows, Solaris, FreeBSD, Linux, どれも同じマシンで動作します。そのブート処理に着目してみると、電源が入れられてBIOSが立ち上がってというところまでは必ず同じ動作をしています。その後のどこかに違いがあるわけです。
    ここでは現在の実情の詳細解説は端折りますが、管理のし易い「あるべき形」というのはOSI参照モデルを参考にして頂くと理解し易いと思いますが、「ある段階までは各OSが必ず同じ処理をおこない、その次の段階から各OSが揃って独自の処理をおこなう」というものである筈です。
    具体的な用語を当てはめると「各OSのブート処理は各OSのシステムパーティションのPBRが呼ばれるまでは完全に共通で、それ以降は各OS独自の処理をおこなう」という形が理想的です。そうするとPBRが事実上共通インターフェースになるわけです。
    この「理想形」に完全に準拠しているのがSolaris, FreeBSDで、基本的には準拠しているのがWindows, 完全に反しているのがLinux各ディストリがデフォルトとしている「grubによる一段階ブート 」です。
    「grubによる一段階ブート」は管理面でのモデルとしては完全に駄目モデルです。
    そもそもこんなことが可能なのはgrubが「チェーンローダ」機能と「カーネルローダ」機能を合わせ持つからです。階層構造に着目して物事を考えると「grubがチェーンロード機能を持っていること自体が間違いである」と言えると思います(※余談ですが、ごく特殊な状況ではgrubのチェーンロード機能(だけ)を利用したい場合もあります)。
    さて、既に書いたことですが、ここで考えなくてはならないのが、GPTにはMBMのような管理のし易さや階層構造に着目した場合には理想的と言えるマルチブートマネージャを置くことが出来ないということです。その代わりとなるべき機能をEFIは持つべきだと書いたわけですが、もうお分かりのことだと思います。私が意図しているのは「カーネルロード」機能を持たないマルブートマネージャー機能です。grubは必ず少なくともカーネルローダとしては今後も必要な存在であり続けると思います。 -- disklessfun? 2010-02-06 (土) 14:39:57

mbm→mbrは成功 Edit

文系PC? (2010-01-10 (日) 02:50:27)

WinXP_HEとUbuntuのダブルブートにようやく成功しました。大変参考になりました。ありがとうございました。失敗を繰り返した上で、SDA1(ntfs)にWINを入れてから、UbuntuをSDA3(ext4)に入れました。2はntfs,1から3は基本領域で、拡張領域内の5(SWAP)、6(/home)7(ntfs)-という構成です。mbmはUbuntu上から/dev/sdaのmbrに入れました。安定しています。最初にsda1やsda2にUbuntuを入れた後から、sdb1にXPを入れようとしましたが、sdaのmbrは当然としても、sda1(ext4)に/rootを置いたUbuntuを消されたり、散々でした。なお、USBからのminimumubuntuとその簡略版?は不具合が続いています。両OSとも動いているので、ご返事はいつでも構いませんが、WINのインストールについて基本的なことを2つ質問させてください。
[1]winはsdbやsdcのパーティションに入れてもその先頭ではなく、必ずsdaのmbrにブートローダーを書き込まむ<2>しかもsda上にインストールの(設定に必要な)足がかり?となるパーテションをつくる(fat領域があれば使い、extしかなければどれかを強引にフォーマットして使ってしまう(後から gpartedで見たらbootフラグが立っていた)ーという理解でよいのでしょうか。インストールされるパーテションのあるHDBの先頭にWINのローダーをおけないか、ネットを調べましたが、発見できませんでした。
なおminimumubuntuは「loadng initrd…ready」の後「[2.064077]kernel panic-notsyncing:VFG:Unable to mount root fs on unknown-block(8,1)」と出て止まってしまいます。簡略版?の方は字が重なってよくわかりませんが、intrdをロードし readyが出た後「# 」のターミナルモードで止まります。helpを打つと使えるコマンドの一覧が出ます。usb起動の症状についてアドバイスがいただければ幸いです。(以上)


  • Ubuntuは9.10。カーネルは 2.6.31-14に抑えてあります。grub2はsda3の先頭です。 -- 文系PC? 2010-01-10 (日) 03:03:30
  • [1]Windowsのインストーラが必ずsdbやsdcではなくsdaのMBRにブートローダを書き込むのはその通りだと思います(私に言わせるとMBRに書き込まないという選択肢も欲しいところですが・・・)。当然だと思います。sdbやsdcのMBRに書き込んでも、BIOSの設定変更をしないとそれを生かせないからです。
    [2]「(後から gpartedで見たらbootフラグが立っていた)」という部分については私も「そうだったような気もするな」程度の認識しかありません。
    「インストールの(設定に必要な)足がかり?となるパーティションをつくる・・・」はインストール時の作業領域のことですよね。順番の若いディスクに使用できるパーティションがあればそれを優先して使うのはWindowsインストーラの勝手な仕様ですが「そういうものだ」と思っておけばいい程度のことだと思います。
    [1]の回答で既におわかりだと思いますが、HDB(sdbと同義として書かれてますよね?)の先頭にWINのブートローダを置いても通常は使われることがないので役に立ちません。どうしてもそこに、たとえ使われることがなくとも、Windowsの純正ブートローダを置きたければ、sdaのMBRにWindowsの純正ブートローダが存在するうちにLinux上でddコマンドを使ってsdaからコピーすればいいと思います。dd bs=1 count=447 if=/dev/sda of=/dev/sdb(デバイス名は適宜読み替えて下さい) でNTシグニチャも一緒にコピーされます。(NTシグニチャを除きたい場合は447ではなく440で)
    複数のHDDを使用する場合もMBRにはMBMをインストールすることをお薦めします。理由は、(1)常にBIOSに認識されているストレージの数や順番が確認できること、(2)2番目以降のストレージにインストールされているOSも何らの設定ファイルを書き換えることなく簡単にブートできることです。
    私なんか、パーティションが1つしかない小さなUSBメモリやUSB接続のCFにさえMBMをインストールしています。理由はまさしく先の2つの為です。私が文系PCさんだったらsdbにもMBMをインストールしているところです。もちろんすぐには役に立つことはないでしょうが、いつか構成が変わったときに役に立つかもしれないからです。

    Minimum-Ubuntuについてですが、ご迷惑をかけております。
    明示はしていないんですが熟練者向きの代物です。
    明示はしていないんですが、x86 32bit専用となっています。つまりx86_64でうまく動かなければ自分で改造してね、ということです。
    Minimum Ubuntuはルートファイルシステムをリマウントしないことが特徴です。「Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)」は、ルートファイルシステムのリマウントに失敗したというメッセージですから、何らかの理由で不必要な処理をおこなっているということになります。ここに書いてあるような指定してはいけないオプションを指定してはいないでしょうか?
    Minimum Ubuutuもその簡略版?も適宜quietオプションを除いて試して頂きたいと思います。以上、宜しくお願い致します。 -- disklessfun? 2010-01-10 (日) 11:51:48
  • karnelを2.6.31-17の最新版に上げましたが、リマウントに失敗している酔うです。ご指摘の点は「ルートデバイスの指定は絶対にしないで下さい。同様にカーネル引数にsplashは決して付けないで下さい」だと思いますが、このHPにかかれている手順にしたがってコマンドラインを打ち込んで作っているだけなので、オプションを指定するような場面はminimumuや簡略版を作る際にはないような…。UnuntuをliveCDからインストールする時は確かに/rootのマウントポイントを指定しましたが、それはなしにubuntuをインストールできるのでしょうか。 -- 文系PC? 2010-01-11 (月) 14:19:05
  • 文系PCさんの環境を私が見ることは出来ません。ご自身で調査して頂かないことには解決しないと思います。
    Minimum Ubuntuは熟練者向きの代物なのでお使いになられる前に名実ともに「理系PC」になる必要があると思います。 -- diskklessfun? 2010-01-11 (月) 15:00:43
  • karnelを2.6.31-17の最新版に上げましたが、リマウントに失敗している酔うです。ご指摘の点は「ルートデバイスの指定は絶対にしないで下さい。同様にカーネル引数にsplashは決して付けないで下さい」だと思いますが、このHPにかかれている手順にしたがってコマンドラインを打ち込んで作っているだけなので、オプションを指定するような場面はminimumuや簡略版を作る際にはないような…。UnuntuをliveCDからインストールする時は確かに/rootのマウントポイントを指定しましたが、それはなしにubuntuをインストールできるのでしょうか。 -- 文系PC? 2010-01-11 (月) 16:03:36
  • ↑失礼しました。誤送信したようです。成果あれば、また連絡します。 -- 文系PC? 2010-01-11 (月) 16:23:36
  • 宜しくお願いします。誤送信の部分はそのうち削除するかもしれません。 -- disklessfun? 2010-01-11 (月) 18:05:31

BIOSがUSBからの起動をサポートしていないパソコンでのGRUB2でのUSBメディア内Ubuntuの起動 Edit

鈴木清? (2010-01-09 (土) 03:07:27)

「2段階ブート方式に統一しよう」のページや、「MBMをもっと便利に使う情報とツール」のページや、「grub2とgrub1の扱い方」のページを拝読して、勉強させていただいております。有難うございます。

BIOSがUSBからの起動をサポートしていないパソコンでgrub2を利用したCDで起動し、USB外付けHDDにインストールされているLinuxを起動することは可能でしょうか?
カーネルとinitrd(initramfs?)はアップデートされたりするので、できれば、CDにはカーネルやinitrdを入れないでおきたく存じます。

BIOSがUSBからの起動をサポートしていないノートパソコンで、しかも内蔵HDDが故障してしまって存在しないものがあります。
東芝Dynabook EX1/CMEKというものです。
また、HDPF250U2というUSB接続外付けHDDにUbuntu9.10が、
https://wiki.ubuntulinux.jp/UbuntuTips/UsbInstall/InstalltoUSBStorage
の方法でインストールしてあります。
Dynabook EX1/CMEKにHDPF250U2を接続してUbuntuを起動させるために、PLoP boot manager 5.0.3
http://www.plop.at/en/bootmanager.html
のCDやFDDで起動を試みましたが、USBを選択すると、2行ほどメッセージが表示された状態でフリーズしました。

よろしければ、ご返事くだされば幸いです。


  • まだ後半は読んでいませんがとりあえず質問に簡単に答えることはできますよ。BIOSがUSBからの起動をサポートしていないのであれば、USB接続のHDD等の中を読む為には、何らかのOSがUSB接続ではないストレージもしくはネットワーク上からブートする必要があります。ですから、(grub2を使う限り、)カーネルとinitramfsがUSB接続のHDDの中にしかないのであれば起動は不可能ということになります(2010-8-13追記・修正:grub2独自にUSB接続のデバイスにアクセスする機能もあります。もちろん必要になる環境は殆どないでしょう)
    もちろん鈴木様が望まれない手法ではありますが、カーネルとinitramfsを、grub2と一緒にCDに納めてしまうことが一番簡単な解決策ですね。
    私ならカーネル更新時にカーネルとinitramfsをネットワークサーバにアップしておくことにして、CDブートでなく、ネットワークブートを使います。その方がCDを焼き直さなくていいので多少は運用が楽になると思います。
    質問に対する根本的な解決策はgrub2の代わりにkbootを使ってUSBストレージをブートローダの自力でマウントして、カーネルをロードすることです。kbootはブートローダでありミニOSです。 -- disklessfun? 2010-01-09 (土) 03:48:43
  • disklessfun様、ご返事有難うございました。kbootを試してみます。 -- 鈴木清? 2010-01-09 (土) 14:15:00
  • kbootの基本コンセプトは今回の状況にマッチしたものですが、今回の環境に無改良で使えるかどうかは未確認・未検証です。その点はご承知おき下さい。念のため書き添えておきますが、kbootの前段階としてisolinuxやgrub-legacyやgrub2がもちろん使える筈です。 -- disklessfun? 2010-01-09 (土) 21:44:59
  • 上記の件もご教示くださり、有難うございます。 (^^) -- 鈴木清? 2010-01-09 (土) 23:00:33
  • 今までこのようなニーズは考慮していませんでしたが、Minimum Ubuntu もkexec実行専用のLinuxとして使えます。というか最適な部類と言えます。(簡略版(usb-mbminstall-disk)の方でもいけると思います。が、その話は置いておきます。)
    全く試していませんが、こんな感じの変更内容でいいんじゃないかと思います。
    (1)Minimum Ubuntuのwork/sbinにkexecコマンドとkdumpコマンドを追加する。(この場合はコマンドを手でコピーしても動くと思いますが、本来Minimum Ubuntuにコマンドを追加する場合はupdate-initrd.shをカスタマイズすべきです。)
    (2)Minimum Ubuntu起動時のカーネルオプションに「single」を追加する。
    (3)work/etc/init/rcS.confの、/bin/bashの行の前にUSBHDD内のパーティションをマウントしたり、kexecを実行するスクリプトを書く。(もしくは一連の処理を既述した別のスクリプトを呼ぶ)
    動作確認した後、不要な部分(ネットワーク関係の起動スクリプト等)を削除すればいいと思います。 -- disklessfun? 2010-01-10 (日) 20:41:05
  • 簡略版でもぜんぜんいけると思います。 -- disklessfun? 2010-01-10 (日) 20:47:19
  • 上に書いた変更内容を実際に検証してみました。
    work/etc/init/rcS.confの/bin/bashの行の前に
    こんな感じに追記して動作させました。
    sleep 10
    mount UUID=f16bff29-e9dc-405d-8fd4-bed723028e27 /mnt
    kexec -l /mnt/vmlinuz --initrd=/mnt/initrd.img \
    --command-line="root=UUID=・・・略"
    kexec -f -e
    /bin/bashの既述は念のため残した方がいいと思います。 -- disklessfun? 2010-01-10 (日) 22:31:26
  • 鈴木さん以外の方が読まれるときの助けになるように書いておきます。今回、Minimum Ubuntuを利用しているのは、現状、丁度いいkbootのパッケージがないようなので、その代用としてです(よね)。 -- disklessfun? 2010-01-10 (日) 22:44:08
  • (簡略版(usb-mbminstall-disk)の方でも試してみました。こちらの方が無駄なものが少ないので最終的には最も向いているかと思います。
    work/scriptを以下の内容に変更しました。
    #!/bin/sh
    echo "0" > /proc/sys/kernel/printk
    mkdir /mnt
    sleep 10
    mount /dev/disk/by-uuid/f16bff29-e9dc-405d-8fd4-bec723028e27 /mnt
    kexec -l /mnt/vmlinuz --initrd=/mnt/initrd.img \
    --command-line="root=UUID=f1・・・略・・・27 ro quiet splash"
    kexec -f -e
    exec sh
    先のrcS.confとの実質的な違いはmountの引数の違いだけです。
    こちらを使用する場合はカーネル引数にsingleの指定は必要ありません。またsleep時間は適宜短くすることができます。
    isoイメージの作り方はこちらを参考にできます。※そこにはカーネル引数(/mnt=・・・)の追加を既述してありますが、今回の用途の場合にはisolinux.cfgにそのような既述はしないで下さい。 -- disklessfun? 2010-01-11 (月) 00:49:05
  • 前言を翻すようで申し訳ありませんが、先に書いたMinimum Ubuntuやusb-mbminstall-diskを改造して用いるやり方は厳密にはこの用途にはマッチしていません。
    当然のことですが、kexecを実行する(中継用の)カーネルに与えた引数が最終的に使用するカーネルにも渡る仕組みにすべきです。
    そこでそのようなものも作成しました。標準のinitramfsを少し改造するだけです。
    変更点は、
    (1)(initramfs内の)/initに以下の修正をおこなう
    --- init.orig	2009-09-23 01:38:47.000000000 +0900
    +++ init	2010-01-11 11:43:44.000000000 +0900
    @@ -219,6 +219,10 @@
     mountroot
     log_end_msg
     
    +kexec -l ${rootmnt}/vmlinuz --initrd=${rootmnt}/initrd.img \
    +--command-line="$(cat /proc/cmdline)"
    +kexec -f -e
    +
     maybe_break bottom
     [ "$quiet" != "y" ] && log_begin_msg "Running /scripts/init-bottom"
     run_scripts /scripts/init-bottom
    (2)(initramfs内の)/sbinにkexecをコピーする
    (3)(initramfs内の)/lib/tls/i686/cmovにlibc.so.6をcp -p する(cp -a しては駄目)。←この作業は面倒なのでkexecのコピーにcopy-execfile-to-newroot.shを用いて、スクリプト中で自動でおこなうことをお薦めします。つまりinitramfsを解凍した直下で、
    copy-execfile-to-newroot.sh  /sbin/kexec  .
    (4)中継用のカーネルには、最終的に使用するカーネルに与えるものと同じ引数を与える。つまりCDブートにisolinuxを用いる場合はisolinux.cfgは以下のような感じになります。
    DEFAULT vmlinuz
    APPEND initrd=initrd.img root=UUID=dd6dac26-b532-4b9a-aa96-11140ea2441d ro   quiet splash
    TIMEOUT 10
    LABEL linux
    KERNEL vmlinuz
    APPEND initrd=initrd.img
    これで中継用に用いるinitramfsを固定化できます。 -- disklessfun? 2010-01-11 (月) 12:48:33
  • 上記の「鈴木清? 2010-01-09 (土) 23:00:3」以降、こちらを拝見しておらず、自力で色々googleったりして試して、DebianCore+kexec(+自前スクリプト)→Remastersysで、昨日、うまくいきました。今までに使ったUSB-HDD内のUbuntuを起動するためのCDの中でもっとも強力です。
    minimum ubuntuの方は(小生では能力不足で)使いこなすことができませんでしたが、
    上記のご教示をくださり、有難うございます。
    まだ上にご連絡くださったことを読んでおりませんが、今から拝見いたします。
    あ、ついでの質問で恐縮なのですが、remastersysで作成したCDをインターネット上で配布した場合、こちらの個人情報やパソコンの情報が漏洩する危険性があるのでしょうか?(質問ばかりで済みません。お忙しければ無視してください。自分で調べるべきなのですが、ゴメンなさい。) -- 鈴木清? 2010-01-13 (水) 22:54:22
  • ざっと目を通しましたが、2010-01-11 (月) 12:48:33に書き込んでくださった内容が一番良いとのことですね。今は理解できませんが、ちょっとずつ理解していきます。本当に有難うございました。成功したら、ご報告する予定です。 -- 鈴木清? 2010-01-14 (木) 12:59:10
  • 後から後から書き足して読みにくくなっていることをご容赦願います。
    「2010-01-11 (月) 12:48:33」の通算第3版目(1版目がMinimum Ubuntu利用版, 2版目がusb-mbminstall-disk利用版, 通算3版目がUbuntu純正initramfs利用版)は、与えた引数を最終的に起動するカーネル(今回の場合はUSB-HDD上のカーネル)に引き渡すことが出来る為、たとえばルートデバイスを変更しても、initramfsを再解凍して修正をおこなう必要がありません。運が良ければ今回作成したinitramfsを様々な環境で修正なしでそのまま使いまわすことが出来ます。その意味で最も推奨する手法です。まるで一つの完成度の高い既成のブートローダのようにみなせるかもしれません。
    今回のようなブート手法は「疑似USBブート」と言えると思います。また今回の手法と似た手法でiSCSIストレージ上のカーネルをブートさせる場合は「疑似iSCSIブート」と言えると思います。「疑似USBブート」,「疑似iSCSIブート」は私の頭の中に6年程前からあった用語です。そのうち特に「疑似iSCSIブート」は一般のPCの世界では本家のiSCSIブートよりも遥かに利用頻度が高いもの(の筈)です。
    USBブートの中継用途としてはオーバースペックですが、Minimum Ubuntuはinitデーモンさえ稼動しているフルスペックのOSなので、「疑似VPNブート」のような珍しい「疑似ブート」を可能にするでしょう。 -- disklessfun? 2010-01-15 (金) 00:48:23
  • Ubuntuの純正vmlinuzとinitrd.imgの書き換えで、それらだけを利用してkexecで別パーティションのUbuntuを起動するのに成功しました。ご教示くださり、有難うございました。もっと汎用性の高い、初心者向けの起動用CDになるよう、カスタマイズしてみます。 -- 鈴木清? 2010-01-17 (日) 08:59:09
  • いつもご丁寧にありがとうございます。
    できることなら当該のノートが、CD以外のデバイスからブート可能であればいいですね。発売時期的にはUSBブートに対応していてもおかしくない筈ですが、据え置き用ノートなのでUSBブートに対応していないんでしょうね。念の為お聞きしますが、USBハードディスクではなくてUSBメモリでのブートの方も試されたでしょうか?万が一ブート可能ならUSBポートを2個占拠することになりますがCDが要らなくなりますよね。
    個人的な考えですが、KRHK-CF2.5IDEとかCFIDE25Cををこんな(失礼!)ノートの為に買うのはおかしいような感じがします。←再利用って金をかけないことに意義があるように私は思ってしまうので。 -- disklessfun? 2010-01-18 (月) 01:20:23
  • 有難うございます。USBメモリによるブートは試していませんでした。ただし、BIOSで起動方法として選択できるのが、確か、CD,HDD,LAN(ネット?PXE?),FDDくらいで、USBというのが全く無かったと思います。別のノートパソコンから取り出してあった6GBの2.5inch内蔵HDDがあったので、接続してみると、利用できました。DebianのCoreだけをインストールしましたが、正常に起動しています。Ubuntuを入れても良いのですが、起動実験用にして遊んでみます。再利用については、色々な考えがありますね。 -- 鈴木清? 2010-01-19 (火) 21:56:48
  • Dynabook EX1は据え置き型ですし、国内大手メーカーのものなのでまず駄目だとは思うんですが、USBハードディスクは駄目でUSBキー(USBメモリ)ならブートが可能な(しかもBIOSに「USBブート」という項目がない)PCを経験したことがあるので、一応書かせて頂きました。でもそのPCはモバイル用でしたし、BIOSに「USB設定」という項目は存在し、その中のサブ項目に「SCSIサブクラスサポート」との項目がありました。ここが実質的にUSBブートに関する設定でした。 -- disklessfun? 2010-01-19 (火) 23:04:44
  • 質問者の鈴木清さんはご自身のホームページに続きの作業を様々載せておられます。ダウンロードできるものも様々あります。
    鈴木さんが使用(試用)されている「PLoP - Bootmanager」を私は使用したことも詳しく調べたこともないんですが、拡張BIOSみたいな感じで使用できるものじゃないかと思います。BIOSみたいに使えると考えればそのメリット・デメリットが理解し易いと思います。様々場面で利用できる代わりに低い階層で動作するだけに一部のハードウェアでは動作しないなどの特徴も合わせ持つと思います。私が紹介したkexec(kboot)とは動作する階層が異なります。
    kexec(kboot)の効用は以前から私が紹介したかったものなので、質問を受けた際は渡りに船という感がありました。幸いにもLinuxだけをブートしたいというご要望でしたので。 -- disklessfun? 2010-02-06 (土) 15:48:36
  • disklessfunさん、小生のホームページと、disklessfunさんのご教示のおかげで作成できましたダウンロード可能ファイルをご紹介くださり、有難うございました。ご教示下さったことに御礼申し上げます。有難うございました。 -- 鈴木清? 2010-02-20 (土) 12:07:10
  • ここ数カ月、直さなきゃと思いながら「どうせあまり読まれないから」と放置していましたが、最近どこが読まれているかはわかりませんがこのページのアクセスが多くなってきたのでこのへんで修正させて頂きます。 -- disklessfun? 2010-08-13 (金) 11:57:40
  • disklessfunさん、Grub2でもUSB認識できるとのご連絡をくださり、有難うございました。kexecによる起動のためのinitにかなりの機能を追加しました。たとえばこちらに書いてあります。 -- 鈴木清? 2010-08-31 (火) 13:03:19
  • 書き込みが遅くなったんですが、先日Ver.9を読ませて頂きました。私なりの感想として、最も適した使い道は「USBブート対応・非対応にかかわらず、大容量USBディスクを追加接続して、多くのLinuxディストリを取っかえひっかえインストールするLinuxディストリビューション評価用PC(もちろんマルチブート)」だと思いました。 -- disklessfun? 2010-10-02 (土) 12:17:13
  • MInimum Ubuntuで使っても便利だと思います。壊れたブート環境なんかを本格復旧しなくても、とりあえずブートさせることが出来ますからね。 -- disklessfun? 2010-10-02 (土) 13:47:57
  • Ver.9をお読みくださったようで、有難うございました。MinimumUbuntuも拝見します。Ubuntu10.10RCでkexec-toolsのインストールに失敗したので、Aptosidで作ろうかと思っています。FreeBSDとかBSD系はkexec(-tools)では起動できませんよね? -- 鈴木清? 2010-10-07 (木) 02:33:40
  • MinimumUbuntuでkiyoshi's helpのスクリプトの本質部分を起動するのに成功しました。それによって別のUbuntuやDebianを起動できました。 -- 鈴木清? 2010-10-17 (日) 22:56:31
  • 「本質部分」となっているのはコマンド不足で全機能は使えなかったということなのでしょうね。今度私の方でも確認してみます。 -- disklessfun? 2010-10-18 (月) 22:58:15
  • ご返事くださり、有難うございました。「本質部分」というのは、Ubuntuのオリジナルの(改変していない)initramfs内のinitには含まれない、小生が書き足した部分という意味でした。誤解を生じやすい書き方をしまして、申し訳ございませんでした。 -- 鈴木清? 2010-10-21 (木) 21:46:26

PBRへのGRUBの再インストールについて Edit

mitsu? (2009-01-02 (金) 20:30:09)

 MBM3.9でマルチブートしようとしています。
openSUSE11.1とWindowsVistaです。
HDDの状況は、
HDD 1TB * 2 ICH10R RAID0
NTFS 1.8TB Vista 
ext3 100?MB /boot ext2Fsd
swap 8000?MB swap
ext3 191?GB / ext2Fsd
MBR MBM
です。
openSUSEのインストール時にGRUBのみインストール不可だった(MBR,PBR両方)
ので、GRUBのみインストールしたいのですが、
RAIDを正しく認識しているWindows上からext2Fsd経由でGRUBを
/bootのPBRにインストールする方法はないでしょうか。
また、grub.confの設定も教えていただけませんでしょうか。


  • openSUSE11もまだ、BIOSサポート付きのRAID 0パーティションへのGRUBインストールは対応していないようですね。(ちなみにBIOSサポートのないRAID 0パーティションへのGRUBのインストールは出来ません。)
    openSUSEもインストールはしたものの、現在はVistaだけが起動する状態なわけですね。
    Ext2Fsd経由でGRUBはインストールできないでしょうね。GRUBはインストール時に正しくファイルシステムの種類を認識する必要があるし、且つGRUBをPBRにインストールする場合にはstage2の絶対位置を取得する必要があるからです。前者は技術的には簡単ですが対応が必要ですし、後者は根本的に無理な理由です。GRUB自身がファイルシステムを直接解釈しない限りファイルの絶対位置はわかりませんので
    そのままのディスク・パーティション構成でopenSUSEを起動させるには、openSUSEのLive CD(DVD)やKNOPPIXやUbuntuなどのOne CD Linuxを起動してその上でGRUBを手動でインストールして復旧する他はないと思います。

    参考になるサイト
    http://slashdot.jp/~ribbon/journal/425657
    http://www.hinet.mydns.jp/tdiary/?date=20080112 ←こちらのLinuxの領域はRAIDではない。
    あと、こちら
    MBMでマルチブートするということは2段階ブートするということです。
    質問に対する回答からは外れますが、RAID 0の耐障害性が低いことは理解していますか? 一般的な考え方ではRAID 0のディスクには長期保存を要するデータは置けないわけで、2Gバイトもの大きさをどう使うんでしょう?
    どうしても速いディスクが欲しい用途にだけRAID 0やSSDを使い、その他の用途にはRAIDなしかRAID 1を選択するのが普通の使い方だと思います。

    grub.confの設定は教える必要はないと思いますよ。/bootパーティションの中にmenu.lst(grub.confはRed Hat独自に使用している名前)は既に用意されていると思います。カーネルやinitrdファイルの名前や起動オプションも既にそのファイルに記述されていると思います。逆に言うとそのようなopenSUSE11専用の細い情報はこちらが教えられる性質のものではありません。 -- disklessfun? 2009-01-03 (土) 18:42:21
  • RAID0が障害に弱いのは知っていますが、性能でボトルネックになるHDDの性能を引き上げようと思い、
    RAID0を構築しました。(クライアント機なので) KNOPPIX 5.3.1のDVDを所持しているので、
    GRUBの手動インストールの方法の詳細を教えていただけないでしょうか。
    menu.lstはこちらの不手際で、あるのに見逃していました。
    P.S.
    普通に、KNOPPIXで、
    grub
    grub > root (hd0,1)
    とすると、エラー18が出ます。原因は、最初のパーティーションが1.8TBある事だと思われるのですが
    1.8TB以降も認識させる方法はないでしょうか。
    • mitsu? 2009-01-03 (土) 21:32:59
  • パーティションの大きさ云々の前に、参考になるサイトに書いてあることを読みましたか?そのレスには参考になるサイトの影響が表れていませんよ。本件はある程度高度なことなので、mitsuさんご本人が調査・学習することが解決の早道になると思います。
    mitsuさんがディスク全体のRAID 0を選んだことに関してはそもそもMicrosoftに原因があると思います。Microsoftのクライアント用OSでのソフトウェアRAIDのサポートは極端に弱いです。Linux並にサポートされていれば、一部分だけRAID 0にするなんてことが簡単に出来る筈です。そちらのハードウェア環境・クライアントOSの種類で私がおすすめするRAID構成はマトリックスRAIDです。たとえばHDD1機あたり300GバイトはRAID 0、残り700GバイトはRAID 1にします。合計1.3Gバイトの容量となります。 -- disklessfun? 2009-01-04 (日) 15:39:32
  • dmraidを -- mitsu? 2009-01-04 (日) 17:17:49
  • KNOPPIXにはdmraidが入っていませんか?sudo apt-get install dmraidで入りませんか?それなら他のOne CD (DVD, Live)Linuxを使いましょう。それから正しくRAID 0の(仮想)HDDをhd0にマッピングしたとしても、駄目な可能性は多いにあります。たとえばBIOSがそんなに大きなアドレスからのブートに対応していない可能性も確かにあります。BIOSが対応していない場合はその構成ではもう対処のしようがありません。そのハード構成のままでいくなら、第一パーティションを今のWindowsではなくLinuxのブートパーティションにするなどの対策が必要になります。 -- disklessfunえ? 2009-01-04 (日) 17:27:05
  • すみません。よく読んでませんでした。
    RAID0はもうどうしようもないのでこのままでlinuxを入れようと思います。
    よく読んで、
    dmraid -ay
    grub --device-map=/dev/null
    grub> device (hd0,2) /dev/mapper/isw_(略)02
    grub> device (hd0) /dev/mapper/isw_(略)0
    root (hd0,2)
    としてみたのですが、結果は同じでした。
    自分でも色々調べてみたのですが、
    bootパーティーションを先頭に移すぐらいしか解決策が見当たりませんでした。
    Windows領域とbootパーティーションをそのままに、bootパーティーションを
    先頭に移動する方法は無いでしょうか。 -- mitsu? 2009-01-04 (日) 17:41:06
  • 念のため以下のようにやり直してもらえませんか?grubの画面上でまずは親デバイスである(hd0)を先にマップして、その次にその子デバイスである(hd0,1)マップしてやり直してみて下さい。(/bootは2番目のパーテションでしょ?2番めのパーティションなら(hd0,2)ではなくて(hd0,1)ですよ)
    /bootパーティションを先頭に移動する方法というより、それは実質的にWindowsを第一パーティションから第二パーティションに移動する方法ですね。商用のツールを使うか、一旦バックアップが取れれば今のWindowsの中身を損なわずに可能ですが、やはり簡単なのはKNOPPIXでハードディスクを仕切り直した上でWindowsを一からインストールし直すことです。 -- disklessfun? 2009-01-04 (日) 18:01:04
  • それから、今まではそちらの質問に沿って答えてきましたが、普通そういう場合、/bootパーティションをHDDの前の方に持ってくるよりも簡単な対応策をとることが出来ます。具体的には/bootパーティションをUSBメモリ内に持ってくる方法です。カーネル一世代だけ納めるだけなら16MバイトのUSBメモリで充分ですし、何世代もカーネルを保持するなら64〜128Mバイトくらい必要でしょう。これくらい簡単に用意できるでしょう。 -- disklessfun? 2009-01-04 (日) 19:43:37
  • 逆でやってみましたが
    Error 5: Partition table invalid or corrupt
    とエラーを返されます。
    • mitsu? 2009-01-04 (日) 19:50:24
       
  • 次は私の一つ前のレスの線で対応してみることをおすすめします。 -- disklessfun? 2009-01-04 (日) 21:35:29
  • SuperGRUBDiskのFD版でも試してみましたが、18エラーが出ました。
    menu.lstはSUSEインストール時に作られたものをそのまま使いました。-- mitsu? 2009-01-04 (日) 22:18:02
  • 4日19:43分のレスに対して反応がないので理解しているのか少し心配です。そこに書いてある手法だとBIOSの制限が存在したとしてもそれを回避できるんですよ。
    それとmenu.lstにはRAID 0の仮想デバイスがちゃんと記述されていましたか? -- disklessfun? 2009-01-05 (月) 00:11:23
  • menu.lstを自宅のサーバーにアップしておきました。
    http://www.hofu.mydns.jp/menu.lst
    USBメモリが無いのでUSBハードディスクをext3で100MBほどフォーマットして試そうとしたのですが
    エラーが出て上手くいきません。
    ところで、GRUBのコマンドからのインストールで、LBA32を有効にする方法は無いでしょうか。 -- mitsu? 2009-01-05 (月) 00:23:46
  • device.mapもアップしましたhttp://www.hofu.mydns.jp/device.map -- mitsu? 2009-01-05 (月) 20:27:57
  • EASEUS Partition Manager というソフトでパーティーションを移動して解決しました。 -- mitsu? 2009-01-06 (火) 12:33:34
  • 良かったですね。別の小ストレージを使って解決する方法(USBメモリを使う方法のこと)には興味がなさそうだったので、多分、そっちの線を目指してるんだろうと推測していました。物事の解決手段というものは通常沢山あるもので、私はあまりそっちの線は使わないのですが、窓の杜で扱っているソフトならわりと信頼がおけるでしょうから今後も有力な手段として使えそうですね。最後にですが、出来ればマザーボードのメーカーに症状を説明してBIOSのアップデートを願い出て欲しいですね。 -- disklessfun? 2009-01-08 (木) 01:09:03

mbmについて Edit

yukimusi? (2008-12-31 (水) 21:40:24)

mbm0.390でWindows,Fedora,ubuntuのマルチブート楽しんでいます。3つ共基本パーティションではOKでした。別のHDDつまり、件の画像での拡張域sda2論理sda5にubuntuでセットしました。#grub >root(hd0,4)>setup(hd0,4)>quitで問題なく終えていますが、MbmでWindows,fedoraは表示されますが、Ubuntuが出てきません。解決の糸口をお願い致します。ご迷惑をおかけしました。 (^^;

aa.png

  • 論理領域はMBMの画面上では、初期状態では折り畳まれていて表示されていません。↓↑キーでカーソルをsda2の行まで動かし、→キーを押すと展開されてsda5,sda6の領域が表示される筈です。でもそれより前にF1キー、F4キーを押すべきですね。 -- disklessfun? 2008-12-31 (水) 22:20:24
  • ありがとうございます。「初期状態では折り畳まれていて表示されてい」ませんので、「sda2の行まで動かし」たいのですが、そのsda2(拡張域)が表示されないのです。?と思いながら#grub >setup(hd0,1)...sda2(拡張域)と試しにやってみましたが当然 Cannot mount selected partitionでした。
    よろしくお願い致します。 -- yukimusi? 2009-01-01 (木) 14:35:23
  • 僭越ながら例えば対象のハードディスクを間違えているとか、何らかの勘違いをしている可能性があるのではないかと思います。現在の状況をこの掲示板上で説明できていますか?もし下の画像を現在の環境のFedora上で取得できるのだとしたら、「何が問題なんだろう?」という印象です。可能ならFedora上で適切な権限なユーザでfdisk -l の結果をテキストに落としてこちらに教えて下さい。またそれが出来ないのなら一体MBMの画面がどうなっているのかが知りたいのでデジカメ画像が見たいです。 -- disklessfun? 2009-01-01 (木) 17:50:39
  • 取り敢えずfdiskのみ送ります。

    # fdisk /dev/sda -l

    Disk /dev/sda: 40.0 GB, 40020664320 bytes
    255 heads, 63 sectors/track, 4865 cylinders
    Units = シリンダ数 of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xd704d704

    デバイス Boot Start End Blocks Id System
    /dev/sda1 1 892 7164958+ 7 HPFS/NTFS
    /dev/sda2 893 2840 15647310 5 拡張領域
    /dev/sda3 * 2841 2865 200812+ 83 Linux
    /dev/sda4 2866 4865 16065000 8e Linux LVM
    /dev/sda5 893 2752 14940418+ 83 Linux
    /dev/sda6 2753 2840 706828+ 82 Linux swap / Solaris
    -- yukimusi? 2009-01-01 (木) 18:14:19
  • 写真は今のところ無理ですので、出来るだけ正確に。
    1. WindowsXP
    2. +DOS Extend
    3. Fedora10
    4. Unkown
    5. Diskette
    です。よろしくお願い致します。 -- yukimusi? {2009-01-01 (木) 18:29:51};
  • +DOS Extendの行に↓↑キーでカーソルを移動し、→キーを押すとEXT2の領域が出現しませんか?でも不思議ですね。FedoraとかWindowsXPとか、行に名前を付けたのなら、その程度の操作方法も自然と身についている筈なんですが。もしかして名前を付けたのは他の人ですか?ちなみにMBMで拡張領域を展開表示できるのは一度に一箇所だけです。他のハードディスクやUSBメモリが接続されていてそちらの拡張領域が既に展開表示されている場合はまずそれを←キーで閉じて下さい。 -- disklessfun? 2009-01-01 (木) 19:14:12
  • このように、一連の追加質問は「記事の投稿」ではなく「コメントの挿入」でお願いします。コメントは自動で改行してくれないので少々使いにくいですが、なんとか宜しくお願いします。 -- disklessfun? 2009-01-01 (木) 21:29:12
  • 当初1〜5が出た時点で一応それぞれ試し1,3以外がNOTGOだったので、設定の問題かと思ったのです。2を選択するとブラックアウトになります。他のデバイスは接続していません。後説明ですみません。 -- yukimusi? 2009-01-01 (木) 22:21:07
  • 言い訳ですが、当初2はなかったのではと思いだしたりして、すっかり混乱してきましたが、現在は2は報告の通りです。よろしくお願い致します。 -- yukimusi? 2009-01-01 (木) 22:38:16
  • もういちど書きますよ。+DOS Extendの行に↓↑キーでカーソルを移動し、→キーを押すとEXT2の領域が出現しませんか?
    EXT2の領域とはIDが83の領域だということでもあります。GUIに頼らずにfdiskコマンドを使えば用語の理解が進むと思います。
    setup(hd0,4)したわけなんだから2の行の上でEnterを押してもブートできないのは当然です。(hd0,4)とは、そちらの環境の場合/dev/sda5を指しているわけですよ。2の行(拡張領域を表す行)の上で→キーを押して論理領域を表示させないと...
    fdisk -lの出力結果をよく読んだ方がいいと思います。Start、Endの数字をじっくり読めばハードディスクがどのように使われているかがよく理解できると思います。 -- disklessfun? 2009-01-02 (金) 00:45:45
  • 出来ました [tip] 。混乱して前回「→キーを押す」なんて目に入りませんでした。「setup(hd0,4)したわけなんだから2の行の上でEnterを押してもブートできないのは当然です。」そうですよね。これもわかってから「当然」と気づきます。それにしてもこんな出来の悪い奴に辛抱強くお付き合い頂き、心から感謝致します。disklessfunさんて本当にいい人ですね。 (// ありがとうございました。 -- yukimusi? 2009-01-02 (金) 12:12:30
  • yukimusiさんと同じようにスタックした経験のある人は多いのかもしれません。今回のやりとりが後に他の人の役に立つこともあるかも(やも)しれません。
    ちなみに→キーを押すというアドバイスは前回、前々回が初めてじゃなくて、一昨日の初回のレスに既に書いてありますよ。 -- disklessfun? 2009-01-02 (金) 15:42:57
  • うわっ (OO; 改めて すみませんでした。ありがとうございました。 -- yukimusi? 2009-01-03 (土) 15:27:40

PL-IRM0101回路の受信距離について Edit

moxth? (2008-11-18 (火) 23:40:29)

「出来るだけ安くLIRCリモコン受信部を作る」
を拝見いたしました。
「その3」が非常にシンプルな回路でしたので、
ブレッドボード上で仮組みして試してみました。
信号がきちんと受信できており、問題なさそうに見えたので、
運用へと切り替えてみたのですが、距離の問題にぶつかりました。
どうやら「その3」の回路では、リモコンとの距離を
50cm程離すと通信できなくなるようです。

「その2」の回路では3m程度離しても通信できましたので、
ツェナーダイオードとレギュレータの違いですね。
勉強になりました。

  • 実際に作成した「その2」の画像を添付しました。
    irm0101_1.JPG
    irm0101_3.JPG


MBMがGPLに Edit

通りすがり? (2008-11-01 (土) 21:04:05)

MBMについて検索しているうちにこのサイトに辿りつきました。
とても参考になるサイトで、マルチブート環境構築の勉強になりました。
そのときに気づいたのですが、
2008-10-29にR.039がリリースされ、ライセンスがGNU GPLとなったようです。
とりあえずご報告までに。


  • ご連絡ありがとうございます。以前からchanさんはGPL化も検討されていました。とにかくこれでLinux各ディストリビューションの標準的なパッケージに含めることも可能になりました。今後が少し楽しみです。欲を言えばGPL化は8年くらい前でも良かった気がします。間もなく、MBMが使用できない容量2G超のHDDが標準の時代が到来するからです。 -- disklessfun? 2008-11-01 (土) 21:31:20

バイクの車速パルスについて Edit

こうじ? (2008-09-13 (土) 15:12:45)

ドラッグスターのスピードメーター(ワイヤー式)を現行モデルの電気式に交換しました。
市販(キタコ製)の車速パルス発生機(メーターギア取付けタイプ)を付けましたがパルス数が違うらしくドラッグスター純正のメーターではODOメーターとトリップメーターは通常の1/10(1K走って100M)程しか進みません。
パルス信号を増幅させて調整する装置などがあれば改善できますか?
社外メーターではメーターの機能に予めメーカーごとのパルス信号を設定し変換して通常の速度を表示させる機能がついています。
どうしても純正のメーターがいいので作ることはできますか?


  • この場合は増幅じゃなくて、増加ですね。増幅だと振幅を大きくする意味になってしまいますので
    パルス数を変換する装置は簡単に作れます。しかしこの場合のようにパルス数を増やす場合は、パルス発生装置の段階で丁度いいパルス数を発生させる場合に比べて精度が低くなってしまいます。また多少のタイムラグも避けられません。でもパルス発生装置・メータの双方を変更できないなら他に方法はないでしょう。外部割込みあり、タイマ2個のマイコンを使えば簡単です。 -- disklessfun? 2008-09-13 (土) 18:20:35
  • 回答ありがとうございます。そういった電気に関してはど素人なもんで (T-T                             -- こうじ? 2008-09-13 (土) 21:32:37
  • 実際に、外部割込みあり、タイマ2個のマイコン、と言われましても、部品も分からなければ、どのようにしたらいいかわかりません。創ってくれる所分かりますか?もしくは費用プラスαお支払いたしますので、創っていただけないでしょうか。 -- こうじ? 2008-09-13 (土) 21:41:34
  • まずは今の10倍の数のパルスを発生するパルス発生装置を探したらいかがでしょうか。
    で、そういうのがなかったとして、
    私はマイコン工作で商売はしていませんし、そのバイクが目の前にあるわけでもないので、私はやりません。
    パルス数変換器を作ったことのある人は他にいると思いますよ。そのようなものを探す検索ワードをよく見かけますので
    でも、そういう人・ホームページが見つかったとしても、作ってもらえるかどうかはわかりませんよね。この機会に電子工作に手を染めてみてはいかがでしょうか。
    もし、ご自身でやられるのなら、このページ上でお手伝いしますよ。 -- disklessfun? 2008-09-13 (土) 22:34:43
  • パルス数を減らす装置ならよくあると思いますが、パルス数を増やす装置は見つかりにくいかもしれません。仕組みとしては、入力パルスを外部割込みで受け取ります。1個目のタイマで外部割込みと外部割込みの間の時間を計ります。その時間から出力すべきパルスの周波数を求め、それに応じた周期を2個目のタイマにセットし出力パルスを発生させます。取り扱うパルスの周波数よりマイコンの動作周波数が十分に高い為、割り込みに順位が付けられないマイコンで事足りると思います。 -- disklessfun? 2008-09-14 (日) 17:39:32
  • すみません。本当にまったく分からない為、飽きれると思いますが、まず何を買えばいいですか?素人相手に申し訳ありません。素人でも分かる様に細かくお願いします。頑張りますので、見捨てないでください。 (T-T -- こうじ? 2008-09-15 (月) 06:25:58
  • ちょっと期待させ過ぎてしまったようです。お手伝いはしてもいいと思っていますが、それは手取り足取り教えるという意味ではありません。当サイトは検索すれば他のサイトから容易に見つかる情報は載せない主義です。そもそもマイコン電子工作はweb上の情報が非常に充実している分野です。3年前、電子工作の知識がゼロとは言いませんが電子工作初心者の私が最初に作ったのがこれです。web上を含め誰か特定の人に教えてもらったりはしていません。様々なwebサイトから十分な知識が得られます。とりあえず知っている言葉で検索してみて下さい。その結果、また新たな言葉を知り、どんどん知識は広がっていきます。何が必要かもどんどんわかってくる筈です。このページでは他のwebサイトからズバリな情報を得にくいもの、つまりパルス増加装置の開発ノウハウに関してお手伝いできるかと思います。PICマイコンを使うなら当サイトのこれこれこれのソースコードが参考になると思います。 -- disklessfun? 2008-09-15 (月) 12:26:50
  • まずは、パルスに合わせてLEDを点滅させる装置を作ることに専心すればいいと思います。これならハードは簡単だし、ファームウェアもファームウェアと呼べないほどの簡単なもので済みます。こんな簡単なものでもハード的には僅かな改良で最終物になります。この時点ではタイマは必要ありません。この時点で入力パルスのだいたいの最大周波数を知ることができます。これが本格的なファームウェアを作成する際の資料になります。 -- disklessfun? 2008-09-18 (木) 23:35:17
  • このほど、車速パルス変換を主に取り扱ったページを設けました。車速パルスの増加(正式に言うと車速パルスの逓倍)は難しいですね。特に10倍ともなると。 -- disklessfun? 2010-08-13 (金) 11:43:36

PC電源チェッカーの製作 Edit

みかん? (2008-08-12 (火) 21:45:10)

PC電源チェッカーの製作拝見しました。
電子工作素人ですが、小型シール鉛蓄電池 (12V 2.3Ah)にPC電源チェッカーをつけて、外でラジオを使おうと思ってます。
電圧が下がれば、ブザーがなるので便利かも。
回路は、そのまま変更なしで製作すればいいですか?
なにせ素人なので、動作原理分かりません (^^;
詳しい説明お願いします (^^;


  • ラジオに指定以外の電池をレギュレータを介さずに直接接続すると、ラジオや電池が壊れたり、最悪、火災の恐れもありますよ。電源(電圧)チェッカーを使う以前に、近くの詳しい人に相談した方がいいと思います。一般的な話をしますと、ある機器の純正電源が定電圧なら、同一定電圧で純正以上の供給能力を持つ他の電源に交換することは通常は可能ですが(もちろん自己責任で)、それ以外の場合はいろいろと問題が複雑になります。電気に詳しくなければ手出しをしない方が安全だと思います。 -- disklessfun? 2008-08-12 (火) 23:22:33

raid0の復旧について Edit

消去

Vine Linux 4.2 の外付USB HDD へのインストール Edit

みのむし? (2008-02-17 (日) 09:13:15)

 Vine Linux 4.2(以後、VL4.2)を以下の環境にインストールしてみました。
インストールは何の問題も無く、すごく簡単に出来たのですが、
VL4.2 の起動は出来ませんでした。

ノートPC EPSON Endeavor NA702
外付USB HDD HPポケット・メディア・ドライブ WDC WD25 00BEVS-60UST0 250GB

ここの記事を参考にさせて頂き、initrd.img を作成し直しました。
Xubuntu 7.10 の環境から起動関連のファイル/ディレクトリをそのままコピーし、
その環境で VL4.2 を起動した後、initrd.img を作成し直す。
その過程で、以下のモジュールが必要でした。
なお、カーネルはF8のソースパッケージから生成したソースツリーを使って
「カーネルの再構築」を実施しています。

ata_piix.ko
ehci-hcd.ko
ext3.ko
jbd.ko
libata.ko
ohci-hcd.ko
scsi_mod.ko
sd_mod.ko
uhci-hcd.ko
usb-storage.ko
usbcore.ko

df -Th

...
/dev/sda6 ext3 19G 6.9G 11G 40% /
...

fdisk -l

(内蔵HDDは /dev/hdaxとして認識され)

デバイス Boot      Start         End      Blocks   Id  System

/dev/sda1 1 17 136521 83 Linux
/dev/sda2 18 148 1052257+ 82 Linux swap / Solaris
/dev/sda3 149 2698 20482875 83 Linux
/dev/sda4 2699 9997 58629217+ 5 拡張領域
/dev/sda5 * 2699 5131 19543041 83 Linux
/dev/sda6 5132 7564 19543041 83 Linux
/dev/sda7 7565 9997 19543041 83 Linux
(残りの領域は未使用)


  • みのむしさん、ものすごく大掛かりなことをされてますね。「ここの記事を参考にさせて頂き、」と書いておられますが、上を読ませて頂くと、実質的には「ここの記事は参考とせずに独自の手順で作業しました」と書いてあるに等しいと思います。私の書いたページからは「VineはそのままではUSBハードディスクでは使えない」ということを知ったに過ぎないと思います。私の書いたやり方のはXubuntuやFedora等の他の環境を必要としないものです。それにみのむしさん、せっかくの書き込みなのにどのようなエラーが起きたのかが書いてありませんね。 -- disklessfun? 2008-02-17 (日) 09:38:16
  • >せっかくの書き込みなのにどのようなエラーが起きたのかが書いてありませんね。 正確なメッセージは忘れましたが、usb-storage が読み込まれていないので USB HDD のパーティションが認識されず、「Kernel Panic」が起こって起動出来ませんでした。 -- みのむし? 2008-02-17 (日) 20:00:21

NTFS の PBR 修復 Edit

けんじ? (2008-01-11 (金) 22:08:11)

はじめまして。
「強力な(?)NTFSのPBR修復法」を拝見いたしました。linux にて grub-install で NTFS の PBR を壊してしまったので、大変参考になりました。修復に3日も費やしてしまいましたが、おかげさまで治りました。最終的には、その partition のイメージを dd で抜き出して、末尾の 512 bytes(PBRのバックアップらしい)を先頭に上書きすることで解決できました。NTFSの仕様(?)に救われました。
何はともあれ、このページがなければ路頭に迷っていたところです。
どうもありがとうございました。


  • こちらこそありがとうございます。

    「NTFSブートパーティションの末尾にバックアップされているPBRを自動的に抽出する」スクリプトを作成しました。こちらです。 -- disklessfun? 2008-01-12 (土) 13:24:36

Re:電源の電圧が下がっています Edit

disklessfun? (2008-01-05 (土) 13:00:31)

PCショップで電源を購入して自分で取り替えればいいと思います。
PCショップには故障した電源を持っていって、似たものを選ぶといいでしょう。←これは是非お薦めします。
ちなみに激安電源はまず爆音だと考えたほうがいいです。私はそういうのを買って、ファンを静穏タイプに取り替えて使用することもあります。ただしファンの取り替えには大抵の場合半田付けが必要です。
メーカーに有償修理を依頼すると、どこのメーカーでも4万以上すると思います。


  • ありがとうございました、参考になりました。 -- T.Kinoshita? 2008-01-07 (月) 10:11:26
  • 修理は可能でしょうか?液漏れ・はんだのひび割れも見当たらない状態です -- T.Kinoshita? 2008-01-07 (月) 16:50:42
  • 無負荷のときの出力電圧が定格(5V、12V)で、急に大きな負荷をかけると下がるのなら、コンデンサを交換すればすっかり直る可能性が高いです。 -- disklessfun? 2008-01-08 (火) 00:28:31
  • 状態は、無負荷でこの状態です -- T.Kinoshita? 2008-01-09 (水) 09:00:57
  • 写真も見ました。二つ前のレスの条件と明らかに異なるのでコンデンサの交換では直らないでしょう。電源を新規購入しましょう。新規購入も場合によっては安く済みます。先日私なんか、デルのATXのデスクトップの電源が壊れたんで2980円の激安電源に交換しましたよ。もちろんファンは即交換したので合計4300円くらいかかったということになります。激安電源なので長持ちは期待できませんが、今の使用頻度なら3年持つだろうと思っています。ハードディスクの寿命が短いことは危険だと思いますが、電源は壊れてもデータがなくなることは(まず)ないので、こんなやり方もありだと思います。 -- disklessfun? 2008-01-09 (水) 22:18:28
  • 写真の削除には管理者パスが必要です。私しかできません。だから消したい場合は申し出て下さい。 -- disklessfun? 2008-01-10 (木) 00:53:34
  • そういやファイル名に「水冷」とありましたね。どうりで修理にこだわっているわけですね。簡単なのはCPUファンと電源とをセットで市販のものに取り替える方法でしょうけど、Pen4系でしょうし、少々お金がかさみますね。メーカー製PCで特殊な部品を使っているものはトラブルの時に困りますね。 -- disklessfun? 2008-01-10 (木) 01:28:06
  • ありがとうございました、日本橋に行ってきます -- T.Kinoshita? 2008-01-11 (金) 16:50:45

電源の電圧が下がっています Edit

T.Kinoshita? (2008-01-04 (金) 16:55:06)

ATX対応電源でNECの空冷PCについているものですが、勝手にPCが止まったりしますので電圧測定したところ

  1. 5V 4.6V
  2. 12V 10.5V
  3. 3.3V 3.3V
  • 12V 12.0V
    SVSB5V 5.1V
    以上の状態です、外観では異常はないようでホトホト困っています
    何かいい方法はないでしょうかNECは5万円・・・・馬鹿にしています!!!


Re:ジュアルブートについて Edit

disklessfun? (2007-04-28 (土) 22:23:21)

 質問全体の印象からLinux初心者だとお見受けしました。
 相手が初心者ならば、事細かに質問をすることから始めるのが筋なのですが、とりあえず、それらしい答えを書いてみます。こちらの推定に間違っている部分があれば、(出来ることなら)指摘して下さい。
 「Vineのブートローダの設定時にwindowsを設定」と書いてあるので、実際にはwindowsは消去はされておらず、ただ自動的に起動しないだけの可能性が高いと思います。何故ならVineのブートローダの設定時にwindowsの起動設定の確認が出るのは、確かwindwsパーティションが存在する場合のみだからです。初心者がwindowsパーティションが存在しない環境で手動でwindowsの設定をおこなう可能性は低いと判断しました。(この推定が間違っている場合は指摘して下さい)

 Vineのインストール時にハードディスクを一旦全部初期化しなかったんですよね!パーティションについて、ある程度の理解があって、Windowsのパーティションを残した上で、Linux用のパーティションを確保したんですよね!(この推定が間違っている場合は指摘して下さい)

 Windows XPのCDは立ち上がっていない(起動していない)のではなく、一旦起動したものの、ハードディスク上に既にWindowsパーティションが存在しているので、制御を自分自身(CD)からハードディスクに譲ってしまい、毎度、結局、ハードディスク上で起動順が一番のVine Linuxが起動してしまっているだけだと思います。
 Windows XPのCDを起動するには、CDを起動させようとした際に、英語で、「CDを起動したければ何かキーを押して下さい」と聞かれた際に、指示されたとおりにどれでもいいので何かキーを押して下さい。
 ハードディスク上に残っている(であろう)Windows XPを起動したければ、Vineの起動前、grub(ブートローダ)の画面が表示されているタイミングでエスケイプボタンを押し、多分表示される(可能性が高い)Windowsの行をカーソル上下キーで選択し、Enterキーを押して下さい。
 (上の続き)自動的にWindows XPを起動したければ、一旦Vine Linuxを起動し、viエディタ等で/boot/grub/grub.confを編集して下さい。
 Vineはもういらないのであれば、Windows XPのCDを起動し、修復セットアップを選びFIXBOOTでも実行して下さい。Vineのパーティションは消えるわけではありませんが、Vineは起動できなくなり、(この方法でも)Windowsが自動的に起動するようになります。



ジュアルブートについて Edit

mukku? (2007-04-28 (土) 17:11:10)

Vine Linuxnについて教えてください。
もともと、windows Xpが入っていたのですが、Vine Linuxn4を導入時に消えてしまいました。windows XpのCDを入れても立ち上がらないので、再度Vine Linuxnをインスツールし、その際、ブートローダの設定時にwindowsを設定しましたがやはりwindows XpのCDが立ち上がりません。どのように設定すればよいかお教え下さい。よろしくお願いします。



tftpインストールの終焉? Edit

disklessfun? (2006-11-08 (水) 00:50:13)

「USBフラッシュメモリでFedora Core 6をインストールするには」という記事がありました。

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/953usbinst.html
実際にやってみたところ、少々初心者の方には難しい問題も発生しましたが最終結果自体は全く問題ありませんでした。
 光学ドライブのない1スピンドルPCでのOSインストール方法として以前はtftpブートでインストールという方法がメジャーでしたが、今後はこの方法が主流になっていく気がします。母艦側の構築が圧倒的に簡単です。
 ただ当ホームページのディスクレスOS記事は実運用をディスクレスでおこなうことを主たる目的としています。元々殆どインストールは重点においていません。



Fedora Core Linux ディスクレス化キットのToDo Edit

disklessfun? (2006-08-21 (月) 21:56:07)

現在はNFSを使用していますが、本キットの特徴はカーネルのNFSROOT機能を使用していないことです。
つまり、他のファイルシステムに変更できる可能性があります。
セキュアなファイルシステムに変更したいところです。