Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

Cygwinでscreenコマンドが使えなくなる@Windows 10

Windows 10 上のCygwin (64bit版使用)で、screen コマンドを実行して、一度exitすると、2回目以降のscreenが以下のように失敗してしまうので、対処方法をメモしておきます。

$ screen.exe
Directory '/tmp/uscreens' must have mode 777.

 

エラーメッセージの通り、/tmp/uscreens のパーミッションがおかしいようですが、chmod 777 /tmp/uscreens を実行しても変更できません。

グループの所有者を変更するといけるようです。

$ chgrp users /tmp/uscreens
$ chmod 777 /tmp/uscreens

 

参考 : https://www.cygwin.com/ml/cygwin/2015-05/msg00034.html

Windows 10 のストアアプリが起動しない

Windows 10のストアが起動しなくなってしまったので、その時実施した対処方法を紹介します。

ストア起動時にクラッシュしているようで、WindowsにイベントビューアーのWindowsログには、以下のエラーが出力されていることを確認しました。

障害が発生しているアプリケーション名: WinStore.Mobile.exe、バージョン: 2015.7.22.2、タイム スタンプ: 0x55b03689
障害が発生しているモジュール名: twinapi.appcore.dll、バージョン: 10.0.10240.16397、タイム スタンプ: 0x55af1390
例外コード: 0xc000027b
障害オフセット: 0x000000000006687f
障害が発生しているプロセス ID: 0x14dc
障害が発生しているアプリケーションの開始時刻: 0x01d0cc42dfc73c06
障害が発生しているアプリケーション パス: C:\Program Files\WindowsApps\Microsoft.WindowsStore_2015.7.22.0_x64__8wekyb3d8bbwe\WinStore.Mobile.exe
障害が発生しているモジュール パス: C:\WINDOWS\SYSTEM32\twinapi.appcore.dll
レポート ID: XXXXXXXXXXXXXXXXXX
障害が発生しているパッケージの完全な名前: Microsoft.WindowsStore_2015.7.22.0_x64__8wekyb3d8bbwe
障害が発生しているパッケージに関連するアプリケーション ID: App

 

回復方法ですが、クラッシュした時は、ストアアプリのキャッシュが壊れている(?) ことが多いようで、以下のフォルダを開きます。※ユーザ名は自分のログインユーザ名です

C:\Users\ユーザ名\AppData\Local\Packages\Microsoft.WindowsStore_8wekyb3d8bbwe\LocalCache

※ ストアアプリのバージョンが異なると、微妙に、フォルダ名(特に8wekyb3d8bbweの部分)は異なるかもしれません。

このLocalCacheフォルダの下のファイルを全て削除し、ストアを起動し直すと無事起動しました。

参考 : Windows 10 Store crashes in Build 10240

Windows 10のインストールイメージ(ISO)をダウンロード

Windows 10 のインストールメディア(ISO)のダウンロードツールが公開されたので、ISOファイルをダウンロードしてみました。

ツールは32bit版、64bit版がありますが、これはダウンロードするISOファイルの種類を意味するのではなく、ツールを実行するWindowsのプラットフォームを意味します。よって、今実行しているWindowsが64bit版なら、64bit版ツールをダウンロードしましょう。

win10-iso-tool

ツールを実行すると、このような画面が表示されます。ISOをダウンロードする場合は、"他のPC用にインストールメディアを作る" を選択します。

win10-iso-1

言語、アーキテクチャ、エディションの選択画面になります。エディションは、アップデート対象がWindows 7や8.1 Home Editionなら、Homeを、Windows7, 8.1 Professional や Windows 7 Ultimateなら、Pro を選択します。

アーキテクチャは、32bit, 64bitの他に、なんと"両方"というのがあります。手持ちのPCにHomeやProfesional, UltimateのPCが混在し、これらを全てアップデートするなら、"両方"を選択すると良いと思います。

win10-iso-2

今回は、両方を選択してみたところ、5.62GBのISOファイルがダウンロードされました。このサイズだと1層のDVDメディアには焼けないので、注意が必要ですね。ちなみに、32bit または 64bit どちらかを選択すれば、4GB程度のようなので、1層DVDメディアに焼くことができます。

Windows 10のスタートメニュー整理

Windows 7では、スタートメニューのフォルダを右クリックしてフォルダを開くと、スタートメニューを手動で整理することができましたが、Windows 10では右クリックでフォルダを開くことができません。で、どこにあるか探してみたら、個人ユーザのスタートメニューはここにありました。

C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\Start Menu

 

