Category: Linux / Unix / Interix

Linux で trim を行う


みむらです。メモがてら。

ext4 だと trim をファイルシステムが対応しているようで、
マウント時に “discard” をオプションとして指定してマウントすればおっけー。

mount コマンドの場合は次のような感じに

mount –o discard /dev/sdb1 /mnt/hogeo

fstab の場合は次のような感じに

/dev/sda2     /     ext4     noatime,discard     0     1

 

任意のタイミングで trim を掛けたい場合は
( Windows のデフラグツールで  defrag C: /L  を実行するようなことをしたい場合 )

fstrim  コマンドを用いる。

使い方についてはこのへんにばっちりと
Man online – fstrim (8)

使い方としては、

fstrim (マウント場所) 

となるので、

fstrim /boot
fstrim /

とすると、一通り trim を掛けることが出来るっぽい。


余談ですが、

Hyper-V の仮想ハードディスクに対しても
このコマンドで trim (実際に送信されるのは unmap) を送って、
ディスクの最適化を行うと、ちゃんと vhd / vhdx サイズが縮まります。

( Win8.1 搭載の Hyper-V で確認 )

Linux 上で Hyper-V の動的メモリやらいろいろと使えるようにしてみた。


どうもみむらです。

今回の内容は、需要がニッチすぎるだとか激コワだとか、なんかいろいろと言われていますが、
自己満足の内容です。

 

・・こわくないよ!

 

動的メモリというのは、Hyper-V 上において、
ゲストマシン(仮想で動かしているマシン)のメモリ需要にあわせてホストで確保するメモリの量を変化させるというものでしょうか。

早い話が、ゲストでメモリを使っていなければホスト上でメモリを解放して、
使いそうならホストに空きがあればより多くのメモリを割り当てる、とそんな感じ。

 

結論とすると、

image

こんな感じで動くように。

 

勿論、普通の Linux を動かしますと、

image

こんな感じで対応していませんので動作することはありません。

 

その他、Linux のカーネルを作る際に Hyper-V のゲストモジュールを組み込んだとしても、

image

執筆時最新の Version 3.8.7 でもこんな感じですので、ホスト側にメモリの利用状況は伝えられますが、
縮小、拡大処理は行われません。

 


その他、

image

こういう感じのスナップショット系・・なんですかね中身はまだ見てないのでアレですが、
そういうのを追加してみたり、

image

Hyper-V 用の Framebuffer ドライバを入れてみたり。 いろいろといじりました。

 

image

あとはやっぱり、こんな感じで Gnome を Hyper-V で動かしてみたり。

 


Continue reading »

MinGW を使って Gnu 系のコマンドを使えるようにする。


みむらです。

前までは、この記事 にあったように GnuWin32 を使っていたのですが、古いなと思いまして。
Gow とかも選択肢にはあったのですが、もういっそ MinGW とか試してみるかと思って試してみました。

結果としては非常によく、
パスを設定すればコマンドプロンプトからも利用できるので、 GnuWin32 の移行先として、
問題ないように感じました。

image

CygWin のように、変にシステムを汚すような事もないような感じですので、
早速 GnuWin32 から移行しました。


導入:

1.MinGW をインストールする。

SourceForge 上のプロジェクトのダウンロードページへ移動します。
http://sourceforge.net/projects/mingw/files/

image

深く潜らなくとも、
”Looking for the latest version?” という事でダウンロードリンクが張られていますので、
こちらからダウンロードします。

 

ダウンロードが完了し、起動しますと次のような画面が出ますので、ウィザードに従ってインストールを進めます。

image

 

また、スタートメニューに関しては、項目が増えるのを嫌う場合は
項目を作成しないようにしても構いません。

image

 

また、 Select Components の画面では、今回のケースの場合、
最低限でも下2つの項目にチェック を入れます。

image

なお、元々開発用のツールですので、
ディスクに余裕があれば、コンパイラもインストールしておきますといいかと思います。

 

