2011年6月9日木曜日

UbuntuでDVD-Video形式のISOを作成する

環境
・Ubuntu 11.04 Desktop 64bit


前々回にDVDのバックアップ方法を書いたので、今回は、DVD-Video形式のISOファイルの作り方を説明します。使用するのは、Ubuntuに標準で入っているmkisofsです。


使い方
$ mkisofs -udf -dvd-video -o hoge.iso $HOME/dvdfolder
オプションは下記のとおりです。
-udf・・・ファイルシステム
-dvd-video・・・DVD-Video形式で作成
-o・・・出力するISOのファイル名


以上。

2011年6月3日金曜日

64bit版Ubuntuでpogoplugを使う

社内用のファイルサーバとして使う目的で、pogoplug bizを一台購入しました。
Linux用のクライアントも用意されているので、今回はそれをUbuntuにインストール。


環境
・Ubuntu 11.04 Desktop 64bit


pogoplugfsのインストール
$ cd /tmp
$ wget http://download.pogoplug.com/install/linux/pogopluginstall.tar.gz
$ tar zxvf pogopluginstall.tar.gz
$ mv pogoplugfs ~


64bit環境で使うためのライブラリをインストール
このままpogoplugをマウントしようとすると、下記のようなエラーメッセージが表示されてしまいます。
pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

これを解消するために、下記のライブラリを追加でインストールします。
$ sudo apt-get install ia32-libs

$ wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb
$ sudo dpkg -i getlibs-all.deb

$ getlibs libfuse.so.2


pogoplugのマウント
準備が整ったので、pogoplugをマウントしてみます。
$ mkdir ~/enteryourmountpoint
$ ./pogoplugfs --mountpoint ~/enteryourmountpoint --user hoge@fuga.com --password enteryourpassword

このままでもマウントはできるものの、こんなエラーが出るので、
fusermount: failed to open /etc/fuse.conf: Permission denied

パーミッションを変更しましょう。
$ sudo chmod a+rwx /etc/fuse.conf

これで、設定は終了です。


スタートアップへの追加
最後に、pogoplugのマウントを起動時に行う設定を追加します。
pogoplug=`cat <<EOF
[Desktop Entry]
Type=Application
Exec=/home/hoge/pogoplugfs --mountpoint /home/hoge/enteryourmountpoint --user hoge@fuga.com --password enteryourpassword
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=Pogoplug
Name=Pogoplug
Comment[ja_JP]=
Comment=
EOF
`
echo "$pogoplug" > $HOME/.config/autostart/pogoplugfs.desktop


以上。


問題点
1. LibreOfficeのエラー
LibreOfficeに関連付けられたファイルを開こうとすると、
/home/hoge/enteryourmountpoint/ShareDrive/libreofficefile.odsへアクセスする際の一般的な入力/出力のエラー。
というエラーメッセージが出て、開けません。
これに関しては、また後日調査しようと思います。

2. パフォーマンスが悪い
2.7GBのファイルをコピーするのに、160分以上もかかってしまいました。
また、ディレクトリの階層を移動するときに、2秒くらい待たされるので、ちょっとストレスがたまります。

3. クライアントのバグ
Windows用クライアントだと、なぜか同じフォルダが何個も表示されてしまうというバグがあります。
iPhone用クライアントも、4.2にバージョンアップしたら、pogoplugに接続できなくなってしまいました。
私が触った中では、Android用のクライアントが一番完成度が高かったです。

2011年5月30日月曜日

UbuntuでDVDをバックアップ

環境
・Ubuntu 10.10 Desktop 64bit


Medibuntuのリポジトリを追加
$ sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update


dvdbackupのインストール
$ sudo apt-get install libdvdcss2
$ sudo apt-get install dvdbackup


使い方
dvdbackup -M -i /dev/sr0 -n hoge -o /home/fuga
オプションは下記のとおりです。
-M・・・DVD全体をバックアップするときに使うオプション
-i・・・ターゲット(DVDドライブ)のディレクトリ
-n・・・保存するときに作成されるフォルダの名前
-o・・・保存先のディレクトリ


しばらくまてば、/home/fuga/hogeにVIDEO_TSフォルダが出来上がっているはずです。
あまり細かい設定は出来ませんが、シンプルで使い勝手は良いです。


以上。

2011年4月11日月曜日

Ubuntu 10.10にBlender 2.5をインストール

環境
・Ubuntu 10.10 Desktop 64bit


