2015年3月20日金曜日

Odroid C1 / Ubuntu でサーバ構築 2 ストレージのマウント

Odroid C1を利用してサーバを構築する.前回は,基本的な設定を行いました.
今回は外付けHDDのマウントとバックアップ体制をつくります.

外付けHDDの初期化とマウント登録

ディスクのチェック

USBで外付けHDDを接続し,マウントできる状態にします.
/etc/fstabを設定してUbuntu起動時に自動マウントするように設定します.

接続されているストレージや各ストレージのパーティションなどの構成を表示,設定するfdiskで接続されているストレージデバイスを取得します.
$sudo fdisk -l
- 省略 -

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            3072      266239      131584    6  FAT16
/dev/mmcblk0p2          266240    61496320    30615040+  83  Linux

挿入済みのマイクロSDカードが表示されました.
それでは,USBの外付けHDDを接続してもう一度fdiskしてみましょう.
なんとまぁ,私は外付けHDDを接続して,電源を付けるのを忘れていました.

$sudo fdisk -l 

- 省略 -
       Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            3072      266239      131584    6  FAT16
/dev/mmcblk0p2          266240    61496320    30615040+  83  Linux

- 省略 -

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048  1953525167   976761560   83  Linux

というわけで,接続した外付けHDDは/dev/sda1となっているようです.

初期化

今回は,パーティションで区切らず全体を1つとし,ext4で初期化します.
fdiskで初期化します.
$sudo fdisk /dev/sda

fdiskのモードに入ります.mでヘルプが見れてpで現在の状態が見れますね.wを押すまで変更は実際に適用されません.
指示に従ってnで作成を始めます.
Command (m for help): p

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
78 heads, 63 sectors/track, 397542 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-1953525167, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1953525167, default 1953525167): 
Using default value 1953525167

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Command (m for help): q

領域ができたのでext4システムを作成します.
$sudo mkfs -t ext4 /dev/sda1

マウント設定

マウントポイントを作って,今回はUUIDを使ってマウントするように設定します.
マウントは/mnt/storageにします.
$sudo mkdir /mnt/storage
$sudo blkid /dev/sda1

このままmountコマンドでもOKですが,自動マウントするように/etc/fstabを編集します.書き方はarchlinuxjp.kusakata.com/wiki/Fstabの通りですね./etc/fstab追記します.
UUID=     /mnt/storage    defaults    0    2
今回はシステムでもなく単純にファイルを入れておくハードディスクドライブであるため最後の数値は2にしました.
/etc/fstabの通りマウントを反映します.そしてlsで確認します.無事マウントされていました.
$sudo mount -a
$ls /mnt/storage

同じ方法でもう1基HDDを接続&マウントしました.
次回は接続した2基のHDDを常時ミラーリングしてバックアップするようにします.

2015年3月19日木曜日

Odroid C1 / Ubuntu でサーバ構築 1: ネットワーク設定,ユーザの追加など

前々回前回の2回でOdoroid C1にUbuntuをインストールして起動しました.基本的な設定も行いました.今回からはこれを自宅サーバにしたいと思います.用途としてはSambaでNAS(Network Attach Server)にしたり,Subsonicで音楽配信サーバにしたりです.

Odroid C1でサーバの構築

要件

  • SSHデーモンによりリモート操作ができる.
  • 常時,ハードディスクドライブを2基マウントする.
  • 2基のハードディスクはrsyncでミラーリングしており,自動的にバックアップする.
  • Sambaでファイルサーバ(NAS)として稼働する.
  • Subsonicでハードディスク内の音楽ファイルをストリーミングで配信する.

GUIをオフにする

現在はブート後,自動的にXが立ち上がってグラフィカルな操作を可能になっていますが, サーバ用途では必要ないと考えられるため,Xをオフにします.
デスクトップの"ODROID Utility"を起動し,"5 Xorg On/Off"を選択し,Disabledにします. そして,再起動.
再起動後,またしても画面がちらついてしまいました.CUIこそ画面解像度は必要ないですし,この後はSSHによるリモート操作を行うため,boot.iniを再び書き換えます.書き換えは前回と同じで,画面解像度を変更してます.

