UEFI bootでディスクのSerial Noを変えて起動しなくなったら。

 検証用に大量の物理・仮想マシンを並べたりする時によく使われる、クローニングという手法。
 仮想マシンだと特に簡単にコピー出来るので、さくっと出来て嬉しいことが多い反面、気をつけなくてはいけないこともあるワケで。
 そんな中には、従来のBIOS環境だと気にする必要が無かった、UEFI環境ならではのネタもあるワケです。

 そんな中で今回ネタにするのは、割とありがちな「ディスクのシリアルID書き換えたら起動しなくなった」という話。
 自分も初めてやらかした時は「あちゃ~」という感じだったので。

 ◇

 まず、前提。

 状況:

 UEFIで起動する環境でブートドライブのシリアル番号を変更すると起動しなくなる。

 解決策:

 Step1:bcdbootで修理する。
 Step2:それで駄目なら、bootrecで修理する。

 当方が色々やらかした範囲では、ブートドライブのシリアル変更のみならbcdbootの自動修復で100%回復している。
 何も考えずに直してくれるのでこれが一番ラク。
 但し万が一これがコケた時に備えて、後で本来正当なbootrecのやり方もメモっておく。

 ◇

 以下、まずはbcdbootでやる方法。

 1:
 起動がコケてるマシンをWindows Install DVD(またはUSBメモリ等)で起動し、コマンドプロンプトを開く。

 システムによってはInstall DVDよりも起動優先度が高いデバイスが存在する為、必要ならばBIOS(UEFI)画面に入って起動優先度を変更する。
 DVDから起動したらインストールオプションから左下「コンピューターを修復する」を選択し、「トラブルシューティング」→「詳細オプション」→「コマンドプロンプト」。

 2:
 diskpartでWindows SystemのあるボリュームにC:を割り当てる。

 select disk 0
 → list volume
 → 一覧からWindows本体が入っているパーティションの番号をチェックし、select volume 番号
   (例えばselect volume 3)
   大抵の場合Infoに「ブート」と入っている
 → assign letter=C:
 → exit

 3:
 bcdbootでC:から起動するエントリを作成する。

 bcdboot C:¥Windows /l ja-JP

 4:
 DVDを抜いてシステムを再起動する。

 以上。
 実はこのうち3.のC:を割り当てる作業をせず、4.でオプション無のままでbcdbootコマンドを打つだけでも、結構な確率で起動する状態に戻せる。
 とはいえ時々コケることもあるので、ドライブレターを振っておいた方が幸せな模様。

 ◇

 それでは次に、bootrecコマンドを使う場合。
 以下の例は修復フルセット。

 1:
 起動がコケてるマシンをWindows Install DVD(またはUSBメモリ等)で起動し、コマンドプロンプトを開く。

 2:
 diskpartでWindows SystemのあるボリュームにC:を割り当てる。

 3:
 diskpartでBoot PartitionにF:を割り当てる。

 select disk 0
 → list volume
 → 一覧からBootパーティションの番号をチェックし、select volume 番号
   (例えばselect volume 0)
   大抵の場合Labelは「システムで予約済み」、Infoに「システム」と入っている
 → assign letter=F:
 → exit

 4:
 Bootフォルダに入ってbootrecコマンドで再構築する

 F:
 → 環境依存で以下のうちどれか、dir等でBootフォルダを探す
   cd ¥EFI¥Microsoft¥Boot
   cd ¥ESD¥Windows¥EFI¥Microsoft¥Boot
   cd ¥Boot
 → bootrec /fixboot
 → bootrec /fixmbr
 → bootrec /rebuildbcd

 5:
 DVDを抜いてシステムを再起動する。

 ◇

 以上、こんな感じでほぼ何とかなる筈。

 ちなみにマルチブート構成ではrebuildbcdで複数のWindowsが認識され自動でエントリに追加される筈だが、時々取りこぼしも出る模様。
 所詮自動修復なので、その辺りは手修正しましょうということで。

 あと、シリアル書換でなくトラブル対応でも良く出てくるbootrec /fixbootだが、そういう場合はWindows Systemの入っているボリューム(上の例だとC:)がActiveにマークされていることを確認することをお忘れ無く。Systemの入っているボリュームがActiveになっていないとこのコマンドはエラーになってくれるので。