全ユーザ共通のスタートメニューはここにありました。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

 

なお、ストアからインストールされたプログラムは別管理のため、上記フォルダにもショートカットはありません。

次に、プログラムのショートカットを手動でスタートメニューに追加してみます。ここでは、例として、SSHクライアントのTeraTermのプログラムへのショートカットを置いてみました。

start-shortcut

想定通り、スタートメニューに置いたショートカットが表示されます。

start-menu1

しかし、ここで問題発生。ショートカットのファイル名を変更してもなぜかスタートメニュー反映されません・・・ どこかでファイル名がキャッシュされてるのでしょうか。仕方がないので、一旦エクスプローラーをタスクマネージャーから強制的に再起動(Windows再起動でもOK)してみたら、反映されました。

 

 

xrdpコンパイル@Ubuntu 14.04

以前、xrdp のバグで古いセッションに再接続できないことを書き、暫定対処で古いバージョンを使っていましたが、やっぱり状況によってはなぜか再接続できない事象が発生してしまうため、自分でxrdpをコンパイルしてみました。

コンパイル方法は、ここを参考にしましたが、一点だけ、パッケージが足らず、xrdp パッケージが作成されなかったので、以下をインストールしました。

# apt install libxrandr-dev

 

後は、参考URL通りやっていきます。

# apt-get install git
# git clone --depth 1 -b v3.03 https://github.com/scarygliders/X11RDP-o-Matic.git
# cd X11RDP-o-Matic
# ./X11rdp-o-matic.sh --justdoi

これでコンパイルが動きだしますが、結構時間(30分以上)かかりました。無事終了すると、以下の通りx11rdpとxrdpパッケージがインストールされます。

# dpkg -l | grep xrdp
ii  x11rdp         0.9.0-1        amd64        X11rdp backend for the xrdp remote access server
ii  xrdp           0.9.0-1        amd64        RDP server for Linux

 

同ディレクトリの、RDPsesconfig.sh を使うと、Xの環境もインストール、設定してくれますが、Gnome(classic)だとうまく接続できなかったので、LXDE を使いました。

Raspberry Pi2でHDMIからmp3の音を出す@Ubuntu 14.04

Raspberry Pi2 にUbuntuをインストールして、コマンドラインから、mp3ファイル再生してみました。

Ubuntuのインストールは、こちらを参考にしました。(Xubutnuはインストールしていません)

HDMIから音を出すために、起動時のconfigファイルを修正します。

# mount /dev/mmcblk0p1 /mnt/
# vi /mnt/config.tx

 

以下のhdmi_driver=2のコメントアウトを解除して、Raspberry Pi2を再起動します。

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
# hdmi_drive=2

 

再起動

# shutdown -r now

 

再起動完了後、必要なパッケージをインストールします

# apt-get install mpg321 vorbis-tools

 

ドライバーをロードし、設定します。

# modprobe snd-bcm2835
# amixer cset numid=3 2      ← 2を1に変更すると、アナログ出力から音が出ます

 

mpg321 コマンドで、mp3ファイルを再生できます。

# mpg321 xxxxx.mp3

リモートデスクトップサーバ構築@Ubuntu 14.04 LTS

Ubuntu 14.04.2 LTS (Cloud-image版)に、リモートデスクトップサーバを構築した時のメモ。

# apt install xrdp

 

軽いデスクトップ環境インストールする。

# apt install lxde

 

一般ユーザ(ubuntuユーザ)で接続する場合は、パスワードを設定し、接続したいユーザのセッションをlxdeにする。(rootユーザは設定しなくても、lxdeに接続できました)

# passwd ubuntu      ← 適当にパスワード設定しておく
# su - ubuntu
$ echo lxsession -s LXDE -e LXDE > ~/.xsession
# exit
# service xrdp restart

 

接続確認。クライアントもUbuntuの場合、私は、remmina というアプリを使いました。

しかし、問題なく接続できましたが、キーボード配列が異なるため、うまく入力できませんので、一旦ログアウトして、サーバ側で以下を設定します。

# cd /etc/xrdp
# vi km-0411.ini

 

↓ファイルの中身

