2013年7月30日火曜日

Swapのswappinessを小さくすることで、Linux Mint・Ubuntuを速くする

  • このエントリーをはてなブックマークに追加


既定では、Ubuntu、Linux MintでSwap領域(ハードディスク上の仮想メモリ)をよく使います。サーバーやメモリが少ない端末ではSwapを使用することがよいことですが、個人PC、クライアント(メモリが足りている)では高い頻度で使うとパフォーマンスに悪影響が出る恐れがあります。仮想メモリが本物のメモリよりはるかに遅いからです。

Swapのtendencyを表す値swappiness(範囲:0~100)があります。
0は、なるべくSwap領域を使わない
100は、よく使う。

この値を調整することで、Swapの使用を制御できます。

1)現在値の確認(既定では60になっている)
$ cat /proc/sys/vm/swappiness

2)値を小さくする
$ gksudo gedit /etc/sysctl.conf
sysctl.confファイルを開き、以下を追加する(例:10に設定)

# Reduce the swap tendency
vm.swappiness = 10

3)sysctl.confを保存し、rebootでシステムを再起動する

4)変更後再度値を確認
$ cat /proc/sys/vm/swappiness




2013年7月29日月曜日

PsExecでローカルコンピューター上のプログラムをリモートコンピューターにコピーして実行する

  • このエントリーをはてなブックマークに追加


PsExecに-cオブションがあります。

これを使って、ローカルコンピューターにあるプログラムをリモートコンピューターにコピーして実行することができます。

普通実行するプログラムがリモートサーバー上においてあります。

例えば、

リモートコンピューター c:\tmp\mkdir.bat
ローカルコンピューター c:\temp\PsExec.exe
c:\temp\call.bat

PsExecコマンドをcall.batバッチに書きます。

rem プログラムがリモートコンピューターにある場合
c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -p P@ssw0rd  c:\tmp\mkdir.bat

pause

image

call.batを実行すると、リモートコンピューターでc:\temp\testフォルダが作成されます。
image

 

-cオプションを使う場合、プログラムをローカルコンピューターに置きます。

リモートコンピューター なし
ローカルコンピューター c:\temp\PsExec.exe
c:\temp\call.bat
c:\temp\mkdir.bat

rem プログラムがローカルコンピューターにある場合
c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -p P@ssw0rd -c c:\temp\mkdir.bat

pause

image

image

PsExecでリモートコンピューターで実行するプログラムの優先度を設定する

  • このエントリーをはてなブックマークに追加


PsExecは、リモートコンピューター(サーバー、システム)でプログラムを実行できる強力なツールです。

詳細はこちらをご参照ください。

PsExec

PsExecでリモートコンピューター上のリモート実行対応のプログラムを実行出来ます。バッチ、Powershell、それから普通の.exe、ほとんど対応できます。

ただし、時にはリモートプログラムの実行が反応が遅かったり、途中で応答なし実行に失敗したりすることがあります。リモートコンピューターですぐにはプログラムを実行してくれないようです。

こういう時に、プログラムの実行優先度をHighなどに設定することで、解消できる可能性があります。

PsExecで設定できるプログラムの実行優先度は5つあります。

-low 優先度が低い
-belownormal 普通より低い
-belownormal 普通より高い
-high 優先度が高い
-realtime リアルタイムで優先度が適用される

例:優先度を高くしてリモートでプログラムを実行するコマンドは以下です。

c:\temp\psexec.exe \\server –u <user>  –p <password> –high <program>

c:\temp\psexec.exe \\10.10.3.60 -u contoso\administrator -high -p P@ssw0rd  c:\temp\hostname.bat

2013年7月21日日曜日

Linux Thinkpad トラックポイントの速度と感度を設定する

  • このエントリーをはてなブックマークに追加


自宅のPC(Thinkpad x201)にLinux Mint 15をインストールしてみました。ThinkPadのトラックポイント(Trackpoint)が鈍くて遅い、操作にはかなり不便を感じます。速くする方法を調べて見たところ、以下の方法を見つけました。二つの値(SpeedとSensitivity)を変更して速くなりました。

Ubuntu 10のころからこの方法で動くそうです。


SpeedとSensitivityという二つのファイルが/sys/devices/platform/i8042/serio1にあります。

Terminalを起動し、serio1に移動します。
root権限でspeed,sensitivityの値を変更します。
値の範囲は0~255、大きいほうが速いです。
私のPCの既定値はspeedが97で、sensitivityが128でした。
ここで両方とも255に設定します。

# echo -n 255 > speed
# echo -n 255 > sensitivity













変更後、トラックポイントの動きが速くなって快適に使えるようになります。

ただし、一度システムを再起動すると、元の値に戻ってしまいます。
それを回避するために、viで/etc/rc.localファイルに以下の二行を追加します。

echo -n 255 > /sys/devices/platform/i8042/serio1/speed
echo -n 255 > /sys/devices/platform/i8042/serio1/sensitivity























