GNUのcpコマンドには、sparseオプションがありこれを使うと、
ファイルとしてはそのままに、実際にディスクを使用する量を削減することができる可能性があります。

使い方は、以下のような感じです。

$ dd if=/dev/zero of=hoge.img bs=1024 count=102400
$ cp --sparse=always hoge.img hoge.img.sparse
$ ls -lhs
合計 101M
101M -rw-r--r-- 1 igawa igawa 100M 2010-06-08 22:16 hoge.img
   0 -rw-r--r-- 1 igawa igawa 100M 2010-06-08 22:17 hoge.img.sparse
^^^^実際にディスクを使用しているサイズ。(今回の場合、ゼロバイト!)

実際にディスクを使用しているサイズは、上記のようにlsコマンドの「s」オプションで確認できます。

さらに、sparse fileのまま、tarボールにすることもできます。

$ tar -Szcvf hoge.img.sparse.tar.gz hoge.img.sparse
$ ls -lhs hoge.img.sparse.tar.gz
4.0K -rw-r--r-- 1 igawa igawa 139 2010-06-08 22:32 hoge.img.sparse.tar.gz

普通にtarボールにした場合

$ tar -zcvf hoge.img.sparse.tar.gz hoge.img.sparse
hoge.img.sparse
$ ls -lhs hoge.img.sparse.tar.gz
104K -rw-r--r-- 1 igawa igawa 100K 2010-06-08 22:35 hoge.img.sparse.tar.gz

sparse fileについては、こちらが参考になると思います。

http://en.wikipedia.org/wiki/Sparse_file

要は、何もデータが無い領域は、削除して「あるかのように見せる」ということをしている様です。
なので、通常のファイルの場合は削減効果はあまり期待できません。

削減を期待できるのは、仮想OSの仮想ディスクファイルや、メモリダンプイメージなどでしょう。

 

Linux kernelのmakeのターゲットでありそうな気もするんですが、見つからなかったので。

$ cat make_oldconfig_auto.sh

#!/usr/bin/env expect

set timeout 10
spawn make oldconfig
while {1} {
        expect {
                "] (NEW)" { send "\n" }
                "# configuration written to .config" {break}
        }
}

interact

Continue reading »

 

Linux kernel makeの結果はTwitterにつぶやくことにした。

ほとんどのBlog記事が、そればかりになりそうなのでw

 

「PCが複数台あって、必要な時だけPCを起動したい」という欲求が出てきたので、
Wake On Lan(WOL)機能を使ってみた。

(最近、暑くなってきたこともあり、さらに電気代もバカにならないので、
不要なPCの電源はできるだけ落としておきたいので)

  • 準備(ハードウェア編)

マザーボード等が対応している必要があるが、
最近のPCであればおそらく対応しているものがほとんどだと思われる。
ただし、BIOSの設定変更が必要な場合があるので注意が必要。
私が使っているマザーボード(MSI KA780GM-M)ではデフォルトでONになっている様でした。

  • 準備(ソフトウェア編)

送信側:

  1. 「起こされる」PCのMACアドレスを調査
  2. wakeonlanパッケージをインストール
  3. wakeonlanコマンドを使用し、起こす

この様な流れでしょうか。では、詳細を。

  1. 「起こされる」PCのMACアドレスを調査
  2. 以下の様にifconfigコマンドを使用し、MACアドレスを調査する。
    以下のHWaddrの「XX:XX:XX:XX:XX:XX」がMACアドレス。

    $ ifconfig
    eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
              inet addr:192.168.0.13  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: 2001:c90:780:9385:224:21ff:fe1b:59c4/64 Scope:Global
              inet6 addr: fe80::224:21ff:fe1b:59c4/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:537 errors:0 dropped:0 overruns:0 frame:0
              TX packets:420 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:96637 (94.3 KiB)  TX bytes:70434 (68.7 KiB)
              Interrupt:44 Base address:0xc000
    (以下省略)
  3. wakeonlanパッケージをインストール
  4. 「起こす側」に必要。Ubuntuの場合はパッケージが用意されているので、以下の様に、
    「sudo apt-get install wakeonlan」を実行するだけ。

    $ sudo apt-get install wakeonlan
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    以下のパッケージが新たにインストールされます:
      wakeonlan
    アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 9 個。
    11.4kB のアーカイブを取得する必要があります。
    この操作後に追加で 73.7kB のディスク容量が消費されます。
    取得:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main wakeonlan 0.41-10 [11.4kB]
    11.4kB を 0s で取得しました (23.6kB/s)
    未選択パッケージ wakeonlan を選択しています。
    (データベースを読み込んでいます ... 現在 422540 個のファイルとディレクトリがインストールされています。)
    (.../wakeonlan_0.41-10_all.deb から) wakeonlan を展開しています...
    man-db のトリガを処理しています ...
    wakeonlan (0.41-10) を設定しています ...
    
  5. wakeonlanコマンドを使用し、起こす
  6. wakeonlanコマンドで、先ほど調べたMACアドレスを引数に実行する。

    $ wakeonlan XX:XX:XX:XX:XX:XX
    

    ブロードキャストパケットが届かないネットワーク構成の場合には、以下の様に実行する必要があるかもしれない。

    $ wakeonlan -i 「起こしたいPCのIPアドレス」 XX:XX:XX:XX:XX:XX
    

cron等で「起こす側」がwakeonlanコマンドを実行し、「起こされる側」が定期的にpoweroffするようにすれば、
「定期的に電源ONをして、終わったら、電源OFF」という運用が可能となる。

参考リンク:
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/709usewol.html

5月 202010
 

http://kzk9.net/column/valgrind-memcheck.html
自分用にメモメモ。
メモリリークを検出出来るらしい。

 

iPhoneを持ってるのに、Xperiaを買っちゃいましたw
xperia

なんか、ケータイ電話とは程遠い気がします。
普通に、/proc配下のディレクトリにアクセスできたりしますし。

/proc/config.gzにもアクセスできたので、とりあえず張り付けてみる。
Xperiaの.config

で、それ以外の情報ですが、/proc配下から適当に取ってきてみました。

Continue reading »

 

WD15EARSというHDDでは、
「Advanced Format Technology」
というのを採用していて、セクタが4KBになっているそうです。

で、このHDDへLinuxをインストールして使ったところ、
「書き込みがやたら遅い」
という問題が発生しました。

http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/td-p/6395

の投稿を参考に、

# fdisk -H 224 -S 56 /dev/sda

として、
あとは、通常どおり、パーティションを区切りました。
(面倒なので「/」とswapの二つだけにしました。)
これで、ようやく正常な速度になりました。

 

Twitterで「KernelOrgBot」なるものを作ってみた。
http://twitter.com/KernelOrgBot
ちょっと探してみた限りでは、それっぽいものが無かったので。
ただ、「作った」とは言っても…
Continue reading »

 

iPhoneアプリを作るなら、Objective-Cという言語を知っておく必要が
ありそうなので、とりあえず、LinuxでObjective-Cをやってみる。
参考にしている書籍は、以下。

私は、とりあえず、図書館で借りました。
が、図書館に無かったり、近くに図書館が内容な場合は、上記からご購入ください :-)

Apple製品専用言語なのかと思ったが、ググったら、Linuxでも動きそうだったので、
挑戦してみる。

以下、その内容。
Continue reading »

 

.h2o2のお気楽日記で開発されているものですが、
W-ZERO3(私はWS011SH)で、Androidが動きました!
android(W-ZERO3-1)

android(W-ZERO3-2)

android(W-ZERO3-2)


Continue reading »