[noshift]
Key8=0:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=45:45
Key21=94:94
Key22=65288:8
Key23=65289:9
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=64:64
Key35=91:91
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=59:59
Key48=58:58
Key49=65322:0
Key50=65505:0
Key51=93:93
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=44:44
Key60=46:46
Key61=47:47
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65328:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=65406:0
Key94=0:0
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65514:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=92:92
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=65315:0
Key130=0:0
Key131=65314:0
Key132=0:0
Key133=92:92
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[shift]
Key8=0:0
Key9=65307:27
Key10=33:33
Key11=34:34
Key12=35:35
Key13=36:36
Key14=37:37
Key15=38:38
Key16=39:39
Key17=40:40
Key18=41:41
Key19=126:126
Key20=61:61
Key21=126:126
Key22=65288:8
Key23=65056:0
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=96:96
Key35=123:123
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=43:43
Key48=42:42
Key49=65322:0
Key50=65505:0
Key51=125:125
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=60:60
Key60=62:62
Key61=63:63
Key62=65506:0
Key63=65450:42
Key64=65511:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65273:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=0:0
Key93=65406:0
Key94=0:0
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65512:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=95:95
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=65315:0
Key130=0:0
Key131=65314:0
Key132=0:0
Key133=124:124
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[altgr]
Key8=0:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=45:45
Key21=94:94
Key22=65288:8
Key23=65289:9
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=64:64
Key35=91:91
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=59:59
Key48=58:58
Key49=0:0
Key50=65505:0
Key51=93:93
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=44:44
Key60=46:46
Key61=47:47
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65328:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=65406:0
Key94=0:0
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=0:0
Key112=65455:47
Key113=65514:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=0:0
Key130=0:0
Key131=65314:0
Key132=0:0
Key133=92:92
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[capslock]
Key8=0:0
Key9=65307:27
Key10=49:49
Key11=50:50
Key12=51:51
Key13=52:52
Key14=53:53
Key15=54:54
Key16=55:55
Key17=56:56
Key18=57:57
Key19=48:48
Key20=45:45
Key21=94:94
Key22=65288:8
Key23=65289:9
Key24=81:81
Key25=87:87
Key26=69:69
Key27=82:82
Key28=84:84
Key29=89:89
Key30=85:85
Key31=73:73
Key32=79:79
Key33=80:80
Key34=64:64
Key35=91:91
Key36=65293:13
Key37=65507:0
Key38=65:65
Key39=83:83
Key40=68:68
Key41=70:70
Key42=71:71
Key43=72:72
Key44=74:74
Key45=75:75
Key46=76:76
Key47=59:59
Key48=58:58
Key49=65322:0
Key50=65505:0
Key51=93:93
Key52=90:90
Key53=88:88
Key54=67:67
Key55=86:86
Key56=66:66
Key57=78:78
Key58=77:77
Key59=44:44
Key60=46:46
Key61=47:47
Key62=65506:0
Key63=65450:42
Key64=65513:0
Key65=32:32
Key66=65328:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65407:0
Key78=65300:0
Key79=65429:0
Key80=65431:0
Key81=65434:0
Key82=65453:45
Key83=65430:0
Key84=65437:0
Key85=65432:0
Key86=65451:43
Key87=65436:0
Key88=65433:0
Key89=65435:0
Key90=65438:0
Key91=65439:0
Key92=0:0
Key93=65406:0
Key94=0:0
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65514:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=0:0
Key126=65469:61
Key127=0:0
Key128=0:0
Key129=65315:0
Key130=0:0
Key131=65314:0
Key132=0:0
Key133=92:92
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

