(Home)    [2012年3月]

2012.03.29

ubuntu 11.10を入れてから行ったこと・・・(ubuntu)

ubuntu 11.10を古いPCに入れたが、その後幾つかのカスタマイズを施した。

1. USB Boot

古いPCなので、当然USB Bootができない。そこで、grub2を入れてUSB Boot非対応PCの救世主のplop bootを使うこととした。plop bootはWindowsでダウンロードしたのを解凍すると、Linuxというフォルダーができるのでその中のplpbt.binをWindowsのワークグループ接続でubuntuのHomeディレクトリーに持ってきた。それを/bootにコピーする。

# apt-get install grub2
# cp plpbt.bin /boot ← plpbt.binのコピー
# cd /etc/default  ← /etc/defaultに移動しgrubを修正する
# vi grub
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0  ← この行をコメントアウト これで選択画面が標示される
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_GFXMODE=640x480 ← 好きな解像度に設定

準備が整ったのでgrub.d内の設定ファイルを修正

# cd /etc/grub.d ← /etc/grub.dに移動
# vi 40_custom  ← 40_customにMemory bootを追加し、画像も指定する
menuentry "USB Memory Boot" {linux16 /boot/plpbt.bin}  ← USB Boot指定行を追加

起動時の背景画像を指定

# vi 05_debian_theme
WALLPAPER="/home/nakamura/Pictures/menu01.png"    ← 背景画をフルパスで指定
# Next try to use the background image and colors specified by desktop-base.
if set_background_image "${WALLPAPER}" "${COLOR_NORMAL}" "${COLOR_HIGHLIGHT}";  then
exit 0
fi

文字、線色を指定

# vi 40_custom
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
set menu_color_normal=dark-gray/black                        ← 文字と線色も指定
set menu_color_highlight=magenta/light-gray

grubをアップデートしてリブートする。

# update-grub                                                   ← grubをアップデートする
# reboot                    ← リブート 

<

blockquote>これで下図のような選択画面が現れる。
grub_menu.jpg

2. ログイン画面の背景画の変更

起動選択画面の背景画の変更に加えて、ログイン画面の背景画も変更した。
/etc/lightdm内にあるunity-greeter.confを修正する。

# cd /etc/lightdm
# vi unity-greeter.conf
# xft-rgba = Type of subpixel antialiasing (none, rgb, bgr, vrgb or vbgr)
#
[greeter]
background=/usr/share/backgrounds/EOS.jpg  ← この行で画像を変更して指定する
logo=/usr/share/unity-greeter/logo.png

これで、ログイン画面も綺麗になった。

logins.jpg

3. Ubuntu Unityについて

ubuntu 10.04あたりからであろうか、gnomeのユーザーインターフェイスに変わって、Unityというユーザーインターフェイスが提供されてきた。
最初は、画面の小さいMobile用であろうと言われていたが、ubuntu 11.10では標準になっている。確かに初期の頃の欠点はだいぶ改良されて、アイコンなども美しい。
しかし、何かを起動するために3段階必要で、目的のオブジェクトが何処にあるのか直接には分からない。しかも重い。どう考えてもgnomeの方が優れていると思える。画面は綺麗だが、使い勝手は、後退しているように思えてならない。ubuntuは素晴らしいし、終にWindowsに変わる可能性が見えてきたと思っていたのだが、かつての歴史をまた繰り返し、Windowsがのさばりけ、何時かubuntuも消えていたとなるのか心配だ。
余談だがUnityで一番戸惑ったのは、Firefoxを起動した時メニューバーがどうしても現れないことであった。ネットで調べても分からなかった。ずいぶん経ってから、マウスのカーソルを画面の上パネルに近づけるとパネル上に現れるようになっていることに気がついた。(下図参照)
snapshot01.png
当然私は、gnome-desktopをSoftware Centerからインストールした。
インストールして、一旦ログアウトすると、ログイン画面のパスワード入力フォームの右上の歯車をクリックして、何時でも使用インターフェイスが選択できる。

login2.jpg

2012.03.26

ubuntu 11.10 でwli-uc-gnp(USB無線LAN)・・・(ubuntu)

久しぶりにubuntuをいじりました。
2.5インチのUSB接続で30GBの小型の外付けディスクにubuntu 11.10を入れました。
これで、ubuntuを起動させたければ、USBから起動すればよいので、元々入っているWindows 7には全く手を付けずにubuntuが楽しめます。起動は多少もたつくが、起動してしまえばなかなか快適です。
さて、以前にBuffaloのUSB無線LANアダプターのWli-uc-gnpをubuntuで使う方法を書いたが、ubuntuの11.10になっても基本的には同じだが、多少異なる点もあるので、改めて書いておくことにしました。
lsusbコマンドで調べると下記のように認識している。