これでシステムを再起動する際に二つの値が自動的に255に設定されるようになります。

参考情報

How to configure the TrackPoint



2013年7月20日土曜日

デュアルブート(Windows 7とLinux Mint 15)のブート順序を変更する

  • このエントリーをはてなブックマークに追加


Windows 7とLinux Mint 15のDual Bootの環境を作成しました。Windows 7を先に入れて、Linux Mint 15はあとからインストールしました。

で、PCを起動すると、ブート方式が普段のWindows7のではなく、Linux GRUB loaderとなります。下の図の様な感じです。
image

Mint 14の画面ですが、Mint 15も同じ感じです。

何もしない時(デフォルトの状態)はMint 15に入りますが、windows7に入りたい場合は、一番下のWindows 7 Loaderを選択して起動出来ます。

デフォルトでWindows 7を起動したい場合は、この順序を変える必要があります。

順序を変えるにはEasyBCDというツールを使います。

ダウンロードはこちらから https://neosmart.net/EasyBCD/

1)EasyBCDを起動し、Mint 15のためのブートエントリーを追加する。
 image
Type:GRUB 2
Name:わかりやすい名前でいい

2)Windows 7のブートエントリーを追加する。
image
PartitionでWindows のシステムドライブを指定(既定ではC)
Install the Windows Vista/7 bootloader to MBRをチェックする

3)Windows 7とMint 15のブート順序を確認する。
image
Windows 7がデフォルト(YES)になっている。
必要に応じて、Timeout Optionsを指定する(既定では30秒カウントダウン)。ブートメニューをスキップしたい場合は、「Skip the boot menu」をチェックすればいい。

これで、設定が完了です。再起動すると、Windows7風のBootメニューが表示される。
image

2013年7月19日金曜日

Linux Mintのブート可能なUSBを作成する

  • このエントリーをはてなブックマークに追加


つい最近、Linux Mint 15 "Olivia"がリリースされました。すごいですね、シンプル、快速なMintが人気上昇中!

さて、Linux Mint 15 のインストール用のUSBを作成する手順を紹介します。他のバージョンやディストリビューションも適用できると思います。

1)まずは、Linux Mint 15のイメージファイルのダウンロードです。

Download Linux Mint 15 Olivia

デスクトップの種類が幾つかありますね。Cinnamon、MATE、Xfceとか。筆者はCinnamon 64bitを利用しています。

2)ブートUSB作成用のツールをダウンロードして、そのツールを使ってブート用のUSBを作成します。

ツールは割りと多いようです。ここでUnetbootinを選択して説明します。なぜなら、.exeファイルサイズが小さくて、ほぼすべてのディストリビューションが対応で、インストールする必要もないからです。ツールの選びはお好みでしてください。

現時点で最新版はUnetbootin-windows-585になっています。

UNetbootin, Universal Netboot Installer

Universal USB Installer

既にISOファイルをダウンロードできたので、「ディスクイメージ」を選択します。

imageimageimage
「終了」をクリックし、ブートUSBの作成が完了です。Bootable USBを使ってPCにLinux Mintをインストールできるようになります。

※補足
事前にISOファイルをダウンロードしていない場合でも、Unetbootinで自動的にダウンロードしてくれます。

imageimage

 

※注意

USBから起動しようとすると、下記メッセージが表示されて次へ進まないケースがあります。

BOOTMGR is missing
Press Ctrl+Alt+Del to restart

原因は、USBをFAT32にフォーマットしていないからです。

UnetbootinでLIVE USBを作成する前に、USBをフォーマットする必要があります。

「エクスプローラー」を開いて、対象USBを右クリックし、「フォーマット」を選択します。フォーマット画面でファイルシステムをFAT32(既定)に設定し、フォーマットを開始します。

image

これで作成したUSBからブートできるようになります。

2013年7月11日木曜日

証明書の最長有効期間について

  • このエントリーをはてなブックマークに追加


今日は証明書の最長有効期間についての話をしたいと思います。

certreq.exe –New –f c:\temp\win7.inf c:\temp\win7.req
※win7.infの中身を省略する
※certreqで証明書要求作成、発行について、こちらをご参照ください

certreq.exe –Submit  -q  -f  -config  ca01.test.local\test-ca01-ca   c:\temp\win7.req c:\temp\win7.cer

上記の証明書発行コマンド(Certreq.exe –submit…)をCAサーバー上で実行する時に、以下のようなメッセージが出る場合があります。

テンプレート有効期間が CA が許可する証明書の最長有効期間よりも長いため、証明書の有効期間は <テンプレート名> 証明書テンプレートが指定するよりも短くなります。CA 証明書を更新するか、テンプレートの有効期間を短くするか、レジストリ有効期間を長くしてください

メッセージ自体はエラーではありません。証明書が問題なく生成できます。ただし、作成できた証明書(win7.cer)の有効期限が証明書テンプレートで設定した有効期限と異なります。例えば、テンプレートで10年の有効期間を設定したのに、実際に作成できた証明書の有効期間が2年とか、5年未満になっていることがあります。

