FC2ブログ

HDDクローン化時間

先週こちらの記事で紹介させていただきました、SSD交換に続き、HDDも交換しました。



・概要

HDD は
WD10EZEX (1T)
から
WD40EZRZ-rt2 (4T)
に交換して3T増。

ちゃんと裏をとれていないのですが、今回交換したHDDの型番は
WD40EZRZ-rt2
で、これの全バージョンのようなものがあってそれが
WD40EZRZ-rt1

と、rt1、rt2というものがあるようなのですが、どうもこのrt1は欠陥があるようでかなり故障率が高く、rt2は改善版という書き込みをされている方がいました。
今回はこの商品がパソコン工房でセールになっていたのと、上記の書き込みを信じてこれにしました。



・交換手順

  • macrium reflect」を使用してデータ移行。
  • 一旦電源を切って旧HDD取り外し
  • 再起動
  • ドライブレター調整




・SSD+HDD構成で、HDD交換時にドライブレターってどうなるのか?

現在使用しているPCが、OSとごく一部のデータのみSSD、その他はアプリ、マイドキュメントなども含めてHDDに入れる、という構成にしています。
これまで、1つのHDDに全データをいれている場合のクローン化はやったことがあるのですが、アプリ等までサブHDD似いれた状態でのクローンでの移行は今回初めてでした。

1つのHDDをクローン化→旧HDDとクローン化したHDDを交換
とした場合は、ドライブレターは新旧ともに「C:」だったのですが、サブの場合はどうなるのか疑問でした。

で、サブHDD交換時の挙動と設定は大体下記のような感じです。

  • クローン化してディスクをクローン先と交換。
  • 再起動(セーフモード等でなく普通に)。
  • 再起動時に正常に起動できない。
    この段階では以降元と以降先ディスクのドライブレターは別のものになっています。
    この状態でどのように起動されるか少々心配でしたが、単純にOSからマイドキュメントとかスタートアップも見つけられないのでほぼ何も起動処理がされない常態で初期化が終了し、そのときにその旨がエラー表示されます。
  • ドライブレターを移行元と同じに変更して再起動。
    このときに再起動後に適用される、という内容のメッセージが表示され、自動では再起動されませんので手作業で再起動します。
  • 上記手順で再起動が完了すれば、問題がなければ旧ディスクと同様に正常に起動されます。




・HDD→HDDのクローンにかかる時間

なんか意外だったのですが、googleで 「HDD クローン 時間」 とかで検索しても、「これぐらいかかりました」という情報はなぜか全然出てきてくれないようなのですが、とりあえず私の環境では

1T→4Tのクローン化で
1時間52分
でした。



・WD40EZRZ-rt2について

価格.comでみる限りでは特に言及されている方がいないようなのですが、駆動音が少々大きめです。
特別うるさいわけでもありませんが、最近使ってきたディスクの中では音は大きいほうです。



スポンサーサイト

SSD交換ですこし詰まった件

数日前にSSDを交換したのですが、そのときに少しだけてこずったのでそのときの記録です。


・まとめ

まず先に行った手順のまとめです。

  • 840EVOからCT250MX500SSD1に交換した。
  • EaseUS Todo Backupでデータをクローン化で移行しようとしたが失敗した。
  • Macrium Reflectで再度クローン化すると成功。
  • クローン完了後、SSDを差し替えて再起動すると、1回目の起動でエラー処理が行われたがその後は正常に動作。

大体こんな感じでした。


・EaseUS Todo Backup
EaseUS Todo Backup

これまで何度もHDDの交換はやったことがあり、これまではこちらのソフトを使って問題なく移行できていたのですが今回始めて失敗しました。
snap_3725_181110_130834.png
状況としては、このような感じで、どうもデータの移行そのものは終わっているようなのですが、その後の
「システム情報の更新を開始します。」
とログがでているところから処理が進まなくなりました。

データ移行自体が完了するまでは10分程度、その後2時間30分までまっても処理が終わらなかったので中止することに。
この状態で、UIは固まっていないのですが、キャンセルボタンを押しても何もおきないので、強制終了。

ここで一旦OSを再起動したのですが、この時点でどうも移行先のSSDはデータ破損がある状態になっています。


・Macrium Reflect
Macrium Reflect

こちらのソフトは今回始めて使いました。
こちらはUIは英語のみのようですが、UI自体がそこまで難しくは無いので、英語がわからない人でも翻訳を使えば使い方は大体わかると思います。

こちらはクローン化を実行すると普通に成功。
処理時間は大体 11分 程度でした。
やはりSSDはHDDよりも大幅に速いですね。
1時間過ぎても終わっていない場合は処理が失敗している可能性が高いのではないかと思います。

・クローン後について
クローンが完了すると、私の場合は一旦PCの電源を切り、旧SSDは取り外し、新SSDに付け替えを行いました。
その後1回目の起動で、エラーが発生。