# lsusb
Bus 002 Device 004: ID 0411:019e MelCo., Inc. Buffalo WLI-UC-GNP Wireless LAN Adapter

lsmodで調べると、それらしいmodule名が見つからないので、GW-USMicroN-Gを挿して、modprobeをかけてみた。

# modeprobe rt2800usb

そしてlsmodを打つと

# lsmod
rt2800usb              22222  0
rt2800lib              48909  1 rt2800usb
crc_ccitt              12595  1 rt2800lib
rt2x00usb              20092  1 rt2800usb
rt2x00lib              48146  3 rt2800usb,rt2800lib,rt2x00usb

rt2800usbが現れたので、 WLI-UC-GNPに差し替えて再度modprobeを打つと、動き出した。
しめしめと、ここからが実際の適用である。

# cd /etc/udev/rules.d
# vi 70-persistent-net.rules

ここで、下記を追加

# USB device 0x0411:0x019e Melco(usb)
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0411", ATTR{idProduct}=="019e", RUN+="/sbin/modprobe -qba rt2800usb"

次に

# cd /etc/modprobe.d
# vi wireless.conf  ← 新規にwireless.confの名前のファイルを作る。そして下記を書き込んでおく。
install rt2800usb /sbin/modprobe --ignore-install rt2800usb $CMDLINE_OPTS; /bin/echo "0411 019e" > /sys/bus/usb/drivers/rt2800usb/new_id

再起動して、問題なく使用できる状態になることを確認した。

2012.03.13

FreeBSDをUSBメモリーからインストール・・・(FreeBSD)

FreeBSDのISO-IMAGEのダウンロードのディレクトリーには、CDRやDVDに書きこんで使うisoファイルとともに、USBメモリーに書きこんで使う、xxxxxx-memstock.imgがある。
minisd3.jpg
習慣的にCDRを作成してインストールを行なっていたが、FreeBSD 9.0でUSBからの起動を行なってみた。
使用したのは、左の写真のようにmicroSDメモリーと小さなUSBアダプターである。もちろん、USBメモリーとして造られたのを用いても何ら問題はないし、より一般的なことであろう。
まず、既に立ち上がっているFreeBSDのマシンのUSBポートに接続して、da0として認識されることを確認した。次に、FreeBSD-9.0-RELEASE-i386-memstick.imgをダウンロードして、収納したディレクトリーで下記のようにしてインストル用メモリーを作成した。

# dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/da0 bs=1m

ここで、bs=1mとして、ブロックサイズを1MBとしたが、約1分30秒ほどで作成が完了した。
bs=10240として、ブロックサイズを1KB程度とすると、5分以上かかってしまった。bs=10mとしても、1mの場合とほとんど変わらなかったので、bs=1mぐらいが適していると思える。
ともかく、簡単に作成できる。出来上がったUSBメモリーで、起動してみたがCDRなどより、立ち上がりが迅速でとても感じがよい。DVDドライブのトレーの開け閉めの煩わしさもなく、もっと早くからUSBにすればよかったと思うこととなった。
なお、Windowsでも作成ツールとしてddの機能を実行するdd for Windowsというフリーソフトと、Image Writer for Windowsがあるが、Image Writer for Windowsの方が作成時間も早くお勧めのようである。

2012.03.04

GPTでミラー化したHDDの初期化と再組み込み・・・(FreeBSD)

以前に「FreeBSD 9.0のGPTでのミラー構築」を書いたが、HDDの故障に際しての交換作業を行なうことを試みた。現在、ミラーはドライブada0とada1で構成されているが、ada1が故障したとの前提で行うこととした。現実的には、ada1を外して新しいHDDを取り付けることとなるが、新しいHDDの代わりにada1として使っていたHDDを初期化して、再度使うこととし、GPTでミラー化されたHDDを初期化することも合わせて試みることとした。

以下説明のためミラー構成でada0となっていたドライブをdv#0 、ada1となっていたドライブをdv#1と呼ぶこととする。

1. HDDの初期化

dv#1を初期化するため、dv#0のケーブルを抜き、dv#1のみ実装した状態で、FreeBSD 9.0のインストールCDで立ち上げ、Live CDを選択してrootでログインする。
プロンプトが現れたら、HDDの状態を調べる。

# gpart show
=>         34      312581741 ada0   GPT    (149G)
              34                  128     1   freebsd-boot  (64k)
            162      136314880     2   freebsd-ufs     (65G)
