2012年10月30日火曜日

データは別の場所に 今さら……第46回


今さら聞けないネットのあれこれ。

「Cドライブにデータを貯めない」

についてお話します。


重要度:★★★★★
難易度:★~★★(場合によって)




先日のPCトラブル絡みで、思いついたのですが……
みなさんのPCはHDD(ハードディスク)の容量は、どのくらいでしょうか?

最近のPCはHDDが巨大化しており、デフォルトで、1TB搭載のPCが標準なのが当り前になっていますよね? そこで、そのPCのCドライブの容量はどのくらいでしょうか?

おそらく殆どの方が、メーカー出荷状態の状態で使用しているかと思われますが…… つまり、容量1TBのHDDをそのままCドライブ(システムドライブ)として使用している事になっているのではと思います。

個人的には、無駄にデカイHDDに意味は無いと思っているのですが、まぁその辺りはパソコンメーカーの経営戦略と言う事で(笑

一般的な使い方としては間違っていないし、別の使い方をしなさいとは、メーカーも言っていませんから悪い事ではありませんが……

しかしその使い方だと、トラブルに見舞われた場合の対処が大変です。
もし、突然PCが使えなくなって、HDDそのものをフォーマットしなければならなくなった場合、貯め込んだデータはどうしましょう?また、OSの入ったドライブに大量のデータを入れて置くことは、起動時に時間が掛かったり、システムが不安定になりやすい要因の一つです。

そう言った場合に備えて、OSの入ったドライブは、必要最低限のソフト(OSとわずかのアプリケーション※1)のみとして、残りは別のドライブ(Dドライブやその他)に保存すると言う方法をとります。

これはPCに詳しい人であれば、あるほど実践しています。
それは、先ほど言ったトラブル対策もそうですし、快適にPCを使う有効な工夫でもあります。

想像してください。
もしPCの調子が悪くなっても、最低限のシステムしか入っていなければ、データのバックアップの必要が無い、あるいは最低限のバックアップで済むので、OSの再インストールやクリーンインストールも楽に行えます。

ではその方法ですが、一番簡単な方法は【外付けHDD】の購入です。
現在使用しているHDDのパーテーション※2を分けて、別ドライブを製作するのではなく、
物理的にHDDを分ける事が重要です。
パーテーションを分けても、実際に同じHDD内であればあまり意味はありません。
むしろHDDの破損等の場合は、ドライブを分けていても意味がありません。

基本的に【ドライブを分ける】と言う事は、物理的に違うモノに入れると言う意味だと思ってください。
(DVDやBlu-rayでも結構ですが)

現在1TBの外付けHDDだと、1万円程度で購入出来るので、それほど高額ではありません。
わずか1万円程度で、リスクヘッジが可能ならばコストパフォーマンスは高いと思います。

また、大元のCドライブですが【My Documents】などのデータフォルダーをCドライブ以外に設定するだけで、それなりの効果があります。詳細については、近日中?にブログにUPしたいと思っています。


/////////////////////////////////////////////////////////////////////

※1アプリケーション
普段使うアプリケーションですが、Cドライブ以外にインストールする事は可能です。ただし、OSのシステムを使う一部のアプリはCドライブにしかインストール出来ません。そう言った必須Cドライブのアプリケーション以外は、全てCドライブ以外にインストールすると、Cドライブはかなり軽くなりますのでお試しを。

※2パーテーション
HDDの内部を仕切る(パーテーション)事で、複数のドライブとして利用する方法。
ただし、物理的には1つのHDDであるので、パーテーションを切った複数のドライブの何処かにトラブルが起きれば、他のドライブにも影響を与える事になる。



2012年10月26日金曜日

PC復旧の手順 今さら……第45回


今さら聞けないネットのあれこれ。
今回はWindowsXPで
「PCが壊れた?と思ったらやる作業」
についてお話します。


重要度:★★★★★
難易度:★~★★★★★(場合によって)



先日、仕事で使っているPCが突然ダウン!

原因を探ったけど、最終的には【不明】でした。
胡散臭い挙動は幾つかあったのですが、最終的に決めてが無く【これが原因】と言えるこのがありませんでした。 実際の話として、【原因不明の不具合】はよくあることですが、気分的にすっきりしません。

とりあえず、現状なんとか動いているので今は【これでよし】としています。

と言う事で今回はPCが不調になった時に行なう修復手順と言うお話をしましょう。

復旧方法の詳細につては、それそれの項目をクリックして頂ければ、Googleでの検索画面が表示されますので、それを確認してください。

そう言えば、今回のお話はあくまでもWindowsXPでのお話です。
Vistaや7では若干違いますので、ご了承ください。

OSが通常起動する場合の手順 ※可能であればセーフモードで作業してください。
1.ウイルスチェック
2.ハード空き容量確認
3.復元ポイント
4.デフラグ
5.ディスククリ―アップ
6.レジストリ修復

上記の方法でまだダメなときは、下記の方法を行う。※1

OSが起動しない場合
1.システムの再インストール(OSの上書き)
2.クリーンインストール(ハードディスクをフォーマット後、システムを最初からインストール)


OSのインストールをしても起動しない・あるいは不安定な場合。
この時点で、一般的な方はPCをサポートセンターなり、ある程度専門知識を持った方に診てもう事が良いでしょう。 この症状の場合ハード系トラブルの可能性が高いので、メモリー交換・ハードディスク交換を行う必要があります。また最悪の場合は、マザーボードが破損している可能性があるので、自作PC以外はこの時点で【終わり】ですね。


/////////////////////////

ざっとあげると上記の様な事を行う訳ですが、殆どの場合【レジストリ修復】までの作業を行えば、不具合は解消されます。
PCの不具合で多いのは、【ハードディスク容量不足からくる、システムの不安定化】【レジストリー改変による動作不良】の二つの場合が殆どです。※2

Windowsに限らす、PC上のOSは通常ハードディスクの空きスペースを使って様々な処理を行っています。

この空き容量が少ないと、その処理が実行出来ない為に、動作が遅くなったり【仮想データを置いておく場所】が無い為にプログラムが動かせないなどの不具合がおきます。

そう言った不具合を無くす為にも、ハードディスクの空き容量は15~20%を見てください。10%以下の空き容量では、動作が不安定になり、最悪の場合はデフラグすら行えなくなります。

基本的にOSが入っているCドライブにあるデータ(プログラムを含め全てのデータ)は少なければ、少ないほどPCは快適に動作してくれます。

次に多い不具合は【レジストリ】に関する不具合です。
レジストリとは、アプリケーションなどで使用する【拡張情報】として扱われるファイルで、OSまたはアプリケーションなどによって、情報が書き変わる性格のモノです。

このレジストリが、OSの不具合などでいきなりシャットダウンされると、書き込まれた情報が破損してしまい、関連したプログラムが上手く動作しないと言った不具合に見舞われます。

そこで、このレジストリを修復する事で、不具合を解消するわけです。

レジストリ修復の方法は、色々とありますがsfc /scannow システムファイルチェッカーと言うモノがWindowsにはあります。また無料・有料のソフトとして、レジストリーを修復するソフトも有りますので、試してみるのもよいでしょう。

ただし、レジストリの修復は必ずしも良い結果をもたらす訳ではないので、注意が必要です。
と言うのもレジストリを変更すると言う事は、【現状の設定とは違う設定に書き換える】とも言えます。
つまり、レジストリを変更することで、今まで使えていたソフトやサービスが使えなくなる可能性もあります。大抵の場合は、アプリケーションの削除と、新規インストールで問題は解決できますが、そう言ったリスクを理解した上で行う事が求められます。


いずれにしても、不具合が出て動作に不安があるようなら、ある程度覚悟を決めて徹底的に【修復】した方が後々いい結果を招きます。



/////////////////////////////////////

※1
代表的な作業項目を列挙しただけです。
本来であれば、メモリーチェックやHDDチェックなども行なう事が必要ですが、今回は省略させて頂きました。

※2
ウィルスによる不具合は除きます。




2012年10月12日金曜日

Modx ユーザー別管理画面の編集関係。


ご無沙汰しています。

ここのところ、少々立て込んでいて放置していましたが、時間を見てまた再開します。

今日はModxの覚書です。

ユーザー管理関連で、色々と実験をしていたので、その内容の覚書です。

※2012/10/15 追記
この設定方法は、Modx1.0.6.-r6以降のバージョンにて行なってください。
r6以前のバージョンだとエラーが発生して、編集したコンテンツを保存できません。

別な方法により設置は可能でしょうが、今回の方法ではr6以前のバージョンでは対応致しません。
下記の方法を試される場合は、
必ずr6にバージョンUPした状態で、行なってください。



ユーザー管理から、ロール設定、グループ設定等を行うと、設定されたユーザー権限のページしか表示できない機能がある事はご存じかと思います。

しかし、フォルダの階層構造上、どうしても【権限が無い】あるいは【グループ制限なし(Public)】のページを表示しなければならない場合があります。

それは、編集させたいページの上位フォルダーとされるページです。

ロール設定では、フォルダ(コンテナ)に対し設定された管理権限が無いと、そのフォルダ内の物は全て表示されなくなります。(編集可能なコンテンツはありませんと表示されます)

このようなときに、そのフォルダは【グループ制限なし(Public)】※1状態にして、誰もが閲覧・編集可能な状態にするしか手段がありません。

しかし、そのページはユーザーに編集させたくない場合にどうしたらよいか……

と言う事で、どうしても表示されてしまうが、「編集させたくないページ」を

MODX管理画面でフォルダ(コンテナ)内だけを編集可能にする。

上記の方法で回避する事を試してみます。

しかし、この記事はあくまで
ManagerManager
をある程度使用した事がある。と言うことが前提で実際の使い方(コードの設置方法等)が今一つ……

なので、このコードの設置のしかたを書いておきます。
(私もあまり使った事が無いので、完全に自己流です)


メインのコードはmm.inc.php

上記のメインになるコードは、

/plugins/managermanager/mm.inc.php

に書き込み。

mm.inc.phpを開き、最終行以下に、下記コードをペースト。

// テンプレートID指定でアクセス不可を設定する関数
if (! function_exists("mm_deny_templates")) {
function mm_deny_templates($role_users, $tpl, $denied_message) {
global $mm_current_page;
$templates = makeArray($tpl);
if (in_array($mm_current_page['template'], $templates)) {
$docid = (int)$_GET[id];
mm_widget_accessdenied($docid, $denied_message, $role_users);
}
}
}


この時に、サイトに書いてある最後の変数に関しては、記述しない事。

//////// この部分は記述しない ///////////////
$role = '!1'; // 管理者(ロールID:1)以外のユーザに対して
$tpl = '1,2'; // テンプレートIDが1,2の場合、ユーザは編集不可にする。
$msg = 'このフォルダ自体は編集できません。子リソースを作成・編集して下さい。';
mm_deny_templates($role, $tpl, $msg);


これを書いてしまうと、ページを表示したときにエラーコードが表示されるので、注意が必要。


後は、実際の命令文を、

エレメント管理>チャンク>mm_rules

に記述する。
記述位置は、3行目以降で、

/* =============

とコメントアウトしている前。

書き込み例

mm_widget_showimagetvs(); // Imageタイプのテンプレート変数の画像をプレビューします
if($modx->config['track_visitors']==='0') mm_hideFields('log');

//// ここから下 /////

mm_deny_templates('3', '4', 'このフォルダ自体は編集できません。子リソースを作成・編集して下さい。');


//// ここより上 /////

/* ==========================================================

と言った感じ。


書き込む書式は、下記のようにすれはOK。

mm_deny_templates('3', '4', 'このフォルダ自体は編集できません。子リソースを作成・編集して下さい。');

解説
上記の書式は、管理者ID3番は、テンプレートID4番の場合、編集出来ないようにする。
編集出来ない画面には「このフォルダ自体は編集できません。子リソースを作成・編集して下さい。」と表示しなさい。

と言った内容。

少し解りにくいかと思うので、もう少し柔らかく。
要するに、

ID3番のユーザーは、テンプレート4番以外のぺーじは編集できます。

と言う事です。


この方法は、はっきり言って自己流です。

でも、問題無く動いているで、とりあえずOKと言う事で。
もう少しスマートな方法があれば、コメントをください。



※1
必ずしも【グループ制限なし(Public)】である必要はありません。
この階層以下を編集するユーザーが関連した、他の管理ロールでも問題ありません。