再起動後のログイン

Xをオフにしたため,CUIでのログインになりました.
特に変更が無い限り,ユーザ名: odroid, パスワード: odroidです,

emacsのインストール

これからは設定ファイルを直接編集する機会が多くなります.
私は,emacsをエディタに使うので,emacsをインストールします.
$sudo apt-get install emacs

ちなみに,viは初めからインストールされているでしょう.

ネットワークの設定

サーバなので固定IPにします.
sudo emacs /etc/network/interfaces
下記を追記します.アドレスなどの部分は適切に書き換えてくださいね.
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
この後,
$sudo ifup -a
$sudo service networking restart
でOKなハズですが,ifconfigしてもIPアドレスが更新されないため,再起動しました. 再起動後,設定が反映されていることをifconfigで確認しました.

また,使用するDNSサーバの設定も行います./etc/resolvconf/resolv.conf.d/base を編集します.
sudo emacs /etc/resolvconf/resolv.conf.d/base 
nameserver 192.168.1.1

そして,DNSサーバの設定反映
sudo resolvconf -u

SSHでログイン

このままターミナル上でキーボードを直接叩いて操作しても良いのですが,SSHでリモート操作しましょう. SSHのデーモンはすでに稼働しているはずです,となりのパソコンなどからログインしましょう. odroidユーザーにログインです.
ログイン元であるクライアントから実行:
$ssh odroid@

ユーザーの追加

いままで,ユーザ名: odroidのアカウントで設定を行ってきましたが,そろそろ自分の名前のアカウントを作成しましょう.

ユーザ追加

ユーザー追加はadduserで行います.useraddではありません.
$sudo adduser <ユーザ名>
パスワードやその他の情報が求められます.その他の情報は空白でもOKみたいですね.

グループ追加

登録できるグループリストは
$cat /etc/group
で確認できますが,いろいろあって良く分からないというのが一般的な感想かと思います. それぞれの内容についてはさておき,参考に既存のodroidアカウントが所属しているグループに見てみましょう.
odroidアカウントが所属しているグループは,,
$cat /etc/group | grep odroid
adm:x:4:syslog,odroid
dialout:x:20:odroid
fax:x:21:odroid
cdrom:x:24:odroid
floppy:x:25:odroid
tape:x:26:odroid
sudo:x:27:odroid
audio:x:29:pulse,odroid
dip:x:30:odroid
video:x:44:odroid
plugdev:x:46:odroid
netdev:x:102:odroid
nopasswdlogin:x:108:odroid
odroid:x:1001:
lpadmin:x:114:odroid
scanner:x:115:saned,odroid
fuse:x:116:odroid
みたいですね.これを参考に先ほどつくったアカウントもグループ登録すれば良いかと思います.
しかし,nopasswdloginとやらまで追加したくないし,一方でsudoやadmなどは重要ですね.
必要に応じてあとから追加・削除すれば良いわけですしとりあえず今回は
$sudo usermod -G adm,cdrom,sudo,audio,video,plugdev,netdev,odroid,lpadmin,fuse <ユーザ名>
としました.初回だからusermodコマンドを使用しましたが,次からグループに追加するときはgpasswd -aの方がいいですね. usermod -Gだとオプションに指定しなかったグループからは外れてしまいますから.

Odroidアカウントのパスワード変更

さすがにユーザ名: odroid, パスワード: odroidのアカウントを残しておくのも問題なのでパスワード変更します.同時にrootのパスワードも変更します.
$sudo passwd odroid
$sudo passwd root

ここまで

ここまででセットアップの下ごしらえができました..文章書くのに疲れたので次回にします.そして,そろそろ普通のLinuxとして使えるようになってきました.

初めてのOdroid C1のUbuntuセットアップ その2

前回,マイクロSDカードにUbuntuの書き込みまでを行いました.

Ubuntuを起動

Odroid向けUbuntuを書き込んだマイクロSDカードを本体に挿入します.

