util-linuxのツールその他
twitter経由で知った。lsblkなんて知らんかった。
RT @enakai00: 最近のディストリだとディスク構成はfdiskよりlsblkの方が見やすいですね。RT @restartr : "lshw -json"へー> ハードウェアの情報を収集する - いますぐ実践! Linuxシステム管理 / Vol.239 h ...
— Kei Iwasakiさん (@laugh_K) 2013年4月9日
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」で以下のチェックを入れます。
UltraVNCのMirrorDriverのインストール
http://www.uvnc.com/downloads/mirror-driver/85-mirror-driver-downloads.html
ここでは注意が必要です。RDPセッションでは絶対にインストールしないでください。まじに泣きます。必ずコンソールセッションでインストールしてください。
とりあえず全部チェック入れてしまいましょう。
サービスで起動している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]をチェック
これでログオフログオンできるし、通常で使えるレベルになったと思います。でも若干物足りない...。
ZoneScreenでデュアルモニタ
http://www.zoneos.com/zonescreen.htm
解像度をアップするために、仮想ディスプレイに接続してみます。
ZoneScreenをインストールしますが、Windows7の場合、インストール時に「デジタル署名のないドライバ」と警告がでて使用出来ません。
色々な方法で回避できますが、ここではテストモードにして逃げます。
> bcdedit /set TESTSIGNING ON
OSを再起動して、ディスプレイの設定をします。サブモニタが見えるので、ここでは1ディスプレイ: 1024x768 / 2ディスプレイ: 1024x768 とします。
この状態でVNCで接続すると、2048x768 という横長デスクトップの完成です!
Microsoft Security Essentials 反応しすぎ
よりによって俺の好きなVNCを危険物扱いするとは、困ったものです。
Windowsのイメージバックアップとか
CrystalDiskInfo をみたら、もうHDDの寿命が近づきつつあることがわかったので、System領域を引っ越すことにしました。
Windowsは色々なイメージバックアップツールあるけど個人利用は無料ってやつを探してみた。どれも便利そうだし、というかいくつか使ってどれも便利だった記憶がある。
今回は、別Diskへまるっと引越しなので、EaseUS Todo Backup Free使ってスンナリ。
EaseUS Todo Backup Free
Paragon Backup & Recovery Free Edition
Macrium Reflect Free Edition
DriveImage XML
CloneZilla
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
ここの設定を有効にして「ユーザーの許可なしでフルコントロールにする」
->コンピュータの管理 -->管理用テンプレート -->リモートデスクトップサービス -->リモートデスクトップセッションホスト -->接続 -->リモートデスクトップサービスユーザーセッションのリモート制御のルールを設定する
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も便利になりましたね。