そのまま進めますと、
image

このような画面が出てきて処理を開始しますので、完了まで待ちます。

 

最後までウィザードを進めれば完了です。


2.パスの設定 – システムのプロパティを表示。

設定をするために、システムのプロパティを開きます。

 

手順 ( Windows キーがあるキーボードの場合

 

2.1.1 Winキー + R を押し、 「ファイル名を指定して実行」を表示し、「 sysdm.cpl 」と打ち、 OK を押します。

image

2.1.2 システムのプロパティが表示されます。

image

2.1.3 詳細設定タブに切り替えます。

image

 

 

手順 ( Windows キーがない場合

 

2.2.1 コントロールパネルを開きます。

image

2.2.2. 「システムとセキュリティ」を選択します。

image

2.2.3. 「システム」を選択します。

image

2.2.4. 「システムの詳細設定」を開きます。

image

 


3.パスの設定

「環境変数」をクリックします。

image

 

「システム環境変数」内から「Path」を探して選び、「編集」をクリックします。

image

 

編集ダイアログが開きます。

image

 

ここで、先ほどインストールした MinGW のパスをエクスプローラで開き、
パスを確認します。

確認する部分は2点あり、
MinGW 直下の bin フォルダおよび、 msys フォルダ以下にある bin フォルダを探します。

 

なお、執筆時点 (2012/11/19) で、
デフォルトのままインストールを行った環境では、

C:\MinGW\bin
C:\MinGW\msys\1.0\bin

の2つを path に追加します。

 

ただ、今後のバージョンアップや、インストールディレクトリの変更によって変化する可能性が考えられますので、
その際は適宜読み替えてください。

 

確認が完了しましたら、変数値の文字列の後ろ
セミコロン ( ; ) 区切りで、パスを追記していきます。

 

執筆時点の状態で、デフォルトインストールした場合は先述の2ディレクトリとなりますので、
この場合追記するのは、次のような文字列となります。

;C:\MinGw\bin;C:\Tools\MinGW\msys\1.0\bin

image

 

追記が完了しましたら、 “OK” を押して行き、画面を閉じます。

 


4. 文字化け対策

ここまで完了しますと、あらゆるプログラムから簡単に呼び出せるようになっています。

例:

image

 

ですが、まずこの状態ですと、 ls コマンドが文字化けを起こしますので、

テキストエディタを起動し、

@ls.exe -–show-control-chars --color=auto %*

と記述し、

MinGW のフォルダ内の bin フォルダ  (デフォルトのインストール先であれば、 C:\MinGW\bin)に、

ls.cmd という名前で保存します。

 

※Unix-like に alias のようなコマンドで設定したい、 .profile のような仕掛けで自動的に・・という場合は、

Windows のコマンドプロンプトで .profile みたいなの – みむらの手記手帳

こちらの記事を参照して設定をお願いします。

 


以上が追加方法になります。

また、コマンドを追加する場合は、

mingw-get install (package)

のようにすればインストールされます。

 

mingw-get list

このコマンドによって、インストール可能なパッケージの情報が出てきますので、

grep でフィルタを掛けると、目的のパッケージがインストールできるのではないかと思います。

 

例:

wget をインストールする。

mingw-get install msys-wget

 

ファイルは事前にパスを通してある場所にインストールされますので、

追加直後から使用する事ができます。

 

また、 bash も呼び出せますので、Windows のコマンドプロンプトと適宜行き来をおこなったり、

mintty を使えるようにする | dogmap.jp

http://dogmap.jp/2011/11/15/mintty/

こちらのウェブサイトにおいて紹介されておりますような、 mintty を利用するなど、

GnuWin32 よりもかなり使える環境が手に入るのではないでしょうか。

NS レコードを書いて、外向けのIP アドレスを取ってこれるようにする。


みむらです。

FTPS をやろうとして、グローバルIPアドレス を取ってこようとしたときに、
今まで、昔使っていたドメイン名を一つ生かしておいて、そこから取得していました。

なんだかんだで面倒なことになったので、
今持っているドメインのうち、適当なサブドメイン名を一つ決めて、
そこに問い合わせたらグローバルIPアドレスが返るように設定することにしました。

 

環境:

CentOS 6.2
BIND 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2

自分でドメインを持ってること。


・基本的な設定は済んでいる環境を想定しているため、そのあたりは割愛します。

 

たぶん大体、以下のような設定が書かれていると思います:
(ゾーンデータベースって言うんですかね・・?これ)

@       IN      SOA     example.com.  root.example.com.(
                                      2012052923
                                      3600
                                      900
                                      36000
                                      3600 )
              IN NS    example.com.
@               IN A      127.0.0.1
*               IN A      127.0.0.1

ここで、適当にサブドメイン名を一つ決めて、それに併せて NS レコードを設定していきます。

ex )

osoto.example.com のアドレスを問い合わせると、グローバルIPアドレスが返るようにする。
(それ以外はプライベートIPアドレスが返る。

自分が保持しているドメインに関して、外向きには ns.hogehoge.net というネームサーバが存在する。
(この辺は whois コマンドで調べるとおいしい。大体、ドメインの購入元の会社が提供してくれていることが多い。

 

この場合:

osoto         IN NS    ns.hogehoge.net

と書き加えます。

[サブドメイン名]    IN NS [外部のネームサーバ]

書き方はこんな感じ。

 

まとめますと、

@       IN      SOA     example.com.  root.example.com.(
                                      2012052923
                                      3600
                                      900
                                      36000
                                      3600 )
              IN NS    example.com.
osoto         IN NS    ns.hogehoge.net
@               IN A      127.0.0.1
*               IN A      127.0.0.1

こういう感じに。

nVIDIA チップ搭載の VAIO で Ubuntu の X を使う。


みむらです。お久しぶりです。
後輩のマシンを直していて気づいたことなので備忘録。

今回のマシンは、公称では nVIDIA グラフィクスチップ搭載! とだけしか書いていないのですが、
Ubuntu 環境に nVIDIA Graphics 用のドライバを入れても、X が転けちゃう状態でした。

マシン: Sony VAIO VPCS14AFJ
Ubuntu : 10.10 (だったとおもう・・きっと。

 

記事執筆時に、そのマシンが手元にないので、
詳しくは書けないのですが、

lspci でハードウェア一覧を見ると、
nVIDIA Geforce.. が認識されていて、
Intel GPU があるかなと思って見てみるとリストにはない状況。

Xorg.0.log とかをみてみますと、 no screens found というエラーが出ていて、
かといって、 グラフィクスチップは認識されている状況。

 

解決法:

NVIDIASetup – vaio-f11-linux – Setting up X11 with NVIDIA’s driver. – Sony Vaio F Series on
参考資料はこのあたり。

/etc/X11/xorg.conf  の Device セクションに、

    Option         "ConnectedMonitor" "DFP-0"
    Option         "CustomEDID" "DFP-0: /proc/acpi/video/NGFX/LCD/EDID"

この2行を追記とあります。

今回の VAIO の場合は、

    Option         "ConnectedMonitor" "DFP-0"
Option "CustomEDID" "DFP-0: /proc/acpi/video/IGPU/LCD0/EDID"

としました。

 

このディレクトリパスから見るに、
nVIDIA のグラフィクスチップはあるけれど、映像出力は Intel GPU に持って行っているんでしょうね。

 

ってことで、 nVIDIA 搭載の VAIO を使っていて、 Linux の X がどうにもこうにもうまくいかない方は、
何となくこういう設定を書き加えてみては。

もしかすると、同様にノートPCでどうしても転けちゃう場合も、これの応用でうまくいくのかも。

・・・旧式の VAIO (VGN-SZ93NS とか) だと、とくにこんなんやらなくてもうまくいったんですが、
ハードウェアの設計とか、省エネとか何かあるんでしょうか・・w

Private