ケースに梱包した後,電源アダプタ,LANケーブル,キーボード,ディスプレイを接続します.そして電源アダプタをコンセントに挿して起動します.

起動しない..

起動して,ターミナルのログイン画面が表示されるはずですが,表示されませんでした.画面がチラついて起動の途中で止まってしまします..
起動が途中でストップしてしまうのは,OSがきちんと書き込まれていなかったからでしょうか.ddコマンドでもう一度書き直し,何回もsyncしたらOKになりました.

画面がちらつく

無事にUbuntuが起動できたとしてもやたらと画面がチラつきます.

画面解像度を変更してみました.そのためには,/BOOT/boot.iniを編集します.これはMacやWindowsなど母艦となっているPCに再接続して編集してもOKです.

ODROIDC-UBOOT-CONFIG

# Possible screen resolutions
# Uncomment only a single Line! The line with setenv written.
# At least one mode must be selected.

# setenv m "vga"           # 640x480
# setenv m "480p"          # 720x480
# setenv m "576p"          # 720x576
# setenv m "800x480p60hz"  # 800x480
# setenv m "800x600p60hz"  # 800x600
# setenv m "1024x600p60hz" # 1024x600
# setenv m "1024x768p60hz" # 1024x768
# setenv m "1360x768p60hz"  # 1360x768
# setenv m "1366x768p60hz" # 1366x768
# setenv m "1440x900p60hz" # 1440x900
# setenv m "1600x900p60hz" # 1600x900
# setenv m "1680x1050p60hz" # 1680x1050
# setenv m "720p"          # 720p 1280x720
# setenv m "800p"          # 1280x800
# setenv m "sxga"          # 1280x1024
# setenv m "1080i50hz"          # 1080I@50Hz
# setenv m "1080p24hz"          # 1080P@24Hz
# setenv m "1080p50hz"          # 1080P@50Hz
setenv m "1080p"                # 1080P@60Hz
# setenv m "1920x1200"     # 1920x1200

ですが, setenv m "1080p" # 1080P@60Hz に#をつけてコメントアウトし,他の解像度を選んでみます.選びたい解像度の先頭の#をハズします. 渡しの場合は1024x768を選んでなんとか落ち着きました.

起動します

起動後,GUIのデスクトップ画面が表示されます.キーボードやマウスも認識されていると思います.

rootパーティションの拡張

デスクトップに置かれた"README FIRST"に目を通した後,それに記載されているとおり,"ODROID Utility"をダブルクリックして起動します.
いきなりパスワードが求められます.初期パスワードは"odroid"です.

何はともあれ,マイクロSDカードのルート領域を拡張します."4 Resize your root partition"を選択し,すすめます.完了後,再起動します.画面右下のボタンから再起動できます.
再起動後,左下のメニューボタンからPrefferences→Disksと進めてパーティションの区分を見ると,trustyと呼ばれる領域が最大限使用されています.

いろいろアップデート

画面左下のメニューからAcceories→LXTerminalとすすめてターミナルを開きます.
apt-getからアップデートをしておきましょう.
$sudo apt-get update && sudo apt-get upgrade

タイムゾーンの変更

おそらく,時刻が大きくずれて表示されているかもしれませんが,これはタイムゾーンが異なっているからです. タイムゾーンをAsia/Tokyoに設定します./etc/localtimeをAsia/Tokyoで上書きすればOKですが,念のため,バックアップを取ってから行います.
$sudo cp /etc/localtime /etc/localtime.org
$sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$date (←日付と時間を確認)

ホストネームの変更

ホストネーム,すなわちこのコンピュータの名前を変更します. 初期名はOdroidです.デスクトップの"ODROID Utility"から"7 Change Hostname"で変更します. 変更後は再起動が必要です.

総括

Odroid上でUbuntuを起動して,最初に必要な設定を行いました.
私はOdroidを音楽ストリーミング配信サーバ,自宅のファイルサーバとして利用するつもりです.次回からはこれらのサーバにするためにセットアップを行います.

 参考文献