[shiftcapslock]
Key8=0:0
Key9=65307:27
Key10=33:33
Key11=34:34
Key12=35:35
Key13=36:36
Key14=37:37
Key15=38:38
Key16=39:39
Key17=40:40
Key18=41:41
Key19=126:126
Key20=61:61
Key21=126:126
Key22=65288:8
Key23=65056:0
Key24=113:113
Key25=119:119
Key26=101:101
Key27=114:114
Key28=116:116
Key29=121:121
Key30=117:117
Key31=105:105
Key32=111:111
Key33=112:112
Key34=96:96
Key35=123:123
Key36=65293:13
Key37=65507:0
Key38=97:97
Key39=115:115
Key40=100:100
Key41=102:102
Key42=103:103
Key43=104:104
Key44=106:106
Key45=107:107
Key46=108:108
Key47=43:43
Key48=42:42
Key49=65322:0
Key50=65505:0
Key51=125:125
Key52=122:122
Key53=120:120
Key54=99:99
Key55=118:118
Key56=98:98
Key57=110:110
Key58=109:109
Key59=60:60
Key60=62:62
Key61=63:63
Key62=65506:0
Key63=65450:42
Key64=65511:0
Key65=32:32
Key66=65509:0
Key67=65470:0
Key68=65471:0
Key69=65472:0
Key70=65473:0
Key71=65474:0
Key72=65475:0
Key73=65476:0
Key74=65477:0
Key75=65478:0
Key76=65479:0
Key77=65273:0
Key78=65300:0
Key79=65463:55
Key80=65464:56
Key81=65465:57
Key82=65453:45
Key83=65460:52
Key84=65461:53
Key85=65462:54
Key86=65451:43
Key87=65457:49
Key88=65458:50
Key89=65459:51
Key90=65456:48
Key91=65454:46
Key92=0:0
Key93=65406:0
Key94=0:0
Key95=65480:0
Key96=65481:0
Key97=65360:0
Key98=65362:0
Key99=65365:0
Key100=65361:0
Key101=0:0
Key102=65363:0
Key103=65367:0
Key104=65364:0
Key105=65366:0
Key106=65379:0
Key107=65535:127
Key108=65421:13
Key109=65508:0
Key110=65299:0
Key111=65377:0
Key112=65455:47
Key113=65512:0
Key114=0:0
Key115=65515:0
Key116=65516:0
Key117=65383:0
Key118=0:0
Key119=0:0
Key120=0:0
Key121=0:0
Key122=0:0
Key123=0:0
Key124=65027:0
Key125=65513:0
Key126=65469:61
Key127=65515:0
Key128=65517:0
Key129=65315:0
Key130=0:0
Key131=65314:0
Key132=0:0
Key133=124:124
Key134=0:0
Key135=0:0
Key136=0:0
Key137=0:0

 

シンボリックリンクを張る

# ln -s km-0411.ini km-e0010411.ini
# ln -s km-0411.ini km-e0200411.ini

 

xrdp再起動

# service xrdp restart

 

これでキー入力も正常になりました。

ちなみに、リモートデスクトップが切断された場合に、今まで使っていたデスクトップに接続できません。

解決する方法は、いくつかあるようで

  1. 古いバージョンのxrdpを使う。
  2. 最初の接続時にポート番号をメモって、再接続時に自分でポートを指定する。
  3. 最新のxrdpを自分でコンパイル。 6/16追記→ 独自コンパイルしました

私は、1の0.5.0-2 という古いバージョンを入れてうまくいったようでしたが、再接続できないこともありました。。

# dpkg -i xrdp_0.5.0-2_amd64.deb
# service xrdp restart

 

ちなみに、apt-get upgrade すると、バージョンが元に戻ってしまうので、以下のようにして、バージョンアップを固定する必要があります。

# vi /etc/apt/preferences

 

ファイル内容

Package: xrdp
Pin: version 0.5.0-2
Pin-Priority: 500

Ubuntu 14.04 LTS DesktopのWindowsキーのショートカットを無効にする

Ubuntu 14.04 使っていて、Windowsキー+1 や Windowsキー+2 などを押すと、画面左側に登録されているLauncherのアプリが起動します。

しかし、AutoKey のようなキーボードカスタマイズキーを使っていると、これが邪魔になるので、ショートカットを無効にする方法を調べました。

無効にするには、compizconfig-settings-manager というアプリをインストールします。

# apt install compizconfig-settings-manager

 

CompizConfig Settings Manager を起動し、デスクトップの項目にある、"Ubuntu Unity Plugin"を選択します。

Launcher-main

さらに、"Key to show the Dash, Launcher and Help Overlay" という設定を無効にすれば、完了です。

Launcher-super-key

 

uvtoolで簡単にクラウドイメージ取得・起動@Ubuntu 14.04 LTS

Ubuntuのサイトにいろいろとクラウド用のイメージがありますが、uvtoolというツールを使うと、これらを簡単に利用できるようなのでやってみました。環境は、Ubuntu 14.04 LTS Desktop版で、作業はrootで実施しています。

まずは、ツールのインストール。KVM関連のパッケージも一緒にインストールされます。 ※ この時に、libvirt グループが作成され、sudoユーザが自動的にlibvirtグループに追加されるため、sudo 可能な一般ユーザでuvtoolを使用する場合は、一旦ログアウトする必要があります。

# apt install uvtool
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  augeas-lenses cgroup-lite cloud-image-utils cpu-checker distro-info
  distro-info-data ebtables euca2ools gawk ipxe-qemu libaio1 libaugeas0
  libboost-thread1.54.0 libfdt1 libnetcf1 librados2 librbd1 libsdl1.2debian
  libseccomp2 libsigsegv2 libusbredirparser1 libvirt-bin libvirt0 libxen-4.4
  libxenstore3.0 libxml2-utils libyaml-0-2 msr-tools python-boto
  python-distro-info python-libvirt python-pyinotify python-requestbuilder
  python-setuptools python-simplestreams python-yaml qemu-keymaps qemu-kvm
  qemu-system-common qemu-system-x86 qemu-utils seabios sharutils socat
  ubuntu-cloudimage-keyring uvtool-libvirt