Share

ヘンな名前のファイルが削除出来なくて困ったら。

 超絶今更っちゃ今更ネタなのだが、ちょっとドツボってる場面を見かけたので。

 WindowsのFileSystemAPIはまぁ実に実装がテキトーというか何というかなので、普通にエクスプローラやコマンドプロンプトからは扱えないファイル名のファイルも簡単に作れてしまう。
 まぁそれ自体は兎も角として、世間にはアンインストールしてもそういうファイルを残していくとか、挙げ句テンポラリファイルとしてそういうNGファイル名を使ってる為に、何かの拍子でテンポラリファイルが残ってしまうとアンインストールがエラーになるというヘボ実装のアプリが存在するのであり。

 で、そんなファイルを削除する方法。意外と知られていないらしいので、メモ代わりに書いておく。

 DOS窓を開いて「del ”¥¥?¥ドライブレター:¥フルパス¥ファイル名”」

 ※勿論「¥」は半角で。blogで半角にすると「\」に文字が化けてしまうので。

 ポイントは「¥¥?¥」の部分。
 これはWindowsが持つ特殊パスの一つで、通常使われるpath名展開・正規化エンジンをバイパスするもの。
 なので、通常は正規化されてしまい手が出せなくなるヘンなファイル名やフォルダ名も指定出来るようになる。

 逆に言うと、カレントパスを示す「.¥」等の特殊表記、パス記述での区切り記号(¥)の重複や代替区切り文字の使用(/)等は全てこの正規化エンジンが展開しているので、この指定方法を使うと全てNGになる。

 #なので、スクリプト等で厳密にパス名を検査したい場合に使ったり。

 ちなみに当方が見かけたのはCygwinをテキトーに入れてテキトーに削除しようとしてドツボってた場面。
 「REAME.」(←このファイル名の最後の「.」が問題)なるファイルが残ってしまい、エクスプローラから削除出来なくなる模様。

Share