136315042        19986412     3   freebsd-swap   (9.5G)
156301454      156280321          - free -   (74G)

このことから、

  • bootレコードは、34セクター目から161セクターまで
  • データー領域は、162 – 136315041
  • スワップ領域は、136315042 – 156301453

となっていることが分かる。最後の156301454以降312581775までが空きである。最後のセクターが表示の1行目の312581741と僅かに異なるが、理由は分からない。
そして、ミラーのメタデーターはそれぞれの領域の最終セクターに書かれているので、境界を跨ぐようにddで消去する。以下のように行った。

# dd if=/dev/zero of=/dev/ada0 bs=512 count=2000
# dd if=/dev/zero of=/dev/ada0 seek=136314000 bs=512 count=2000
# dd if=/dev/zero of=/dev/ada0 seek=156301000 bs=512 count=2000
# dd if=/dev/zero of=/dev/ada0 seek=312581000 bs=512 count=2000

最後の行の空き領域の最後にzeroを書き込む必要はないと思われるが、以前にもHDD全体でgmirrorで使用した痕跡が残っているかも知れず、念のため消去を行った。
なお、bs=100mとして全領域消去したら約42分かかった。150GBの小容量のHDDでも42分だから、大容量HDDだと丸1日かかるかも知れない。

2. ミラーの再構築の事前確認

Shutdownして、dv#0, dv#1とも接続して普通に立ち上げる。
gpartで確認すると、dv#0の情報のみ表示される。

# gpart show
=>         34      156301421 ada0   GPT    (74G)
              34                  128     1   freebsd-boot   (64k)
            162      136314880     2   freebsd-ufs      (65G)
136315042        19986412     3   freebsd-swap   (9.5G)
156301454                      1          - free -   (512B)

gmirrorのステータスを見ると、

# gmirror status
mirror/p1 DEGRADED ada0p1  (ACTIVE)
mirror/p2 DEGRADED ada0p2  (ACTIVE)
mirror/p3 DEGRADED ada0p3  (ACTIVE)

となっていて、すべてDegradeした状態で動いている。

3. ミラーの再構築

ここで、ada1をada0と同じ分割となるように作る。

# gpart backup ada0 > ada0.gpt
# gpart restore -F ada01 < ada0.gpt

再度、gpart showで情報を見ると、ada0とada1が同じ構成で現れる。ただしdv#1の方が容量が大きいので、最後に付いている空き領域が74Gにもなっている。

# gpart show
=>         34      156301421   ada0   GPT    (74G)
              34                  128     1   freebsd-boot  (64k)
            162      136314880     2   freebsd-ufs     (65G)
136315042        19986412     3   freebsd-swap   (9.5G)
156301454                      1          - free -   (512B)

=>         34      312581741 ada1   GPT    (149G)
              34                  128     1   freebsd-boot  (64k)
            162      136314880     2   freebsd-ufs     (65G)
136315042        19986412     3   freebsd-swap   (9.5G)
156301454      156280321          - free -   (74G)

ここで、ada1にbootレコードを書き込む。
boot領域をミラー化してもbootコードだけは、gmirrorの対象外であるため、マニュアルで書いておく必要がある。最初これが分からず、起動しなくて散々悩むこととなった。

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1

gmirrorの構成情報をリセットして状態を確認する。

# gmirror forget p1
# gmirror forget p2
# gmirror forget p3
# gmirror status
mirror/p1 COMPLETE ada0p1  (ACTIVE)
mirror/p2 COMPLETE ada0p2  (ACTIVE)
mirror/p3 COMPLETE ada0p3  (ACTIVE)

構成情報がリセットされたので、それぞれの領域のミラーを構築する。

# gmirror insert p1 /dev/ada1p1
# gmirror insert p2 /dev/ada1p2
# gmirror insert p3 /dev/ada1p3
# gmirror status
Name         status     Components
mirror/p1    COMPLETE   ada0p1 (ACTIVE)
                        ada1p1 (ACTIVE)
mirror/p2    DEGRADED   ada0p2 (ACTIVE)
                        ada1p2 (SYNCRONIZING 1%)
mirror/p3    COMPLETE   ada0p3
                        ada1p3 (SYNCRONIZING 20%)

p1はboot領域で64kBしかないので、同期化は一瞬で終わる。
次にswap領域が、比較的小容量なので短時間で完了する。swap領域の同期化が完了すれば、サーバーは使用可能になる。コマンドの入力に対して通常と思える応答を示す。
本当に、HDDが壊れて新しいHDDを接続したときは、3.項のミラーの再構築のみなので、作業は簡単である。