提案パッケージ:
  augeas-doc shunit2 gawk-doc augeas-tools radvd lvm2 python-pyinotify-doc
  samba vde2 sgabios kvm-ipxe-precise debootstrap bsd-mailx mailx
以下のパッケージが新たにインストールされます:
  augeas-lenses cgroup-lite cloud-image-utils cpu-checker distro-info
  distro-info-data ebtables euca2ools gawk ipxe-qemu libaio1 libaugeas0
  libboost-thread1.54.0 libfdt1 libnetcf1 librados2 librbd1 libsdl1.2debian
  libseccomp2 libsigsegv2 libusbredirparser1 libvirt-bin libvirt0 libxen-4.4
  libxenstore3.0 libxml2-utils libyaml-0-2 msr-tools python-boto
  python-distro-info python-libvirt python-pyinotify python-requestbuilder
  python-setuptools python-simplestreams python-yaml qemu-keymaps qemu-kvm
  qemu-system-common qemu-system-x86 qemu-utils seabios sharutils socat
  ubuntu-cloudimage-keyring uvtool uvtool-libvirt
アップグレード: 0 個、新規インストール: 47 個、削除: 0 個、保留: 2 個。
11.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 58.5 MB のディスク容量が消費されます。

 

次に、クラウド用のイメージをコマンドを使ってダウンロードします。すべてダウンロードすると時間がかかるため、必要な物を指定してダウンロードします。以下では、amd64 の 14.04 LTS (Trusty) をダウンロードしています。ここからは仮想マシンを使う一般ユーザで実施します。

$ uvt-simplestreams-libvirt sync release=trusty arch=amd64

 

これを実行すると、一時的に /tmp 領域にファイルがダウンロードされ、ダウンロード完了後、/var/lib/uvtool/images ディレクトリに移動されます。また、/usr/share/uvtool/libvirt/ には、VM起動に使うための設定ファイル(xml)のテンプレートが置かれますので、これを修正すれば、作成するVMの構成を変更することもできそうです。

VMを起動した後にsshログインできるように、sshキーを作成していない場合は作成しておきます。ここで作成した ~/.ssh/id_rsa.pub が自動的にVMに挿入されます。

$ ssh-keygen -t rsa

 

では、実際にダウンロードしたイメージからVMを作成してみます。

$ uvt-kvm create hana release=trusty

 

すべて、libvirtライブラリを使っているので、virt-managerを使えば、作成したVMを見ることも可能です。

uvt-virt-manager

もちろん、virshコマンドも使えます。

$ virsh list
 Id 名前 状態
----------------------------------------------------
 4 hana 実行中

 

IPを調べてSSHログインしてもよいですが、ツールを使えばsshで簡単にログインもできます。

$ uvt-kvm ssh hana --insecure

 

参考 : uvtoolでKVM/libvirt向け仮想マシンをお手軽に構築する

rsyncでsshのアクセス先ポート番号を変更する

sshのポート番号を変更している場合、ssh コマンドの場合は -p オプションでポート番号を22以外に変更できますが、rsyncでsshを使ってファイルを同期する場合は、専用のオプションがないため、-e もしくは --rsh オプションを使って、以下のようにリモートアクセスするためのコマンドを変更する必要があります。

$ rsync -e "ssh -p 220000" ・・・

 

ちなみに、毎回指定するのが面倒なら、ssh の config ファイル (~/.ssh/config) に書いておいてもいけるようです。

Raspberry Pi 2でHDMIから画面が出力されない

Raspberry Pi 2 でOS(Ubuntu)を再起動すると、HDMIから画面が映らなくなってしまったので対処方法をメモ。

boot領域をマウントしconfig.txtを修正

# mount /dev/mmcblk0p1 /mnt
# vi /mnt/config.txt

 

以下のパラメータを以下のように変更

hdmi_safe=1
hdmi_force_hotplug=1
config_hdmi_boost=4

 

あとは再起動。

ちなみに、safeモードにしているので、解像度が落ちます。これでHDMIが表示されれば、safeモードのみ無効にしてみるのもありだと思います。

Linuxがそもそも起動しない場合は、SDカードをはずして、他のPCで直接config.txtを修正すべしです。