マルチブートでドライブレターがズレて困ったら。

 さて、今回はパーティションコピーとかマルチブートとかそういう話。
 なのだが、ネタがネタなのでまずはコレを。

 注意:
 手法としては便利なパーティションコピーやマルチブートだが、ソフトウェアのライセンスに留意。
 製品によっては1台のPCでの使用でも複数ライセンスが必要なものがある。

 上記しっかり御理解いただいた上で、それでは続けましょうか。

 ◇

 さて、既存のシステムパーティションをコピーしてマルチブート化したりする時、Windowsでありがちなのが

 コピー先のパーティションから起動するとブートドライブがC:にならない

 というドツボ。
 当たり前といえば当たり前で、既存パーティションがC:であるという情報を持っているので新規パーティションはC:以外になるんですな。

 で、一般的な「HDD引っ越しソフト」では、この問題を避ける為に「旧HDDから新HDDにコピーした後、旧HDDを取り外して新HDDから起動して下さい」ということになっている。
 新HDDだけから起動すれば、既存パーティションが存在しないのでWindowsがドライブレターを再設定することもなく問題無い、と。

 ところが、単一HDDのパーティションを切り直してマルチブート化するという時は、この手法は使えない。何故って旧パーティションを取り外すことが出来ないから。
 で、昔からこのテのパーティション操作ソフトでよくやられていたのが、一時的にパーティションテーブル上のフラグを書き換えて旧パーティションをWindowsから見えない形に偽装してしまうこと。
 理屈からいえば正しいが、Windows自体にもブートマネージャが付いているご時世、このテのソフトにおカネを払うのも何だかなぁと(←発想がケチ臭い)。

 ◇

 それではこういう時どうすればいいかというと。
 Windowsはレジストリにドライブレターとボリュームシリアルとの対比表を持っているので、これを書き換えれば良いんですな。
 この対比表は起動時にWindowsに読み込まれるので、システムドライブのドライブレターもこの設定で決まるのです。

 その対比表だが、具体的にはレジストリのこんなところにあるんですよ。

 HKEY_LOCAL_MACHINE¥SYSTEM¥MountedDevices

 ここの「¥DosDevices¥C:」とかいうキーがそれ。
 つまりここの名前を変えると、ドライブレターが付け替えられるワケですよ。

 具体的には、こんな感じ。

 1. C:のコピーパーティションを作成する。この時ドライブレターは振らない。

 2. BCDeditでコピー先パーティションから起動出来るように設定する。

 3. コピー先パーティションから起動する。
  環境によってはぼちぼちエラーが出るが取り敢えず管理者権限でRegEditが起動出来ればセーフ。

 4. RegEditで自分が起動しているパーティションを(例えばD:から)C:へ交換する。
  この時旧パーティションがC:となっているので、現在起動しているドライブレターをC:にする。
  逆に旧パーティションは現在起動しているドライブレターが付くようにする。

 5. 再起動してコピー先パーティションから起動する。ドライブレターがC:になっていればOK。

 6. 念のため旧パーティションはドライブレターを外しておくのが吉。

 とまぁこの流れで、「マルチブートだがどれで起動してもC:」という環境が作れる。

 ◇

 ちなみにこの手法、Windows10を試してみたいが既存Windows環境が吹っ飛ぶのも困る、という時にも「技術的には」利用可能。
 パーティション自体をリサイズしたりコピーしたりするツールは個人利用に関してはタダ、といったものが色々あるので(どれもPartitionナントカとかいう名前)、そういうモノを使ってシステムパーティションのコピーを取り、BCDEditで起動設定をした後に前述の方法でドライブレターを修正すればOK。

 但し繰り返すが、ソフトウェアのライセンスには注意すること。
 まぁ正直マルチブート程度で複数ライセンスが必要になるってのはさすがにどうなんだという気がするが、そんなコトは作った方が決めることで、それが気に入らないならそのソフトは使わなければいいだけの話。

 では、今回はこんなところで。

Share

