FrontPage

Ubuntu6.0.6LTS(DapperDrake?)によるデスクトップ環境構築方法

もちろん絶賛編集中

概略

目的

Windowsを利用せずに、フリーソフト、無償ソフトだけで仕事に利用可能で、それなりの娯楽が可能な環境を構築すること。

  • まあ、単純にWindowsXPのライセンスをノートで利用してる奴しか持ってないのとVistaに着いていけないからという理由
  • ほどほどの娯楽と言うのは、開発で使えればといっても一般人ならmp3だって聴くし、ムービーファイルだって見るから・・・
    • ありがちな、必要ないじゃんっていうのは置いておいて、最終的にはごく普通のPGやSEに利用してもらいたいからサ

要件など

  1. Javaの開発環境として利用できること
    • eclipse
      • 問題なし
    • netbeans
      • 日本語フォントのマッピング作業
  2. オフィス処理が可能であること
    • オフィスソフト
      • デフォルトでOpenOffice2.0がインストール済み
    • プリンタ
      • HPのインクジェットプリンタ(7800シリーズ)なら問題なかった
  3. 画面描画速度
    良くあるのが、標準でLinux使うともっさりする感じがあるって部分
    • メーカー製ドライバの利用
      • 利用しているのはGeForce6500、いまは結構安価なはず
      • やっぱり全然速度が違いますな・・・
  4. 信頼性
    • 取り合えずソフトウェアRAIDによるミラーリング
      • 個人的にこだわりのポイント!
      • 半年前に10年分のデータがぶっとんだからorz
      • バックアップいらずでストレージの信頼性が欲しい
  5. 娯楽
    • mp3、mpg、divx他が利用可能
    • 3Dデスクトップでぐりぐりw

ハードウェア

項目明細備考
CPUPentiumD 805デュアルコアの2.66GHz
M/Bintel 945PLICH7(SATA)
Audioオンボード
NICRealtek813910/100Mb
V/CNVidia GeForce6500 256MB
光学ドライブATAPI DVD ROM
HDDWD 7200rpm 160GB SATARAID1のために2台用意
LCDHKC 17inchSXGA対応、中国メーカー

Ubuntu6.0.6LTSの紹介

Linux for Human Beings(引用)

  • 引用元
    http://www.ubuntulinux.jp/
  • 紹介文抜粋
    Ubuntuは、自由に利用することができるLinuxベースのオペレーティングシステムです。コミュニティによるサポートと、専門家によるサポートを受けることができます。Ubuntuは大規模なコミュニティによって開発されています。ぜひあなたも開発に参加してください!
    Ubuntuコミュニティは、以下のUbuntuマニフェストに定められた考え方をベースに成り立っています。「ソフトウェアは、無償で利用可能であるべきであり、自分の言語で利用可能であるべきであり、どのような身体的な障害を持っていても利用可能であるべきである。そして、利用者はソフトウェアを好きなようにカスタマイズおよび改変する自由を持つべきである。」

利点

以下いろいろ設定方法

RAID1での新規インストール方法