ディスクイメージを直接マウントする@Linux

以前、ディスクイメージファイルをkpartxを使ってマウントする方法を紹介しましたが、mountオプションでディスクイメージのパーティションの範囲を指定して直接マウントすることもできるので、紹介します。

まずは、partedコマンドを使って、ディスクイメージのパーティション状態を確認します。表示はB(バイト)単位としてます。

# parted disk.img unit B print
警告: 管理者権限がありません。パーミッションに注意してください。
モデル:  (file)
ディスク /root/disk.img: 3000000000B
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始         終了         サイズ       タイプ   ファイルシステム  フラグ
 1    4194304B     71303167B    67108864B    primary  fat32             boot, lba
 2    71303168B    1145044991B  1073741824B  primary  ext4
 3    1145044992B  2218786815B  1073741824B  primary  ext4
 4    2218786816B  2998927359B  780140544B   primary  ext4

 

上記では、一つのパーティションがFAT32, それ以外はext4のパーティションになっていることがわかります。この状態で、例えば先頭パーティションのFAT32だけをマウントしたい場合、以下のオプションを付けてマウントします。

# mount -o loop,offset=4194304,sizelimit=67108864 disk.img /mnt

 

ISOイメージをUSBメモリに入れてLinuxインストール

以前、grubを手動で入れて、USBメモリからOSをインストールするようなことをやっていましたが、あまり使い勝手がよくないので、今回はEasy2Bootというツールを使ってみました。作業はWindows 7上で実施しました。

まずは、このツールをダウンロードします。今回は最新版 v1.65 を使用しました。ダウンロードしたEasy2Boot_v1.65DPMS.zip ファイルを解凍し、Easy2Boot_v1.65DPMS_ISO\docs\Make_E2B_USB_Drive フォルダにある、ReadMe.txt に沿って作業していきます。

ツールを使うには、RMPrepUSB というプログラムが必要です。RMPrepUSBはブータブルUSBを作成するのに必要なアプリです。今回は、Install_RMPrepUSB_Full_v2.1.728.zip を使いました。zipを解凍したら、インストーラーが現れるので、実行するだけです。

次に、実際にUSBメモリを作っていきます。使用するUSBメモリをPCに挿します。USBメモリの内容は全て消去されるため、注意してください。ここでは、USBメモリは、Dドライブとします。

解凍してできたフォルダ Easy2Boot_v1.65DPMS_ISO\docs\Make_E2B_USB_Drive にある、MAKE_E2B_USB_DRIVE.cmd を右クリックから「管理者として実行」から実行すると、このようなブルー画面が現れ、USBドライブ選択画面になります。

USBメモリが DRIVE 2と表示されているので、「2」を入力し、リターンを押します。

easy2boot-001

 

本当にフォーマットしてもよいかと聞かれるので、「Y」を入力します。

easy2boot-002

フォーマットとして、NTFSとFAT32どちらかを選択します。通常、OSのインストールイメージは4GBを超えることがあまりないので、互換性の高いFAT32を選択します。「F」を入力します。

easy2boot-003

 

もう一度、ダイアログでフォーマットの警告が出るので、OKを押します。

easy2boot-004

 

Easy2BootのファイルがUSBメモリにコピー開始されるため、暫く待ちます。

MBRにGrubが自動でインストールされたあと、言語選択画面になります。日本語はないので、英語「4」を入力しました。

easy2boot-005

メニューにファイル名の拡張子を表示するかどうか聞かれるので、私は「Y」を選択しました。easy2boot-006

 

最後に、設定を書き込みますか?との質問に「Y」を選択します。

 

 

easy2boot-007

 

以上でUSBメモリ作成は完了です。

USBメモリをエクスプローラで覗くと、_ISO\Linux というフォルダがあるので、ここにISOファイルをコピーします。このUSBを取り外し、USBメモリからPCをブートすると、ISOファイルが自動で認識され、カーソルキーで選択できるようになるので、かなり便利です。

ちなみに、Ubuntu 14.04.2 desktop LTS を入れてみましたが、問題なく起動しました。

AndroidでDVDのisoファイル再生

2015/3月現在、まともにisoファイルを再生できるアプリがなかなか見つかりませんでしたが、VLCの開発版(1.1.4)で正常に再生できました。 ちなみに、Google Play に登録されているバージョン 0.9.10 でも再生はできましたが、Android にマウスを繋いだ環境だと、マウスを動かすと早送りになってしまう不具合がありました。