$ sudo add-apt-repository ppa:cheleb/blender-svn
$ sudo apt-get update
$ sudo apt-get install blender


以上。

2011年1月5日水曜日

RubyからGoogleスプレッドシートのデータを取得

環境
・Ubuntu 10.10 Desktop 64bit
・Ruby 1.9.2
・gdata 1.1.1


RailsからGoogleスプレッドシートのデータを取得して、DBにインサートするという機能を、今から作ろうと思っています。


Googleスプレッドシートのデータを操作するには、gdataというライブラリを使用します。
Ruby 1.9.2でgdataをrequireすると、下記のようなエラーが出てしまいます。
`require': no such file to load -- jcode (LoadError)


これを解消するためには、
$HOME/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/gems/1.9/gems/gdata-1.1.1/lib
の
require 'jcode'
$KCODE = 'UTF8'
この箇所を、
if RUBY_VERSION < '1.9'
  require 'jcode'
  $KCODE = 'UTF8'
end
という風に書き換えます。


あとは、
rubyからGoogle Data APIでGoogleDocsのSpreadSheetを参照してみた - 三並慶佐 - hi-fi-Net Blog
を参考に、セルの値を読み出してみます。


require "rubygems"
require "gdata"

client = GData::Client::Spreadsheets.new
client.clientlogin('******@gmail.com', 'enteryourpassword')

key = "****************************************"
sheet = 1
feed = client.get("https://spreadsheets.google.com/feeds/cells/#{key}/#{sheet}/private/full").to_xml

row_count = feed.elements['gs:rowCount'].text.to_i
col_count = feed.elements['gs:colCount'].text.to_i
puts "row_count=#{row_count}"
puts "col_count=#{col_count}"

sheet_data = []
feed.elements.each('entry') do |entry|
gs_cell_el = entry.elements['gs:cell']
col = gs_cell_el.attribute('col').value.to_i
row = gs_cell_el.attribute('row').value.to_i
text = gs_cell_el.text
puts "#{col} #{row} #{text}"
end


シートインデックスは、0ではなく、1から始まることに注意しましょう。

2010年12月18日土曜日

Ubuntuでディスクを完全消去する方法

HDDやUSBメモリを破棄したり、譲渡したりする場合は、データを完全に消去しなければなりません。
Linuxには、そのためのshredというコマンドが用意されています。


環境
・Ubuntu 10.10 Desktop 64bit


まずは、fdiskで、消去したいデバイスを調べます。
$ sudo fdisk -l

ディスク /dev/sda: 128.0 GB, 128035676160 バイト
ヘッド 255, セクタ 63, シリンダ 15566
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
Disk identifier: 0x00031378

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sda1   *           1       14928   119909128+  83  Linux
/dev/sda2           14929       15566     5124735    5  拡張領域
/dev/sda5           14929       15566     5124703+  82  Linux スワップ / Solaris

ディスク /dev/sdf: 32 MB, 32768000 バイト
ヘッド 2, セクタ 32, シリンダ 1000
Units = シリンダ数 of 64 * 512 = 32768 バイト
Disk identifier: 0xe4cb8593

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdf1   *           1         999       31952    4  FAT16 <32M


今回は、32MBのUSBメモリを消去してみます。


下記のコマンドで、ランダムデータの書き込みを4回行います。
$ sudo shred -n 4 -v /dev/sdf1


万全を期す場合は、-zオプションを使います。ただし、すごく時間かかります。
$ sudo shred -z -v /dev/sdf1

今回使ったオプション
-n・・・ランダム書き込みを行う回数
-v・・・進捗状況の表示
-z・・・ランダム書き込みを25回行い、最後に0を書き込む

2010年12月15日水曜日

Ubuntu 10.10 64bitにOpenNIをインストール

ようやくkinectに触れる時間ができたので、話題のOpenNIを入れてみました。



環境
・Ubuntu 10.10 Desktop 64bit


ほとんどの手順は、下記ページの通り。
TK's HP - Linux Ubuntu 10.04でOpenNIを使ってKinectを動かしてみる
NITEは、64bit用のものをインストール。


OpenNI/Samples/Bin/Releaseと、NITE/Samples/Binに入っているサンプルを実行して、動作確認を行います。




















OpenNIのサンプルは動作するものの、NITEのサンプルは、ほとんど動きません・・・Ubuntuだから?64bitだから?
正式版が出たら、もう一度トライしてみたいと思います。