○ハードディスク障害と復元③
・photorec.sigの使い方
月別: 2016年5月
HDD
仮想化技術
Hyper-vを利用するにはVT-xとSLATが必要。SLATは
インテル® バーチャライゼーション・テクノロジーについて
のEPTにあたる。
VirtualBoxなどで64bitOSを利用するにはVT-xが必要
Disk2vhdツールで物理ディスク環境をVHDファイルに変換する
稼働中のマシンのHDDから、VMware Player用の仮想マシンを作る
PartImageでHDDをダンプする
利用中のPCを丸ごとVMware形式の仮想マシンへ変換「VMware vCenter Converter」
VMware/Hyper-Vの仮想ディスクを相互変換可能なフリーソフト【StarWind V2V Converter】
VHD to VMDK
vmware playerで既存のパーティションを起動する
VMware raw disk
VMware の仮想ディスクを物理ディスク構成に変更する方法
仮想マシンからローカルディスクに直接アクセスする
既にインストール済みのWindows 98をVMwareで使うには
IDEディスクを直接「rawディスクパーティション」として利用する
【参考】VMwareのディスクイメージをさくらのクラウドで利用する
VHD(仮想ハードディスク)をWindows7/Windows8/Windows Serverに直接マウントする方法
壊れたWindows PC(HDDは無事)のHDDを新マシン上のVMWareで仮想化して起動する
(削除)
仮想環境
ASP.net 操作ログ採取 TableAdapter拡張 改良版
○TableAdapterの基底クラスを作成
using System.ComponentModel; using System.Data.SqlClient; using System.Reflection; using System.Web; using System; namespace Logic.dataset { public class TableAdapterBase : Component { public SqlDataAdapter InnerAdapter { get { return (SqlDataAdapter)GetType().GetProperty("Adapter", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this, null); } } static public event SqlRowUpdatedEventHandler sqlRowUpdatedEvent = delegate { }; static public event SqlRowUpdatingEventHandler sqlRowUpdatingEvent = delegate { }; public TableAdapterBase() : base() { InnerAdapter.RowUpdated += rowUpdatedEventHandler; InnerAdapter.RowUpdating += rowUpdatingEventHandler; } private void rowUpdatedEventHandler(object sender, SqlRowUpdatedEventArgs e) { sqlRowUpdatedEvent(sender, e); } private void rowUpdatingEventHandler(object sender, SqlRowUpdatingEventArgs e) { sqlRowUpdatingEvent(sender, e); } } }
○イベントを設定
・Page_Load部 Logic.dataset.TableAdapterBase.sqlRowUpdatedEvent += putLogSqlRowUpdatedHandler; ・Page_Unload部 Logic.dataset.TableAdapterBase.sqlRowUpdatedEvent -= putLogSqlRowUpdatedHandler; private static void putLogSqlRowUpdatedHandler(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e) { putLog(e.Row); } private static void putLogSqlRowUpdatingHandler(object sender, System.Data.SqlClient.SqlRowUpdatingEventArgs e) { //putLog(e.Row); }
※dt.Update()系は拾えるが、dt.Delete()系はダメ。Update()でDeleteしていたら拾える?
SqlDataAdapterはsealedの為、拡張できない。。。
正規表現
・正規表現を可視化してまとめたチートシート 半角英数字のみ(空文字OK)・・・ /^[0-9a-zA-Z]*$/ ■サクラエディタ \t ・・・タブ ^ ・・・行頭 $ ・・・行末 ○○|△△ ・・・ or 検索 林(一郎|次郎) ・・・「林一郎」と「林次郎」に一致
ASP.net 操作ログ採取 DataTable
using System.Reflection; namespace Logic.dataset { public delegate void LogEventHandler(object sender, EventArgs e); public partial class data_〇〇 { partial class ○○DataTable { static public event LogEventHandler logEvent = delegate { }; public void myGetData() { //イベント発生 logEvent(this, EventArgs.Empty); : : namespace myApp { public class baseBasePage : System.Web.UI.Page { protected override void OnInit(EventArgs e) { //イベント追加 Logic.dataset.data_〇〇.〇〇DataTable.logEvent += putLogHandler; base.OnInit(e); } protected override void OnUnload(EventArgs e) { //イベント削除 Logic.dataset.data_〇〇.〇〇DataTable.logEvent -= putLogHandler; base.OnUnload(e); } : :