標準のインストールであれば何も考える必要はない。しかし、ソフトウェアRAIDを利用してインストールしようとすると問題がでる。インストーラの中にRHELなどで見慣れたRAID領域を構築可能なパーティション管理ツールがないのだ。
どうもAlternate-CDを利用するとRAID領域へのインストールができるようだが、ダウンロードしてる時間が惜しい(なにせ中国にいるもので・・・w)のと勉強の為にこちらのページを参考にどうにかしてみた。
流れとしてはこうだ

  1. 1台目のHDD(/dev/sdaとする)にUbuntuをext3などでインストール
    • 本当に標準的なインストールで平気だけど
  2. RAID1領域の用意
    再起動後でも再起動前でも良いが、とにかく2台目のHDD(/dev/sdbとする)のみでRAID1(/dev/md領域)を作る。
    → つまりミラーリングなのに構成領域がひとつ(missing)の状態を作る。
    • fdiskコマンドでミラーリング用領域を作る
      sudo fdisk /dev/sdb
      • RAID用の領域にはLinuxRaid?自動認識領域(16進の値はfd)を設定する
    • RAID1領域を作成
      筆者の場合は/と/homeを別々にするので下記のようになる
      sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
      sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb2 missing
    • フォーマット(ファイルシステムの作成) ext3でフォーマットする。xfsでやりたかったが、なぜかxfsでは最初のUbuntuのインストールでこけてしまった・・・
      sudo mkfs.ext3 /dev/md0
      sudo mkfs.ext3 /dev/md1
    • md領域をマウント
      起動用の領域(/)と/home用の領域
      sudo mkdir /newdisk
      sudo mount -t ext3 /dev/md0 /newdisk
      sudo mkdir /newdisk_home
      sudo mount -t ext3 /dev/md1 /newdisk_home
  3. grub-installを実行
    sudo grub
    grub> device (hd0) /dev/sdb
    grub> root (hd0,0)
    grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 \
    (hd0,0)/boot/grub/menu.lst
    grub> quit
    • mdの場合ってどこからマスターブートレコードを読み込むんだろう?やっぱり起動ドライブに指定されているハードディスクだろうか?
  4. fstabの設定
    • 修正前
      /dev/sda1 /     ext3 defaults,errors=remount-ro 0 1
    • 修正後
      /dev/md0  /     ext3 defaults,errors=remount-ro 0 1
      /dev/md1  /home ext3 defaults,errors=remount-ro 0 2
  5. Grubの起動メニューの設定 /boot/grub/menu.lstを編集する。kernelのroot属性が重要
    title           Ubuntu, kernel 2.6.15-27-386
    root            (hd0,0)
    kernel          /boot/vmlinuz-2.6.15-27-386 root=/dev/md0 ro quiet splash
    initrd          /boot/initrd.img-2.6.15-27-386
    savedefault
    boot
    • grub-installやupdate,kernelのバージョンアップのたびにrootオプションが/dev/sda1に書き換わるので注意!
      • もし、修正せずに再起動した場合は、grubのオプション画面でrootを/dev/md0に設定してやれば起動する。
  6. インストール済みのシステムを全てmd領域にコピー
    いつも、これができるところがLinuxは凄いと思う。
    • シングルユーザモードに移行(Runlevel1)
      sudo telinit 1
    • コピー開始
      • システム
        cd /
        cp -ax / /newdisk
        axオプションは要するにこのファイルシステムだけをコピーってことのようだ
      • /home
        cd /home
        cp -Rf * /newdisk_home
  7. ここでシングルユーザモードの中から普通に再起動
    shutdown -rf now
    • rootファイルシステムが存在しないと言って起動しない場合
      • grubの起動設定からrootファイルシステムのオプションを/dev/md0に設定する
  8. sdaをfdiskしてLinuxRaid?自動認識領域(16進の値はfd)に設定する
    • なお、後ろの1.5GBはRAIDせずに別途SWAPとして利用した
  9. sda1,2をmd0,1のミラーリングデバイスとして追加
    sudo mdadm /dev/md0 -a /dev/sda1
    sudo mdadm /dev/md1 -a /dev/sda2
    自動でミラーリング開始される
    • ミラーリング状況は/proc/mdstatの中身を見れば良い
      sudo cat /proc/mdstat
      その結果
      Personalities : [raid1]
      md1 : active raid1 sdb2[0] sda2[1]
            105563008 blocks [2/2] [UU]
      
      md0 : active raid1 sdb1[0] sda1[1]
            49150720 blocks [2/2] [UU]
      
      unused devices: <none>
  10. 以上で完了

RAIDについての補足

インストール時などに必要な操作

RAIDデバイスのcreate

ミラーリングデバイスmdを一台で作る。

# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb3 missing
# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb4 missing

mdadm.confの準備

これを行なうことにより、次回起動時のmdの設定を固定化する。