原因としては、証明書の有効期間が以下の3つ値と関連しているからです。

1、CAサーバー上のレジストリに設定された期間(既定2年)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriod
値:Years

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriodUnits
値:2

2、CAサーバーの有効期間

3、証明書テンプレートで設定された有効期間

1が2より、2が3より、優先順位が高いです。

 

例えば、
・2013年1月1日でルートCAサーバーを立てた。「このCAから生成された証明書の有効期間を選択」で5年に設定した。
image

・テンプレート作成で10年に設定した。

この場合、1~3の値は以下となります。
1、レジストリの有効期間が既定で2年
2、CAサーバーの有効期間は5年。(2013/01/01 ~ 2018/01/01)
3、テンプレートでの有効期間は10年。

●2013/06/01の時点でCertreqコマンドで証明書を生成した時に、1の制限が効くので、証明書の有効期間は2年(2013/06/01 ~ 2015/06/01)になる。

●1レジストリの値を10年に設定した場合、2の制限が適用される。有効期間は5年未満(2013/06/01 ~ 2018/01/01)になる。

●2CAの有効期間を15年に構成した場合(CAの有効期間:2013/01/01 ~ 2028/01/01)、3の制限が適用されるので、有効期間は10年(2013/06/01 ~ 2023/06/01)になる。

 

1のレジストリの有効期間の確認と設定はcertutilコマンドでもできます。

※確認
certutil –getreg ca\ValidityPeriod
certutil –getreg ca\ValidityPeriodUnits

※設定
certutil –setreg ca\ValidityPeriodUnits 10

※CertSvcサービスを再起動する

 

参考情報

How to Create Certificates with a Longer Validity Period

2013年7月10日水曜日

net useで共有フォルダをドライブにマッピングした場合、「管理者として実行」でCMDを起動するとドライブが認識されない

  • このエントリーをはてなブックマークに追加


net useを使って共有フォルダをローカルのドライブにマッピングします。普通にCMDを起動すると、ドライブを普通に利用できますが、「管理者として実行」で起動した場合は、”指定されたドライブが見つかりません”というメッセージが表示されます。

image

 

以下のシナリオを考えてみます。

・Xドライブに、管理者権限に昇格し実行する必要があるVBScript(Test.vbs)がある

・Test.vbsを呼び出すバッチ(callVBS.bat)がある

image

Test.vbsの内容は以下です。

' 管理者権限に昇格 
' WScript.Arguemnts.Count = 0:GUI 1:CUI 
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 
 
  ' Check WScript5.7~ and Vista~ 
  Set wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
  Set os = wmi.ExecQuery("SELECT *FROM Win32_OperatingSystem") 
  For Each value in os 
    if left(value.Version, 3) < 6.0 then exit do  'Exit if not vista 
  Next 
  
  ' Run this script as admin. 
  Set sha = CreateObject("Shell.Application") 
  sha.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" 
  
  WScript.Quit 
loop 
 
' todo: 
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.RegWrite "HKLM\SOFTWARE\Test\Value", "Test", "REG_SZ" 

 

バッチを実行すると、UACのポップアップ画面が表示されて、「はい」を選択したら、”スクリプト ファイル <Script name>が見つかりません。”という旨のエラーが出ます。

image

 

なぜかわからないですが、どうやら、マッピングしたドライブに直接実行することができなくて、VBScriptをローカルにコピーして実行する必要があります。

2013年7月4日木曜日

Windows Server 2012でMSFCを使わずに仮想マシンのライブマイグレーションを構成する

  • このエントリーをはてなブックマークに追加


Windows Server 2012以前のバージョンではライブマイグレーションを実現するためにフェールオーバークラスタリング(MSFC)が必須条件でした。2012になってFailover Clusterを使用せず、Live Migration環境を構築できるようになりました。非クラスター環境でライブ マイグレーションの大まかな手順を簡単にご紹介します。

●前提条件の確認

●「必要に応じて省略可能」制約付き委任を構成する
「Active Directoryユーザーとコンピューター」でコンピューターオブジェクトに対して設定する
image

●ライブマイグレーションの移行元サーバーと移行先サーバーを構成する
>Hyper-Vマネージャーで設定(移行元サーバー、移行先サーバーに対して同じ設定をする)
image

>Powershellで行う場合

PS C:\> Enable-VMMigration
PS C:\> Set-VMMigrationNetwork 192.168.10.1
PS C:\> Set-VMHost –VirtualMachineMigrationAuthenticationType Kerberos

 

●実行中の仮想マシンを移動する
Windows Server 2012 で Hyper-V を実行しているサーバーから別のサーバーへ、実行中の仮想マシンを移動する。
>Hyper-Vマネージャーを使う
image
image
image
image

>Powershellの場合

PS C:\> Move-VM LMTest TestServer02 –IncludeStorage –DestinationStoragePath D:\LMTest

 

参考情報

クラスター化されていない仮想マシンでのライブ マイグレーションの構成と使用