Microsoftの「One Windows」とは要するに、全てを「パソコン」にしてしまうということ。

 さて、日本ではGWで交通機関が大混雑していたりする間、海の向こうではMSのイベントであるbuildが開かれていましたよ。で、今回はまぁネタ的に色々出てきたワケなのだが、今更ながら自分が思った事をつらつらと書いてみようかと。

 ♯某PC情報サイトには相変わらずMicrosoft信者の著者によるMSの発表に心酔盲従な記事が出ていたりするが、そういうのは置いといて。

 ◇

 取り敢えず、自分の感想を一言でまとめてみる。

 「One Windows」とは「ALL DEVICES are PC」という意味である

 タイトルの繰り返しではあるが、要するにMicrosoftが目指す所はコレなんだな、ということをしみじみと感じてしまった。
 そしてこれは、「Tablet」や「Smartphone」という定義を掲げるAppleやGoogleに対抗する戦略であると。

 結局、Microsoftは「スマホ」とか「タブレット」というフォームファクタにて現在分断されている(そしてMSが全くシェアを取れていない)世界を、フォームファクタに関係なく全て「パソコン」で統一したいんですな。そしてソレはWindowsが動くモノである、と。
 そして全てが同じ「パソコン」である以上、同じアプリが動いてくれないと困るので、その為にUWPという仕組みを用意したと。

 一方で、今まで「スマホ」とか「タブレット」とかいうフォームファクタに慣れ親しんで来たユーザーを「パソコン」に移行させる為に、Androidアプリを動かすレイヤを載せたりまぁ何でもやります、というのが今回の発表のキモなんでしょう。少なくとも自分はそう理解したんですよ。

 ◇

 で、ここまでの話を聞くと、確かにMicrosoftの戦略としてこれは正しいと思われる。Appleもこの方向を目指しているという噂もあるし、GoogleがChromeBookやChromeBoxで目指しているのも方向性としては一緒ではないかと。

 とはいえ、個人的にはこの戦略がどこまで成功するかは非常に微妙ではないかと思うワケです。
 その根本的な理由は、デバイスの処理能力に幅があり過ぎることなんですよ。

 まず、「従来スタイル」の「パソコン」のスタイルでは、システムリソースをひたすら喰うことで何でも力技でブン回してしまうんですな。現在のWindowsがやっていることそのもの。
 仮にここで「ソフトが重い」となったら「ハードウェアを買い替えろ」となり、悪いのは処理能力の低い「パソコン」を使ってるユーザーとされるのです。
 更にOS側からも処理能力の低い「パソコン」を定期的に捨てさせることで全体の処理能力を引き上げていく。実際コレでMSとIntelは蜜月の関係になって「うぃんてる」と言われていました、と。

 ところがこの世界に、現在のPCでは信じられない程リソースプアなデバイスが大量に乗り込んでくるとなると、今までの「パソコン」の常識が通用しなくなるのではないか、と思うワケです。そしてそれはWindowsに対して良い影響は及ぼさない可能性も低くないだろうと。

 例えば、現在のPC用の大半が当てはまる(と自分は思っている)、プアなデバイスではまともに動かないヘビーなソフトウェアがどう評価されるのか。
 或はそういうヘビーなソフトウェアをうっかりプアなデバイスで触ってしまうというユーザー体験(←これホント気持ち悪い表現なのだが他に同等の言葉を知らないのですよ)をしてしまったユーザーが、以降Windowsに対してどういう印象を持つか。

 かといってそういうプアなデバイスで使える軽量なソフトウェアが広がればそれで良いかというと、それはまた違うでしょう、と。

 まず、軽量なアプリではどうしても出来ることは限られるし、既にiOSでもAndroidでもそんなアプリは星の数ほど存在する。
 その環境に満足している人達に、わざわざOSを乗り換えるというコスト高の作業をさせるだけのメリットをMSが提示したり訴求出来るとは思えない。
 そもそも、所詮Windowsが機能豊富な分AndroidやiOSより軽量に出来るワケが無い以上、どうしても同等の体感速度を出そうとするとハードウェア価格が割高になってしまうので、同じことしか出来ないアプリを使うならOSを乗り換えるメリットは全く無いワケで。

 更に、今までのWindowsのエコシステムというのは、ヘビーなソフトウェアを快適に使いたいという欲求が「パソコン」のリソース増強を招き、それに伴って更にヘビーな機能が追加されていくという、ユーザーの財布以外は全員幸せなサイクルで推進されてきたワケですよ。
 ここにきてもし万が一軽量ソフトウェアの台頭ということが起こってしまった場合、このエコシステムが破壊される=Windowsエコシステムそのものが破壊される=Microsoftが完全に市場での立ち位置を失う、ということになる気がするのですよ、自分はね。

 ◇

 更にこのデバイスによる能力差は、もう一つの問題を産み出すのではないかと。

 それは、開発者への負担の増大。

 そんなこと現在でも一緒だろ、とか言われそうだが、そこは違うと当方は主張したい。
 例えば現在、エンタープライズで活用されるTabletやSmartphoneはiPadやiPhoneが殆どで、より廉価でデバイス選択肢が多いAndroidが何故選ばれないのか。
 理由は簡単、開発する方からしてみればデバイス選択肢なんて狭ければ狭いほどラクなので。

 同じことは今回のユニバーサルアプリ(UWPA)でも言えるのではないかと。

 まず、UI一つ取っても、いくらUI作成APIの補助があるとはいえ、「スマホ」から「パソコン」までをカバーする複数パターンのUIをデザインし、アプリに作りこむのにどれだけの手間がかかるか。
 更に、デバイスのケイパビリティ(=対応能力。例えば画面の解像度とか、Wi-Fiやプリンタが繋がっているかとか)に応じてUIもアプリの挙動も変えるなどと言い出した日には・・・。

 関連して更に、MSが期待をかけているAndroidやiOSからのアプリの移植についても、果たしてそこまで活発に行われるのか疑問も残っているんですよ。

 Android環境を考えると現在でも環境バラバラで環境依存のトラブルは少なくない以上、更に輪をかけてトラブル多発しそう、しかもエミュレータだかトランスコーダだか挟む以上オーバーヘッドは少なくないと思われる環境に打って出る業者がどれだけ居るのか。

 iOS環境からの移植なんてのは更に敬遠されるだろうし・・・そもそも多機種展開したいベンダは現時点でAndroidとiOSは最低おさえているだろうから、Androidからの変換で十分だし、そもそもiOS用しか展開していないベンダは多機種展開に興味無いのではないかと。

 まぁ勿論、カネの論理でインストールベースである端末が世間に溢れればどんどん移植されるだろうが、現状では、ねぇ。

 ◇

 ・・・やや取り留めもなくなってしまったが、要するに。

 多数デバイスを環境統一しようとした時に必ず問題になる部分への配慮が全く足りない

 ように見えるんですよ、自分にはね。

 まぁ実際にはどうなるかは多分あと5年とか経たないと分からないが、取り敢えず現在のMSトップのナデラ氏はいい仕事をしているな、とは思う。

 ♯つかMSが全力を発揮すればこれだけの短期間でこれだけのダイナミックな動きが出来るってことが現在進行形で証明されているのだが、振り返って前職のバルマーってのは(以下略。

 以上、つらつらと書きたいことを書いてみましたとさ。

Share

「HGST ストレージ製品説明会 The First」に行ってきた。

 さて、今回は先日twitterではぽろっと出したHGSTのイベントに出てきた話でも。
 既に出ているITmediaとかImpress Watchの「当たり障りのない」記事とはなるべく被らない方向性で、つらつらと箇条書きっぽくに書いてみる。

 なお、当たり前だが、以下の記載内容については、当方のバイアスのかかった推測や補正込みの「印象」ということなのでお間違いなく。

 ◇

 全体としての印象は、HGSTの製品開発に対する姿勢というかポリシーは兎に角「カタい」ということを再認識。

 良い意味では「手堅い」ということであり、製品の品質といった部分ではHGST自身が絶対的な自信を持っているし、繰り返し出てきた「顧客のニーズ」「デマンド」「要望」といったキーワードをを取っても、本当に必要とされる製品を作ろうという姿勢はひしひしと伝わってくる。

 一方悪い意味では「固い」ということ。前述のひっくり返しではあるが、更に平たく言えば「面白みのない」ということでもある。これは更にひっくり返すと「面白みのある」製品がエンタープライズ市場で果たしてウケるのかという話でもあるのだが。

 ◇

 Heドライブについては、ユーザー側では当方も含めてヘリウム漏れの心配をしている声はやはり多いようだか、製造側としてはその要素についてはかなりの自信を持っている様子。ヘリウムシールの設計寿命は想定稼働時間5年に対して倍は見ているとか。

 ♯そしてヘリウム内圧は企業秘密。

 一方で2.5インチフォームファクタへのHe導入は今のところ考えていないそうで、理由としては2.5インチでは大容量のデマンドが非常に少ないから、だそうな。

 そして大容量といえば一般販売ではSeagateが先行しているSMRドライブだが、HGSTの現時点での姿勢は「特殊な用途向きで、直近で広く使われるものではないだろう」とのこと。
 HGSTとしては「大容量品でも今までと同じように使える」ことが重要だと考えていて、それ実際にHDDが使われる現場からのデマンドであり、正にそこにHeドライブの価値がある、ということらしい。

 HGSTはドライブメーカとして現在の旺盛な容量に対するデマンドは重々認識しているが、現状の技術ではどう頑張っても応えられていないのが現実、とのこと。

 次世代技術としてもHAMRやBPMRも勿論研究しているが、現状では研究室から出して製品化出来るレベルには達していないとのことで、特にストレージとして重要な信頼性という意味では・・・ということらしい。
 そういう意味で、現在の1.2TBプラッタ(密度)製品の販売期間は長くなるのでは、とも。

 一方で、現状以上にデマンドと製品の乖離が激しくなるようでは「プラッタを更に増やすという方向性も検討の余地あり」という風に解釈出来てしまう言い回しも。
 まぁ確かにプラッタ増やすってのは一番手っ取り早いテではあるし、HGSTが伝統的にプラッタ枚数マシマシ大好きなことを考えるとやりかねない気もする。が、現状7枚に更に追加って8枚ってことか?

 ちなみにヘリウム採用の決め手も結局「プラッタ増やすにはこれしかない」だったそうなので。
 ホントHGSTって多プラッタ好きだよね。

 ◇

 HGSTの現行ラインナップを見てみると、安売り競争となり利幅の薄いデスクトップ向けラインから手を引いたのは周知の事実だが、5K1500等の特色ある製品も整理されてしまったのは結局「ボリュームが出せないから」ということらしい。
 特に2.5インチについては大容量品へのデマンドは(コンシューマでも)殆んど無いそうで、逆に言うと、現在残っているTravelstarのラインナップ=デマンドがあるということらしい(具体的には500GB~1TBのライン)。

 5K1500については製品プロデュースを行ったHGSTの中の人としても思い入れはある製品で、購入者からも好評だったとのことだが、ビジネスとしての判断がなされたとのこと。
 また同じ理由で、個人的には大変期待していた5K2000も出ることは無い(現時点で製品企画自体が無い)とのこと。技術的には作ろうと思えばすぐ作れるんだけどね、らしいのだが。残念。

 ◇

 最後に、Ultrastar SNについてはNVMeやSCSI Expressの立ち上げ時期にフラッグシップとなる製品で特に(SSDの「見せ場」である)Queが深いトコでのIO密度が高いのがウリ、という位置づけのようだが、個人的に非常に気にしているハードウェア暗号化、具体的にはFIPS140-2やTCG Opal2、IEEE1667といったモノは実装していないそうな。その辺りは「これからの課題」らしい・・・う~ん。

 ♯SSD相手の高密度IOだとソフトウェア暗号化なんて全く歯が立たないので、個人的にはハードウェア暗号化は必須だと思っているので。

 また、この製品のEnduranceが3DWDなのは、HGSTとしてこのレベルを一つのスイートスポットとして見ているからとのこと。
 確かにIntelだとP3600がこの辺りの数字だったり、他社でも割とよく見る数字であり、やっぱ売れ筋なのかしらん・・・個人的にはエンタープライズで寿命を気にせず使い倒すには10DWDぐらい欲しい(Intelの3700とかがこの辺り)のだけど、やっぱり値段にも跳ね返ってくるし、ってことなんでしょうなぁ。

 ちなみに価格は「未定、検討中」とのこと。3.2TBのEnterprise SSDなんて、1台で100万は超えそうだが・・・。

 ◇

 以上、取り留めもない書き方ですが、当方の感想はこんな感じですかね。
 正直「マニアック」で、AMDがやってるAPUやnvidiaのGPUのイベントのようにライト層まで裾野広くファンが集うという性質のものではないとは思うが、それでも自分のような人間は「また新ネタが出来たらやってくれないかな」とは思いましたよ、はい。

Share