そのときの状況を記録するのを忘れたのですが、ざっくりというと、「システムに異常があるので修復する」という感じのメッセージが出て、その後修復作業が行われました。

その後、自動で再起動が行われ、その後は正常に動作。

大体こんな流れで完了です。


EaseUS Todo Backupが初めて失敗したので、少々あせりましたが、どうもgoogleで調べたところでは、あまり評判がよくないようで、もしかしたら安定性は低いのかもしれません。

VSCodeのmarkdownでコードブロックのスタイルを指定する方法

VSCodeでmarkdownをエクスポートすると、どうにもコードブロックがやけに薄く表示される設定になっているようで、

たとえば、

`hello`


このようなコードを書いてhtmlにエクスポートしてやると、

snap_3831_180902_231404.png

ちょうどこんな感じの色で表示されてしまいます。

それでスタイルを変えてやろうと思って、次のようにコードを変えてやったところ、、、

<style>
code
{
    color: red;
}
</style>

`hello`


これで再度htmlでエクスポートしてやったところ、どうもこれでは反応してくれないようで、元の色のまま。

で、少し調べたところ、どうも

<style>
:not(pre):not(.hljs) > code
{
    color: red;
}
</style>

`hello`


のように指定してやると正しくスタイルが適用されるようです。

リファクタリング実例 OpenSceneGraph TangentSpaceGenerator

普段コードのリファクタリングをすることが良くあって、いつか作業の例を紹介したいなと思っていたのですが、
中々業務用のコードを公開するわけには行きませんので機会が無かったのですが、最近オープンソースの
コードリーディングをすることがあって、そのときに行ったリファクタリングの例を紹介したいと思います。


対象のコード

https://github.com/openscenegraph/OpenSceneGraph/blob/OpenSceneGraph-3.6.0/src/osgUtil/TangentSpaceGenerator.cpp

e0eb4fb on 21 Nov 2017
のリビジョンのコードの一部をリファクタリングしていきます。

これは、OpenSceneGraphという3DCG用のライブラリのコードの一部で、3D形状の接方向を推定するコードになっています。

コードの詳細は省略しますが、概要としては、まずこのモジュールに3D形状の一部を構成刷る三角形が与えられます。
で、その三角形の各頂点に対して接方向、及び従法線の方向を推定する、という内容になっています。

各変数の詳細説明は省略しますが、大体下記の命名ルールとなっているようです

P : position
N : normal(法線)
T : tangent(接線)
B : Binormal(従法線)


問題箇所抜粋

完全なコピペではないのですが、初期状態で次のような状態になっています。




やけに面倒なコードになっていますので、順を追ってコードをスリムにしていきます。



手順

まずはじめに下記の変換をやっていきます。

  • 冗長なコードを変数に抽出
  • 不要な代入をインライン化
  • コードを関連する処理ごとにグルーピング


これらの編集を加えたコードが次になります。




この段階ではコード量は増えてしまっていますが、以降の手順でどんどん圧縮されていきます。

続いて、次のステップでは単純なコードの調整だけではなく、理論を若干考慮した変換を行っていきます。

  • vcx.x, vcy.x, vcz.xが同値なので、参照する変数をまとめる+if文も1つにまとめる。
  • normalizeは不要なので削除する。

それぞれ、根拠はベクトルの計算を考えればわかります。

で、それらの変換を行ったコードがこちら。




このような状態にすると明らかになるのですが、実は単なるベクトルで計算すれば良いところが、成分単位で記述されているところが多く見られますので、そのあたりの不要なコードを省略してやります。




コードがこの状態になると、実はT123、B123が不要であることがわかります。
それぞれ、一回0で初期化される→値を1回加算される→1回参照される
というだけの流れになるので、不要な加算、代入を省略することができます。

また、if文はガード節に変換してやります。




ここまで来ると、実は外積がほとんど働いていないことがわかりますので、すべてインライン展開してやります。




で、次が最後。

コードがこの状態になると、またここでも本来ベクトル単位での演算で良いところを、成分単位で計算してしまっていますので、
省略してやります。




で以上になります。

最初のコードと比較すると、元々57行あったのが、17行と3分の1以下まで圧縮出来ることがわかります。



3D関係素材サイト



HDRLabs sIBL_Archive
無料で使えるHDRが公開されています。



CC0 Textures
テクスチャデータ。
非常に高品質なのにCC0で公開されています。



Library: Pixar One Twenty Eight
Pixarのテクスチャライブラリです。
ややリピート処理がうまく出来ていません。
大体大丈夫ではありますが、ズームインすると結構目立つずれがあります。



Resources.blogscopia.com
3Dモデルが公開されています。
blendファイルが豊富にあります。




カレンダー
11 | 2018/12 | 01
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
最新記事
カテゴリ
Qt (21)
SDL (2)
MFC (2)
検索フォーム
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
リンク(管理用)
FC2カウンター