apkファイルの入手先は、こちら

更新履歴はこちら

 

なお、apkファイルはCPUの種類によって異なるので、自分の使っているAndroidを調べておく必要があります。私の場合は armv7 でうまく動作しました。

aufsでディレクトリを重ねてマウント@Ubuntu 14.04

aufsをUbuntu 14.04上で使ってみました。

aufsは、複数のディレクトリを重ねてあるディレクトリにマウントすることができるファイルシステムで、knoppixのように書き込みできないメディアに擬似的に書き込んだり、LXCであるコンテナのディレクトリのスナップショットを使って新しいコンテナを作ったりする時に使われるようです。

 

使い方は簡単ですので、実験してみます。

まず3つディレクトリを用意します。ここでは、org-dir と rw-dir, mnt とします。

# mkdir org-dir
# mkdir rw-dir
# mkdir mnt

org-dir に何か適当にファイルを作ります。

# echo org > org-dir/file1
# echo org > org-dir/file2
# echo org > org-dir/file3

次に、rw-dir にも適当にファイルを作ります。

# echo rw > rw-dir/file3
# echo rw > rw-dir/file4

全体のディレクトリとファイル構成はこんな感じになりました。

ll -R
.:
total 20
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ./
drwx------ 6 root root 4096 Sep 14 01:24 ../
drwxr-xr-x 2 root root 4096 Sep 14 01:24 mnt/
drwxr-xr-x 2 root root 4096 Sep 14 01:58 org-dir/
drwxr-xr-x 2 root root 4096 Sep 14 01:58 rw-dir/
./mnt:

total 8
drwxr-xr-x 2 root root 4096 Sep 14 01:24 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../

./org-dir:
total 20
drwxr-xr-x 2 root root 4096 Sep 14 01:58 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root 4 Sep 14 01:24 file1
-rw-r--r-- 1 root root 4 Sep 14 01:24 file2
-rw-r--r-- 1 root root 4 Sep 14 01:24 file3

./rw-dir:
total 16
drwxr-xr-x 2 root root 4096 Sep 14 01:58 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4

ここで、org-dir と rw-dir を重ね合わせて、mntディレクトリにマウントしてみます。org-dir がオリジナルのディレクトリで書き込み禁止(ro)として、rw-dir がファイルの変更を書き込む(rw)ことができるディレクトリとしてmntディレクトリにマウントします。イメージは、org-dir に rw-dir を重ねるイメージです。

# mount -t aufs -o br:rw-dir=rw,br:org-dir=ro aufs mnt

mntディレクトリを覗いてみます。

# ll mnt/
total 24
drwxr-xr-x 4 root root 4096 Sep 14 02:02 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root 4 Sep 14 01:24 file1
-rw-r--r-- 1 root root 4 Sep 14 01:24 file2
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4

確かに、org-dir と rw-dir の内容が見えます。rw-dirを上に重ねているので、org-dir の file3 は rw-dir の file3 で隠されてしまい、見えません。

# cat mnt/file3
rw

rw-dir にはマウントした時に、aufsの管理用のディレクトリが作られます。

# ll rw-dir/
total 24
drwxr-xr-x 4 root root 4096 Sep 14 02:02 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-r--r--r-- 1 root root 0 Sep 14 02:02 .wh..wh.aufs
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.orph/
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.plnk/
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4

mnt ディレクトリに何か書き込めば、それはすべてrw-dirに反映されます。

# echo new > mnt/new-file1
# ll rw-dir/
total 28
drwxr-xr-x 4 root root 4096 Sep 14 02:07 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-r--r--r-- 1 root root 0 Sep 14 02:02 .wh..wh.aufs
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.orph/
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.plnk/
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4
-rw-r--r-- 1 root root 4 Sep 14 02:07 new-file1
# ll mnt/
total 28
drwxr-xr-x 4 root root 4096 Sep 14 02:09 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root    4 Sep 14 01:24 file1
-rw-r--r-- 1 root root    4 Sep 14 01:24 file2
-rw-r--r-- 1 root root    3 Sep 14 01:58 file3
-rw-r--r-- 1 root root    3 Sep 14 01:58 file4
-rw-r--r-- 1 root root    4 Sep 14 02:07 new-file1

ファイルを削除すると、rw-dirに削除情報が書き込まれ、mntディレクトリからは見えなくなります。

