harry’s memorandum

おれおれメモ

util-linuxのツールその他

twitter経由で知った。lsblkなんて知らんかった。


util-linuxのツールなんだね。

# rpm -qf `which lsblk`
util-linux-ng-2.17.2-12.9.el6.x86_64


lsblkコマンド。確かにfdiskより見やすい。

# lsblk
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                    202:0    0   32G  0 disk
|-xvda1                 202:1    0  500M  0 part /boot
`-xvda2                 202:2    0 31.5G  0 part
  |-vg00-lv_root (dm-0) 253:0    0 30.5G  0 lvm  /
  `-vg00-lv_swap (dm-1) 253:1    0    1G  0 lvm  [SWAP]

# lsblk -l
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                202:0    0   32G  0 disk
xvda1               202:1    0  500M  0 part /boot
xvda2               202:2    0 31.5G  0 part
vg00-lv_root (dm-0) 253:0    0 30.5G  0 lvm  /
vg00-lv_swap (dm-1) 253:1    0    1G  0 lvm  [SWAP]

他にもutil-linuxには面白いものあるんだろうかと、見てみていたら結構あった。

blkidコマンド。まず使わないな。

# blkid
/dev/xvda1: UUID="e4d0a34d-e867-4aac-85e2-e9895cd07773" TYPE="ext4"
/dev/xvda2: UUID="TYUcrO-MSoO-ARWA-fofZ-BFmx-Xy1g-wieV10" TYPE="LVM2_member"
/dev/mapper/vg00-lv_root: UUID="04c39e55-5fcb-4d29-9971-cd3d0c05c9cf" TYPE="ext4"
/dev/mapper/vg00-lv_swap: UUID="08062b70-582c-45b9-a600-3b493b7df703" TYPE="swap"


findfsコマンド。LABELやUUIDを探すっていうのがなんですな。まず使わない。

# findfs
Usage: findfs LABEL=<label>|UUID=<uuid>
# findfs UUID=e4d0a34d-e867-4aac-85e2-e9895cd07773
/dev/xvda1


findmntコマンド。つかうことねーなぁ、と思ったりしたけど/proc以下の情報があったりして、おおーと思ったけど、やっぱり使わない。