http://forum.odroid.com/viewtopic.php?f=111&t=7611
http://qiita.com/azusanakano/items/b39bd22504313884a7c3

2015年3月18日水曜日

初めてのOdroid C1のUbuntuセットアップ その1

初めてのOdroid C1

知人に誘われて一緒にOdroid-C1を購入しました.
購入後,しばらく放置となっていましたが,今回Ubuntuをインストールして自宅サーバとして運用することにしました.
まずはUbuntuのインストールです.

流れ

  1. 必要な物品の用意
  2. Odroid向けのUbuntuをダウンロード
  3. MacからUbuntuをマイクロSDカードに書き込む

用意した物

  • Odroid C1 本体
  • 専用アダプタ
  • Odroidのケース
  • マイクロHDMIとHDMIの変換ケーブル
  • マイクロSDカード(32GB)
  • マイクロSDカードのカードリーダ(USB接続)
  • PC(今回はMacbook Air)
  • ディスプレイ(HDMI付,最近ではテレビでもOKですね)
  • (コーヒー)
用意した物,Odoroid本体はケースに梱包済み

Ubuntuのダウンロード

お手物とのコンピュータで,OdoroidのWikiSoftware Release for Linux/UbuntuからUbuntuのイメージファイルをダウンロードします.本屋Ubuntuのサイトからダウンロードするのではありません.OdroidはARM系のCPUに対して本屋Ubuntuサイトは一般のPC向け,すなわちx86系を配布しています.
ダウンロードしたら解凍します.
$ unxz ubuntu-14.04.1lts-lubuntu-odroid-c1-20150204.img.xz 
ubuntu-14.04.1lts-lubuntu-odroid-c1-20150204.imgが作成されました.(ファイル名はバージョンなどによって違うと思います.)

マイクロSDカードにUbuntuの書き込み

Flashing S/W Releaseの手順に従って,マイクロSDカードにダウンロードしたUbuntuを書き込みました.