# rm -f mnt/file1
# ll rw-dir/
total 28
drwxr-xr-x 4 root root 4096 Sep 14 02:09 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-r--r--r-- 2 root root 0 Sep 14 02:02 .wh..wh.aufs
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.orph/
drwx------ 2 root root 4096 Sep 14 02:02 .wh..wh.plnk/
-r--r--r-- 2 root root 0 Sep 14 02:02 .wh.file1
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4
-rw-r--r-- 1 root root 4 Sep 14 02:07 new-file1
# ll mnt/
total 28
drwxr-xr-x 4 root root 4096 Sep 14 02:09 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root    4 Sep 14 01:24 file2
-rw-r--r-- 1 root root    3 Sep 14 01:58 file3
-rw-r--r-- 1 root root    3 Sep 14 01:58 file4
-rw-r--r-- 1 root root    4 Sep 14 02:07 new-file1

ちょっと意地悪く、削除情報と同名のファイルをmntに作ってみると、こんなふうに怒られます(笑)

# echo wh > mnt/.wh.file1
-su: mnt/.wh.file1: Operation not permitted

マウントした状態で、org-dir に新しいファイルを書き込み、rw-dir に同名のファイルや削除情報がない場合は、そのままmnt内に見えてしまいます。

# echo org > org-dir/fileA
# ll mnt/
total 28
drwxr-xr-x 4 root root 4096 Sep 14 02:09 ./
drwxr-xr-x 5 root root 4096 Sep 14 01:24 ../
-rw-r--r-- 1 root root 4 Sep 14 01:24 file2
-rw-r--r-- 1 root root 3 Sep 14 01:58 file3
-rw-r--r-- 1 root root 3 Sep 14 01:58 file4
-rw-r--r-- 1 root root 4 Sep 14 02:13 fileA
-rw-r--r-- 1 root root 4 Sep 14 02:07 new-file1

なお、今回は小さいファイルで試しましたが、org-dir に大きなファイルがあり、mnt上からファイルを書き換えると、org-dir上の大きなファイルが一旦rw-dir上にコピーされ、その後書き換わるため、パフォーマンスかなり落ちてしまいますので、注意が必要です。

すでに同名のdebパッケージがインストールされているか確認する@Ubuntu 14.04

リポジトリにはまだ登録されていないパッケージを手動でdpkgを使ってアップデートする時の話。

 

個別にパッケージをダウンロードしたり、自分でパッケージを作成したりした場合、複数のdebパッケージが存在する場合があります。

例えば、aaa_1.1_amd64.deb というパッケージには、aaa-lib_1.1_amd64.deb とか、aaa-dev_1.1_amd64.deb とかが付属することがあります。この時、実際にインストールされているパッケージがaaa_1.0_amd64.debとaaa_1.0_amd64-lib.deb だった場合、アップデート時にaaa_1.1_amd64-dev.deb をインストールする必要は通常ありません。

パッケージが3つの場合、dpkg -l で個別にインストールされているかどうかを確認するのはそれ程手間ではありませんが、ファイルが多いと確認も一苦労です。

RedHat系のrpm では、-Fvh オプションでアップデートすれば、すでにインストール済みのパッケージのみアップデートすることができますが、dpkgだとできそうにありません。こんな時には、シェル一発で確認してみましょう。

例えば、上記を例に、カレントディレクトリに以下の三つのファイルがあるとします。

aaa_1.1_amd64.deb
aaa-lib_1.1_amd64.deb
aaa-dev_1.1_amd64.deb

この時、同名のパッケージがインストールされているかどうかを確認するには、こんな感じのコマンドを叩くだけです。

# for i in `ls *.deb`; do dpkg -l | grep "..  "`echo $i | cut -d "_" -f 1`" " ; done
ii  aaa                      1.0   amd64        aaa
ii  aaa-lib                  1.0   amd64        aaa libraries

これで、アップデートが必要なパッケージはわかりました。

Linuxコンテナ(LXC)内からNFSマウント@Ubuntu 14.04

Ubuntu 14.04 上で作成したLinuxコンテナ内からNFSマウントできなかったのでメモ。

ホストOS上の/etc/apparmor.d/lxc/lxc-defaultファイルに、マウントできない(DENY)設定があるので、これをコメントアウトして、mount options=・・・を代わりに設定する。(赤字が変更箇所)

#deny mount fstype=devpts,
mount options=(rw, bind),

あとは、apparmorを再起動

# service apparmor restart

おそらくセキュリティ的にはやばくなると思うのだが、個人で使用する分には問題ないと思われる。

このブログについて
プライバシーポリシー・お問い合わせ等
購読する(RSS)
記事検索
アーカイブ
カテゴリー
  • ライブドアブログ