# findmnt
TARGET                       SOURCE                   FSTYPE    OPTIONS
/                            /dev/mapper/vg00-lv_root ext4      rw,relatime,barrier=1,data
|-/proc                      proc                     proc      rw,relatime
| |-/proc/bus/usb            /proc/bus/usb            usbfs     rw,relatime
| |-/proc/sys/fs/binfmt_misc                          binfmt_mi rw,relatime
| `-/proc/xen                                         xenfs     rw,relatime
|-/sys                       sysfs                    sysfs     rw,relatime
|-/dev                       devtmpfs                 devtmpfs  rw,relatime,size=473704k,n
| |-/dev/pts                 devpts                   devpts    rw,relatime,gid=5,mode=620
| `-/dev/shm                 tmpfs                    tmpfs     rw,relatime
|-/boot                      /dev/xvda1               ext4      rw,relatime,barrier=1,data
`-/var/lib/nfs/rpc_pipefs    sunrpc                   rpc_pipef rw,relatime


findmntは/proc/self/mountinfoをみているんだね。

# strace -f -e open findmnt 2>&1 > /dev/null  | grep proc
open("/proc/self/mountinfo", O_RDONLY)  = 3


sfdiskコマンド。fdiskよりこっちの方が見易いじゃん。

# /sbin/sfdisk -l

Disk /dev/xvda: 4177 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvda1   *      0+     63-     64-    512000   83  Linux
/dev/xvda2         63+   4177-   4114-  33041408   8e  Linux LVM
/dev/xvda3          0       -       0          0    0  Empty
/dev/xvda4          0       -       0          0    0  Empty

Disk /dev/mapper/vg00-lv_root: 3982 cylinders, 255 heads, 63 sectors/track

Disk /dev/mapper/vg00-lv_swap: 130 cylinders, 255 heads, 63 sectors/track
# /sbin/sfdisk -s
/dev/xvda:  33554432
/dev/mapper/vg00-lv_root:  31989760
/dev/mapper/vg00-lv_swap:   1048576
total: 66592768 blocks


nameiコマンド。シンボリックリンクを追ってくれるらしい。こんなの使わんわ。

# ln -s /tmp/yum.log /tmp/aaa
# ln -s /tmp/aaa /tmp/bbb
# ln -s /tmp/bbb /tmp/ccc
# ln -s /tmp/ccc /tmp/ddd
# ls -l /tmp/aaa
lrwxrwxrwx 1 root root 12 Apr 10 00:09 /tmp/aaa -> /tmp/yum.log
# ls -l /tmp/ddd
lrwxrwxrwx 1 root root 8 Apr 10 00:10 /tmp/ddd -> /tmp/ccc
# namei -l /tmp/ddd
f: /tmp/ddd
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
lrwxrwxrwx root root ddd -> /tmp/ccc
dr-xr-xr-x root root   /
drwxrwxrwt root root   tmp
lrwxrwxrwx root root   ccc -> /tmp/bbb
dr-xr-xr-x root root     /
drwxrwxrwt root root     tmp
lrwxrwxrwx root root     bbb -> /tmp/aaa
dr-xr-xr-x root root       /
drwxrwxrwt root root       tmp
lrwxrwxrwx root root       aaa -> /tmp/yum.log
dr-xr-xr-x root root         /
drwxrwxrwt root root         tmp
-rw------- root root         yum.log


cfdiskコマンド。ncursesを使ったキャラクタベースのfdisk。samやsmittyやsysadmをみる気持ちになります。これは気持ちだけで十分だ。

                              cfdisk (util-linux-ng 2.17.2)

                                  Disk Drive: /dev/xvda
                             Size: 34359738368 bytes, 34.3 GB
                   Heads: 255   Sectors per Track: 63   Cylinders: 4177

    Name          Flags       Part Type   FS Type            [Label]          Size (MB)
 ----------------------------------------------------------------------------------------
                               Pri/Log    Free Space                               1.05  *
    xvda1         Boot         Primary    Linux ext3                             524.29  *
    xvda2                      Primary    Linux LVM                            33834.41  *

     [   Help   ]  [   New    ]  [  Print   ]  [   Quit   ]  [  Units   ]
     [  Write   ]


ctrlaltdelコマンド。なんだこれは、、、あああー。

# ctrlaltdel
Usage: ctrlaltdel hard|soft
# ctrlaltdel hard

今日は終わり。

UltraVNCのちょっとした小技

UltraVNCも使って早10年近くなりました。始めて触ったときは「まじに遅いわ」と思っていたのですが、UltraVNCのMirrorDriverのおかげか意外にさくさく使えたりします。とりあえず私のUltraVNCの設定を備忘録。

使うもの

  • XenServer6.1 (Windows7のVMを使います)
  • UltraVNC
  • UltraVNC MirrorDriver
  • ZoneScreen (ソフトウェアデュアルモニタ)
  • gpedit.msc (Windowsのグループポリシーエディタ)

UltraVNCのインストール

http://www.uvnc.com/
最初はUltraVNCをインストールします。2013/01/29時点では Version 1.1.8.0 が最新です。
サービスとして起動するように「Select Addtional Tasks」で以下のチェックを入れます。

f:id:dharry:20130130005812p:plain

UltraVNCのMirrorDriverのインストール

http://www.uvnc.com/downloads/mirror-driver/85-mirror-driver-downloads.html
ここでは注意が必要です。RDPセッションでは絶対にインストールしないでください。まじに泣きます。必ずコンソールセッションでインストールしてください。
とりあえず全部チェック入れてしまいましょう。

f:id:dharry:20130130005811p:plain

サービスで起動しているUltraVNCからログオンできるようにグループポリシーを変更

Windows Vista以降、セキュリティ対策のセッション0分離というやつのせいで、UltraVNCのサービスにViewerでアクセスしてもログインできません。
http://msdn.microsoft.com/ja-jp/windows/desktop/dd871151.aspx
ただ、対策がないわけではありません。Windows7 or Windows2008 ではグループポリシーの設定を変更することで対応可能になります。

1. gpedit.msc を実行
2. [コンピュータの構成]
     ->[管理テンプレート]
      -->[Windowsコンポーネント]
       --->[Windowsログオンのオプション]
  「ソフトウェアのSecure Attention Sequenceを無効または有効にする」を「有効」+「サービス」に変更

UltraVNCの設定

ここは好きな設定にします。私の場合は余計なものを外すようにしています。

1. スタートメニューから[UltraVNC]の「Edit Setting」を起動
2. Securityタブ
 - 任意のパスワードを設定。Windows認証にした方が管理は楽かも。
3. Input/FilterTransferタブ
 - [Disable Viewer inputs]のチェックを外す
 - [Japanese(v102 keyboard method)をチェック
4. Screen CaptureタブのAdvanced
 - [Use system hook.dll]をチェック
 - [Use Mirror driver]をチェック
 - [Remove Aero while connected]をチェック
 - [Remove Wallpaper while connected]をチェック


これでログオフログオンできるし、通常で使えるレベルになったと思います。でも若干物足りない...。
f:id:dharry:20130130013724p:plain

ZoneScreenでデュアルモニタ

http://www.zoneos.com/zonescreen.htm
解像度をアップするために、仮想ディスプレイに接続してみます。
ZoneScreenをインストールしますが、Windows7の場合、インストール時に「デジタル署名のないドライバ」と警告がでて使用出来ません。
f:id:dharry:20130130015118p:plain
色々な方法で回避できますが、ここではテストモードにして逃げます。

> bcdedit /set TESTSIGNING ON

OSを再起動して、ディスプレイの設定をします。サブモニタが見えるので、ここでは1ディスプレイ: 1024x768 / 2ディスプレイ: 1024x768 とします。
f:id:dharry:20130130023513p:plain


この状態でVNCで接続すると、2048x768 という横長デスクトップの完成です!
f:id:dharry:20130130023604p:plain

Windowsのイメージバックアップとか

CrystalDiskInfo をみたら、もうHDDの寿命が近づきつつあることがわかったので、System領域を引っ越すことにしました。

Windowsは色々なイメージバックアップツールあるけど個人利用は無料ってやつを探してみた。どれも便利そうだし、というかいくつか使ってどれも便利だった記憶がある。
今回は、別Diskへまるっと引越しなので、EaseUS Todo Backup Free使ってスンナリ。

EaseUS Todo Backup Free

http://www.todo-backup.com/

Paragon Backup & Recovery Free Edition

http://www.paragon-software.com/

Macrium Reflect Free Edition

http://www.macrium.com/

RDPのセッション共有(シャドウ機能)が使えなくなった

恥ずかしながらそもそもシャドウ機能を知らなかった。

管理者悲痛? 人知れず削除されたRDPのシャドウ機能
Posted by 山市良 ( 2012年12月17日 )

先月、Windows 7 SP1向けのRDP 8.0更新(KB2592687)について、いろいろと制約事項を説明しましたが、その中でリモートデスクトップ接続のホストとしてRDP 8.0を有効にすると、シャドウ セッション機能が利用できなくなると書きましたが、補足させてください。正確には“RDP 8.0のセッションでshadow.exeコマンドが機能しなくなる”です。実は、RDPのシャドウ セッション(リモート制御)機能、RDP 8.0が標準のWindows 8やWindows Server 2012からは削除されてしまいました。

http://www.computerworld.jp/blogs/d/205897

記事をみていて、「管理ツールのターミナルサービスマネージャでセッション接続するやつね」と昔からよく使っていたことを思い出しました。あれ便利だったから、Windows8/Windows2012で使えなくなるのはちょっと残念です。
とりあえず、Windows2008で使える設定を備忘録に書いておきます。


スタートメニューからグループポリシーを起動

gpedit.msc

ここの設定を有効にして「ユーザーの許可なしでフルコントロールにする」

->コンピュータの管理
  -->管理用テンプレート
    -->リモートデスクトップサービス
      -->リモートデスクトップセッションホスト
        -->接続
          -->リモートデスクトップサービスユーザーセッションのリモート制御のルールを設定する

f:id:dharry:20130114122524p:plain

OSリブートもしくはpgupdateを実行して反映

gpupdate.exe /force

あとは適当にRDPで接続して該当するセッションを調べてshadowコマンドで接続。下の例はadministratorでRDP接続してdharryユーザのセッション2にアタッチしています。

C:\Users\Administrator>query session
 セッション名      ユーザー名               ID  状態    種類        デバイス
 services                                    0  Disc
>rdp-tcp#0         Administrator             1  Active  rdpwd
 rdp-tcp#1         dharry                    2  Active  rdpwd
 console                                     3  Conn
 rdp-tcp                                 65536  Listen

C:\Users\Administrator>shadow 2

Windows8/Windows2012のRDP8

仕事柄、新しいWindowsやLinuxディストリビューションがリリースしたときは、リリースノートぐらいはみているのですが、Windows8/Windows2012に関してはあまり見ていなかったので、休み中に斜め読みしていたら、これはこれは...楽しい機能が結構増えていたんですね。

RemoteFXは、USBのリダイレクトもサポートしている。この機能は、クライアント デバイスのUSBをダイレクトにVDI上で動作しているOSにマッピングする(1つのUSBデバイスを複数のOSを同時に利用できるわけではない)。この機能を利用すれば、シンクライアントのUSB端子に接続したUSBメモリ、プリンタ、Webカメラ/ビデオ、USB電話機などが、VDI上で利用できる。

http://cloud.watch.impress.co.jp/docs/column/2012lab/20121026_568604.html

クライアントのUSBと仮想マシンのUSBをマッピングできるってのは素晴らしい。

XenServerの仮想ディスク拡張

XenServerの仮想ディスク拡張はNFS VHDだとGUIで簡単にできるけど、LVHDの場合はCLIで変更が必要なもよう。
CITRIXのナレッジに説明あるけど、微妙に古くてコマンドオプションも違ってたりするので備忘録として書いておく。
https://support.citrix.com/article/CTX125970

拡張するVMを探してUUIDを覚えておく。

$ xe vm-list

VMのVDI(Virtual Disk Image)のUUIDを調べる。

$ xe vm-disk-list uuid=<vmのuuid>

sr-name-labelと書いてあるのがVDI(Virtual Disk Image)。UUIDを指定してのサイズを変更する。

$ xe vdi-resize uuid=<vdiのuuid> disk-size=64GiB

あとはOSからディスク拡張する処理を行なって終了。WindowsもLinuxも便利になりましたね。