# echo "DEVICE /dev/sda /dev/sdb" > /etc/mdadm/mdadm.conf
# mdadm --detail --scan >> /etc/mdadm/mdadm.conf

ディスクをRAID構成へ追加

ミラーリング状態にする。

# mdadm /dev/md0 -a /dev/sda1 &
# mdadm /dev/md1 -a /dev/sda3 &
# mdadm /dev/md2 -a /dev/sda4 &

BootRecord?の設定(Grub対話版)

sda、sdbのいずれかがクラッシュしたとき、どちらからでも起動できるようにBootRecord?を両方のディスクに書き込んでおく。

       [ Minimal BASH-like line editing is supported.   For
         the   first   word,  TAB  lists  possible  command
         completions.  Anywhere else TAB lists the possible
         completions of a device/filename. ]

grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> 
grub> device (hd0) /dev/sdb
grub> root (hd0,0)
grub> install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> 
grub> quit

BootRecord?の設定(Grubバッチ版)

  1. 下記をファイルに保存しておく(raid1.grubとする)
    device (hd0) /dev/sda
    root (hd0,0)
    install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    
    device (hd0) /dev/sdb
    root (hd0,0)
    install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    install /boot/grub/stage1 d (hd0) /boot/grub/stage2 0x8000 (hd0,0)/boot/grub/menu.lst
    
    quit
  2. 下記のコマンドでgrubに流し込む
    grub --batch < raid1.grub

もっとも単純なBootRecord?の設定

既存ディスク、新規ディスクのどちらからでも起動できるよう、ブートローダーを両方のディスクのMBRに登録。

# /sbin/grub
grub> root (hd1,0)
grub> setup (hd1)
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

RAID運用時に必要な操作

RAIDの状態を見る(proc版)

# cat /proc/mdstat

下記のような結果

Personalities : [raid1]
md2 : active raid1 sdb4[0]
      9767424 blocks [2/1] [U_]

md1 : active raid1 sda3[1] sdb3[0]
      185462272 blocks [2/1] [U_]
      [===========>.........]  recovery = 59.9% (111265280/185462272) finish=25.1min speed=49137K/sec

md0 : active raid1 sdb1[0]
      39061952 blocks [2/1] [U_]

unused devices: <none>

RAIDの状態を見る(mdadm版)

# mdadm --detail /dev/md0

下記のような結果

/dev/md0:
        Version : 00.90.03
  Creation Time : Fri Feb 16 15:28:26 2007
     Raid Level : raid1
     Array Size : 39061952 (37.25 GiB 40.00 GB)
    Device Size : 39061952 (37.25 GiB 40.00 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Apr 24 05:23:24 2007
          State : active, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           UUID : edfd8a09:e164592b:bff0262d:b4f4e31a
         Events : 0.224494

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       0        0        1      removed

ディスクをRAID構成から外す方法

例えば、構成しているディスクに不良クラスタが発生したときなど、事前にRAID構成から外してしまう。

# mdadm /dev/md0 -f /dev/sda1
# mdadm /dev/md1 -f /dev/sda3
# mdadm /dev/md2 -f /dev/sda4
  • sda,sdbいずれでも良い。

RAIDの再構成やディスクのフォーマットなどに必要な操作

RAIDデバイスの停止

/dev/md0は/なので、停止しない方が身のため・・・

# mdadm --misc --stop /dev/md1
# mdadm --misc --stop /dev/md2
  • どこからもmountされてない必要がある。
    • もしumountできない場合は、下記によりシングルユーザモードになる
      # telinit 1

構成から外したディスクのsuperblockのクリーンアップ処理

いったんディスクを再フォーマットなどしたい場合など、この処理を行なわないと再起動時に勝手にmd2とかなって、順番が狂ってしまう。

# mdadm --misc --zero-superblock /dev/sda1
# mdadm --misc --zero-superblock /dev/sda3
# mdadm --misc --zero-superblock /dev/sda4

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: 2010-03-14 (日) 07:00:32 (2598d)