このページに,マイクロSDカードを通常サイズのSDカードとしてマウントするリーダでは失敗する場合があると記載されていたため,USBのカードリーダを準備しました.(わざわざ買いました http://goo.gl/x9ufiC)

今回はMac(UNIX)であるためddコマンドから実行しました.

まず,マイクロSDカードを接続する前にターミナルのdfコマンドで現在接続されているストレージ一覧を表示します.
$ df
Filesystem      Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1     233Gi  143Gi   90Gi    62% 37436143 23542671   61%   /
devfs          183Ki  183Ki    0Bi   100%      633        0  100%   /dev
map -hosts       0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0        0  100%   /home

続いて,マイクロSDカードのUSBカードリーダを接続してもう一度dfします.
$df
Filesystem    512-blocks      Used Available Capacity  iused    ifree %iused  Mounted on
/dev/disk1     487830528 298991288 188327240    62% 37437909 23540905   61%   /
devfs                367       367         0   100%      636        0  100%   /dev
map -hosts             0         0         0   100%        0        0  100%   /net
map auto_home          0         0         0   100%        0        0  100%   /home
/dev/disk2s1    61472768      4992  61467776     1%        0        0  100%   /Volumes/NO NAME

差分を見て分かるとおり,マイクロSDカードが/dev/disk2s1になっています.
一旦,これをアンマウントします.
$sudo diskutil unmount /dev/disk2s1
Password: 

ようやくddコマンドで書き込みます.of=の後に書き込み先を指定します. ただし,/dev/の後に続くデバイス名の先頭にrを付けて,後ろのs1などを消します. 今回は/dev/disk2s1なので,/dev/rdisk2とします. ddコマンドは誤ると,PCのデータを消してしまいかねないので慎重に実行します.(←毎回緊張します)
$sudo su
# dd if=ubuntu-14.04.1lts-lubuntu-odroid-c1-20150204.img of=/dev/rdisk2 bs=1m conv=sync
# sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync;
syncは何回も実行します. このまま実行すると進捗が表示されませんが,実行されているはずです.場合によっては時間が掛かるかもしれません.

終了するとBOOTとしてマウントされていました.

以上で,Ubuntuの書き込み(OSのインストール)は完了です.

参考

http://odroid.com/dokuwiki/doku.php?id=en:c1_release_linux_ubuntu
http://odroid.com/dokuwiki/doku.php?id=en:odroid_flashing_tools

2015年2月18日水曜日

LaTeXで本文2段組,でもタイトルと概要は1段組,著者の脚注が表示されなかったのでメモ

概要

LaTeXで2段組の文章を作成しているが,タイトルと概要などのヘッダ文章だけは1段組にしたい.しかし,ネット上で紹介されている方法を試したら著者の脚注が表示されなくなってしまった.そこで,abstract.styを導入し,\saythanksを使用することで解決した.

文書全体の2段組

最初の\ducmentclassのオプションにtwocolumnを追加することで文書全体を2段組にすることができる.ただし,タイトル部分だけは1段組のままである.

\documentclass[a4p,10pt,twocolumn]{jarticle}
\title{タイトル}
\author{hiroyky \thanks{Future University}}
\begin{document}
\maketitle
\begin{abstract}
概要
\end{abstract}
\end{document}

概要も1段組にする

このままでは,タイトルは1段組であるが,概要は本文と同様に2段組になる. そこで,概要を1段組にするため次のようにする.\twocolumn[]でくくってやるわけであるが..
\documentclass[a4p,10pt,twocolumn]{jarticle}
\title{タイトル}
\author{hiroyky \thanks{Future University}}
\begin{document}
\twocolumn[
\maketitle
\begin{abstract}
概要
\end{abstract}
]
\end{document}
これだと,著者の脚注が表示されなくなる.ページ下部に"Future University"と表示されなくなる.

abstract.styの\saythanksを使う.

abstractパッケージをダウンロードします(http://www.ctan.org/tex-archive/macros/latex/contrib/abstract).
インストールは次のように行って,生成されたabstract.styを自分の文書ディレクトリにコピーしてインストールします.
$latex abstarct.dtx

で,次のようにします.\usepackageして\saythanksを記述します.
\documentclass[a4p,10pt,twocolumn]{jarticle}
\usepackage{abstract}
\title{タイトル}
\author{hiroyky \thanks{Future University}}
\begin{document}
\twocolumn[
\maketitle
\begin{abstract}
概要
\end{abstract}
]
\saythanks
\end{document}
これでOKですね??

2014年8月19日火曜日

githubでリポジトリを編集できるユーザーを追加する

githubを使ってグループで共同開発がしたい

他人のリポジトリにあるプロジェクトを編集する際には,フォークして自分の変更を加えてコミットした後,元の人にプルリクエストをおくります.しかし,複数人で一つのリポジトリを共有したいとき,すなわち共に開発する友人らに対してリポジトリにプッシュ出来るように設定します.

githubのWebから設定

リポジトリの作成者アカウントで,該当リポジトリに移動します.
Settings→Collaboratorsへと移動します.

追加したいユーザー名を入力して"Add collaborator"で完了です.

かんたん(^^)v

以上です.


2014年8月9日土曜日

djangoのmakemessagesでのエラーメッセージにハマりかけたのでメモ

Djagnoの翻訳テキストファイルの作成コマンド

django-admin.pyもしくはmanager.pyのmakemessagesに翻訳に必要なファイルを自動生成させることが出来ます.
$./manager.py makemessages -l ja_JP

ところで,私がこれを行ったところ以下のようなメッセージが出力されました.


This script should be run from the Django Git tree or your project or app tree. If you did indeed run it from the Git checkout or your project or application, maybe you are just missing the conf/locale (in the django tree) or locale (for project and application) directory? It is not created automatically, you have to create it by hand if you want to enable i18n for your project or application.

えっとGitがどうとか言われていますが,結局のところプロジェクトに./localeディレクトリがないことが原因みたいでした.

というわけでプロジェクトディレクトリのルートで
$mkdir locale
$./manager.py makemessages -l ja_JP

として無事に翻訳用のテキストファイルが作成できました.
ふぅ〜.