prepress-tips
メニュー

更新履歴

取得中です。


ubuntu LiveUSB


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

 usb knoppix と同じことを ubuntu でできないかと思って 試したことのメモです。
最終更新日時: 2010/01/02    

方針

  • 試した ubuntu は ubuntu-9.04-desktop-amd64 です。
  • HDインストールはせず LiveCD で使う。
    • どのマシンでも同じように使えるし どんな間違った設定をしても再起動で元に戻る ので。
  • しかしそれでは速度が遅いので LiveUSB を使う。
    • これで HDインストール並の高速になる。
  • 使ってみると LiveHD がもっともお勧め。
    • 容量は 5GB 程度で十分で USBメモリも不要 とっても高速。
      ( 起動に 1GB , swap に 3GB , カスタマイズした iso の保存に 1~2GB )
  • カスタマイズして使う。
    • uckで カスタマイズisoイメージ を作り
      それを USBメモリに書き込む か HD に展開 して使う。
    • カスタマイズした isoイメージ をしっかり保存しておけば
      カスタマイズは 何度にも分け 追加して行うことができる。
  • メモリ は 2GB以上 とし swap を HD か USBメモリ に確保する。
    • メモリは 5GB あれば十分( swap 不要 )。不足分を swap で補う。
    • HD は FAT32 。
      ntfs でも大丈夫そう。ネットワーク と hfs+ も試してみたいが 少しリスキー 。
  • 作業はすべて tmpfs 上で行う。
    • 容量が不足するなら swap を増やして補う。
      ( swap は 継ぎ足し が可能 )。
  • データの保存は HD か USBメモリ か ネットワーク に行う。
    • 必要があれば 圧縮 か ディスクイメージ を使う。
    • casper-rw は 原則 使わない( 起動時のオプション入力で 利用自体は可能 )。
      ( 利用に注意点が多く 使い続けるのは難しい ので。 )
  • USBメモリは うまく起動できるものをなかなか作れないので( 相性等の問題? )
    うまく起動できることを事前に確かめる。

カスタマイズ isoイメージ の作成

  • あらかじめ isoイメージ と いくつかの設定 を保存するための場所を用意する。
    • たとえば ubuntuをセットアップするメディアのルートに
      ubuntu-isoフォルダ , my-confフォルダ を作る。
      ( メディアの作り方は 後述参照 )
  • ubuntu LiveCD を用意する。
    • ubuntu-9.04-desktop-amd64.iso
  • LiveCD でブートし
    日本語 / コンピュータに変更を加えないでubuntuを使ってみる を選んで
    起動する。
  • インターネットに接続する。
  • synaptic Package Manager を起動し 以下の操作を行う。
    • Settings-Repositories を選んで
      Downlodable ... は全部にチェックを入れ Installable ... は チェックをはずし
      Download from: を Server for 日本 ( または other ... から 適当なサーバを選ぶ )
      に変える。
    • Reload して synaptic を閉じる。
  • uck_2.0.9-0ubuntu1_all.deb をダウンロードし インストールする。
    • Firefoxを開いて ubuntuのページで uck を検索してリンクをたどればよい。
  • 必要ならば ネットワーク経由でボリュームをマウントする。
    • Terminal で以下を実行する。   mkdir マウントポイント
         sudo mount -t cifs -o iocharset=utf8,user=ユーザ名,password=パスワード \
         //サーバ/共有名 マウントポイント
  • swapを用意する( 容量 3GB )。
    Application-Accessories-Terminal から以下を実行すればよい。
    実メモリとswapを加えて5GB程度あればよく メモリが十分なら swapは不要。
    • まず loop デバイスの空きを確認しておく。それを /dev/loopN とする。
      確認法は次の通り。
      ・ df -h などで 使われている loop デバイスを調べる。
      ・ 適当な番号で sudo losetup /dev/loopN として使用状況を調べる。
    • swapファイルの作成
         sudo dd if=/dev/zero of=swapファイル bs=30M count=100
         sudo losetup /dev/loopN swapファイル
         sudo mkswap /dev/loopN
    • swapファイルの有効化と確認
         sudo swapon /dev/loopN
         swapon -s
    • swapファイルの無効化とマウント解除
         sudo swapoff /dev/loopN
         sudo losetup -d /dev/loopN
    • メモリとswapの状態の変化は System-Administration-System Monitor
      で見るのがわかりやすい。
    • LiveHDで起動し /cdrom 上にswapファイルを作るときは
      rwモードでりマウントすることも忘れずに。
  • uck の作業領域 tmp を作成する( 容量 5GB )。
    • Terminal で以下を実行する。
         mkdir tmp
         sudo mount tmpfs tmp -t tmpfs -o size=5g
  • uck ( Application-System Tools-Ubuntu Customization Kit )を実行する。
    • language pack を選ぶ( たとえば en と ja )。
    • language を選ぶ( ja )。
    • desktop environments を選ぶ( gnome )。
    • カスタマイズ元とする ubuntu の isoイメージ を選ぶ。
    • yes , yes を選ぶ。
    • カスタマイズする( 詳細は後述 )。
    • Continuebuilding を選んで OK する。
    • vmlinuzにアクセスできない とメッセージが出るが 面倒を見なくても構わない。
  • 終了処理。
    • できた iso を先に用意した ubuntu-isoフォルダ にコピーする。
    • tmp をアンマウントする。
         Terminal から sudo umount tmp を実行する。
    • swapを無効にして 削除する。
         Terminal から 以下を実行する。
         sudo swapoff /dev/loopN
         sudo losetup -d /dev/loopN
         rm swapファイル
    • swapファイルの作成には結構時間がかかるので 削除せず再利用してもよい。

カスタマイズの詳細 1

  • synaptic の Repository を 日本のサーバ に変える。
    • Run package manager を選んで synaptic を起動し 以下を実行する。
    • Settings-Repositories を選んで
      Downlodable ... は全部にチェックを入れ
      Download from: を Server for 日本 ( または other ... から 適当なサーバを選ぶ )
      に変える。
    • Reload する。
    • synaptic を閉じる。
  • timezone を 日本 に変える。
    • Run console application を選んで console を開き 以下を実行する。
         cp /usr/share/zoneinfo/Japan /etc/localtime
    • date で確認して exit する。
  • uck をインストールする。
    • Application-Accessories-Terminal を開いて
      uck_2.0.9-0ubuntu1_all.deb を tmp/remaster-root にコピーする。
    • Run console application を選んで console を開き 以下を実行する。
         gdebi uck_2.0.9-0ubuntu1_all.deb
         rm uck_2.0.9-0ubuntu1_all.deb
    • exit する。

カスタマイズの詳細 2

  • 上パネル右側の Clock の設定を保存する。
    • Clock をクリックし Edit から Preferences を開いて
      Location と Weather を設定する。
    • Application-Accessories-Terminal を開いて 次を実行し
         gconftool-2 --dump /apps/panel/applets/clock_screen0 > gconf_clock.xml
      できた gconf_clock.xml を 先に用意した my-confフォルダ にコピーする。
  • セッション起動時に Clock の設定を復元するスクリプトを用意する。
    • たとえば my-confフォルダ の中に
      設定復元用のスクリプト my_setup.sh を用意する。
    • System - Preferences - Startup Application を開いて
      my_setup.sh を追加する( Name は何でもよいが ここでは my_setup とする )。
    • .config/autostart の中に my_setup.sh.desktop ができるので
      これを gedit で開いて Exec= 以下のパスを変更する。
      ( ここでは /cdrom/my-conf/my_setup.sh )
    • これを uck の tmp/remaster-root/etc/xdg/autostart にコピーする。
    • my_setup.sh の内容は たとえば
#!/bin/sh
[ -f "/cdrom/my-conf/gconf_clock.xml" ] && {
    gconftool-2 --load "/cdrom/my-conf/gconf_clock.xml"
}
  • gedit のエンコーディング自動認識に SHIFT_JIS と EUC-JP を追加する。
    • Application-Accessories-Terminal を開いて 次を実行し
         gconftool-2 --dump /apps/gedit-2/preferences/encodings > gconf_gedit.xml
      できた gconf_gedit.xml を 先に用意した my-confフォルダ にコピーする。
    • gconf_gedit.xml の中の auto_detected のところの
          <value>
            <string>UTF-8</string>
          </value>
      の前に 以下を追加する。
          <value>
            <string>EUC-JP</string>
          </value>
          <value>
            <string>SHIFT_JIS</string>
          </value>
    • show_in_menu のところにも同じように追加する。
    • 先に用意した my_setup.sh で gedit の設定を復元する。
      ( gconf_clock.xml のときと同じ。 clock を gedit に変えればよい。 )
  • セッション起動時の NetworkManager の設定を増やす。
    • この設定は 必要なければ省いてください。
    • 上パネル右側の NetworkManagerのアイコン を右クリックして
      Edit Connection から設定を追加する。
      ( Auto eth0 は変更できないので それ以外の名前を使う )
    • Application-Accessories-Terminal を開いて 次を実行し
         gconftool-2 --dump /system/networking > gconf_network.xml
      できた gconf_network.xml を 先に用意した my-confフォルダ にコピーする。
    • 先ほど作った my_setup.sh に以下を追加する。
         [ -f "/cdrom/my-conf/gconf_network.xml" ] && {
             gconftool-2 --load "/cdrom/my-conf/gconf_network.xml"
         }
    • 全ユーザに共通の設定にした場合は
      /etc/NetworkManager/system-connectionフォルダに 指定した名前のファイルができるので
      それを uck の tmp/remaster-root/etc/NetworkManager/system-connectionフォルダに
      直接コピーする。
  • セッション起動時に NetworkManager を停止し 代わりに 起動アイコンをデスクトップに置く。
    • この設定は 必要なければ省いてください。
    • デスクトップを右クリックして Create Luancher を選び
      たとえば 次のように入力して起動アイコンを作る。
         Name : start NetworkManager
         Command : sh -c "sudo /etc/init.d/NetworkManager start"
         アイコンの図は /usr/share/icons フォルダから 適当なものを選ぶ。
    • できた起動アイコンを my-confフォルダ にコピーする。
    • 先ほど作った my_setup.sh に以下を追加する。
         sudo /etc/init.d/NetworkManager stop
         cp "/cdrom/my-conf/start NetworkManager.desktop" /home/ubuntu
  • 旧来のネットワークの設定を入れておく。
    • この設定は 必要なければ省いてください。
    • my-confフォルダの中に interfaces と resolv.conf を作っておく。
    • interfaces
         auto lo eth0
         iface lo inet loopback
         allow-hotplug eth0
         iface eth0 inet static
             address ・・・
             netmask ・・・
             gateway ・・・
    • resolv.conf
         nameserver ・・・
    • 先ほど作った my_setup.sh に以下を追加する。
         sudo cp "/cdrom/my-conf/interfaces" /etc/network
         sudo cp "/cdrom/my-conf/resolv.conf" /etc
      そのまま起動するなら以下も追加する。
         sudo ifup eth0
  • uck の synaptic で ntp , smbfs などもインストールする。
    • ntpサーバを変更するときは /etc/ntp.conf の server 行を変更する。
      ( サーバ名は System - Administration - Time and Date の Time servers から探す。 )
    • smbfs をインストールすると password をコンソールから入力したり
      フォルダを直接マウントできる ようになる。
    • 必要あれば apache2 , ssh なども。
    • uck のターミナルの中でも gedit が使える。

カスタマイズの詳細 3

  • たとえば MacBook Pro など 機種に特有のカスタマイズを行いたいときは
    ubuntuのヘルプ にしたがって 次のようにする。
    • まず mac OS X を起動して
      このMacについて - 詳しい情報 を開き ハードウェア の 機種ID をメモしておく。
    • 次に ubuntu を起動して インターネットに接続してから Firefox を開き
      表示される ubuntuスタートページ の ubuntuのヘルプ をクリックする。
    • 表示される Official Ubuntu Documentation のページで 先ほどメモした
      ハードウェア の 機種ID を検索して 該当ページを探す。
    • 該当ページに記述されている通り カスタマイズする。
    • これらは 問題なく動くように思われる。
  • ここでは 次のようにカスタマイズしてみる( テストには MacBookPro5-5 Jaunty を使用 )。
  • モニタのドライバ
    • MacBookPro5,5 のときだけ nvidia-glx が動くようにする。
    • nvidia-vdpau/ppa の公開鍵を登録する。
         apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxx
    • 引き続き リポジトリを登録する。
    • パッケージをインストールする。
      MacBookPro5-5 Jaunty の場合は nvidia-glx-190 , nvidia-settings-190 。
      ( nvidia-glx-190-modaliases も入れてよい。 )
    • aptのキャッシュ /var/cache/apt/archives から
      上記2つの .deb を my-conf にコピーして パッケージをリムーブする。
      ( aptのキャッシュは uck を終了しても残るので コピーは後でも可。 )
    • 追加したドライバを再度インストールして有効にするスクリプトを用意する。
      たとえば /cdrom/my-conf/my_x-setup.sh で 内容は以下。
         #!/bin/sh
         PNAM=`sudo dmidecode -s system-product-name`
         [ "$PNAM" = "MacBookPro5,5" ] && {
             DEBN="nvidia-glx-・・・.deb"
             echo "y" | gdeb "/cdrom/my-conf/$DEBN"
             DEBN="nvidia-settings-・・・.deb"
             echo "y" | gdeb "/cdrom/my-conf/$DEBN"
             nvidia-xconfig -c "$1" -o "$1"
             # cp "/cdrom/my-conf/xorg.conf" "$1"
         }
    • /usr/bin/dexconf の最後を修正して 上記のスクリプトが実行されるようにする。 たとえば
          [ -f "/cdrom/my-conf/my_x-setup.sh" ] && {
              "/cdrom/my-conf/my_x-setup.sh" "$XF86CONFIG"
          }
          exit 0
    • nvidia-settings を起動して xorg.conf を作れるようになったら
      それを my-conf に保存し
      起動時に /etc/X11 にコピーするよう my_x-setup.sh を変える。
  • サウンドのドライバ
    • ドライバをダウンロードして インストールする。
         wget ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-snapshot.tar.gz
         tar xf alsa-driver-snapshot.tar.gz
         cd alsa-driver
         ./configure --enable-dynamic-minors --without-oss --with-cards="hda-intel"
         make
         make install
    • make install 以外を uck の外側で実行することも可能。 その場合は
      ダミーの tmp と tmp/reamster-root → / のシンボリックリンクを作って
      make install する。
    • スピーカの音量を設定するため my_setup.sh に以下を追加する。
         amixer set  'Front Speaker'  unmute 80%
  • タッチパッド
    • MactelSupportTeam/PPA の公開鍵を登録する。
         apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxx
    • 引き続き リポジトリを登録する。
    • パッケージ bcm5974-dkms , pommed をインストールする。
    • ubuntuのhelp の MacBookPro5-5 Jaunty のページを参照して
      x11-synaptics-bem5974.fdi を作って my-conf に保存する。
    • タップでクリック とするときは TapButton1~3 の値を ClickFinger1~3 と同じ値に変える。
    • my_setup.sh に以下を追加する。
         PNAM=`sudo dmidecode -s system-product-name`
         [ "$PNAM" = "MacBookPro5,5" ] && {
             sudo cp /cdrom/my-conf/x11-synaptics-bem5974.fdi /etc/hal/fdi/policy
             sudo modprobe -r usbhid ; sudo modprobe -r bcm5974 ;
             sudo modprobe bcm5974 ; sudo modprobe usbhid ;
         }
    • このスクリプトの実行中にエラーが起きると マウス・キーボードが動かなくなるので
      その場合は USBマウスを用意して コネクタを抜き差ししてください。

カスタマイズの詳細 4

  • uck の synaptic で アップデート可能なものをすべてアップデートする。
    • サウンドのドライバは 念のため 作り直しておく。

カスタマイズの詳細 5

  • wine と windows のいくつかのソフト もすぐ使えるようカスタマイズしてみる。
    ( サクラエディタ , uwsc , tsxbin , photoshop CS2 など )
  • WineHQDownloads から Ubuntus のページを開いて
    syanptic で リポジトリと公開鍵を登録し
    wine と wine-dev をインストールする。
  • wine 用のファイルを入れるフォルダ my-conf/wine を作って その中に
    wine のセットアップ用のスクリプト wine_setup.sh を用意し 実行する。
    wine_setup.sh の内容は たとえば
#!/bin/sh
HFOL="/home/ubuntu"

#--- ubuntuで実行する。
[ "`id -un`" = "ubuntu" ] || { echo "need user ubuntu" >&2 ; exit 1 ; }

#--- wineを初期化する。
cd "$HFOL"
rm -rf .wine
wineboot
sudo find /usr/share/fonts/truetype/ -name *.ttf -type f | \
  xargs -I fn ln -s "fn" .wine/drive_c/windows/Fonts
  • photoshop CS2 のセットアップは WineHQAppDB で photoshop を検索して
    Photoshop CS2 のページを開き ここの記述を参考に行う。
    photoshop の体験版は このページの Trial Download のリンクから ダウンロード
    することができる。
  • uwsc を使うとインストール作業を自動実行できる。

カスタマイズの詳細 6

  • samba , system-config-samba , php , php5-gd , mysql-server , php5-mysql など。
  • これらをカスタマイズするには tmpfs のサイズを 6GB にしておく必要がありそう。

カスタマイズの詳細 7

  • swf の再生
       swfdec-mozilla , mozilla-plugin-gnash , flashplugin-installer のどれか
  • flv , mpg , mp4 などの再生
       gstreamer0.10-plugins-bad , gstreamer0.10-ffmpeg , gstreamer0.10-plugins-ugly

USBメモリの準備

  • 後述の LiveHD の準備( PC のとき )と同じ方法でできます。
    また knoppix と同じように Knoppix と windows を使ってもできます。
  • knoppix ( DVD ) を用意する。
    • knoppix_v5.3.1DVD_20080326-20080523-AC.iso
  • windows 用の syslinux も用意する。
  • knoppix で USBメモリをフォーマット し
    knoppixの起動画面 が表示される状態にする。
    • USBメモリのフォーマットやパーティションの変更は
      常に knoppix の QTParted で行う。
    • 容量は 元のCD+カスタマイズ分 あれば十分だが
      もろもろ面倒なことも起きるので まずは 全部1つにする。
    • knoppix の bootフォルダの内容を USBメモリのルート直下にコピーし
      windowsで syslinux.exe -a ドライブ: を実行する。
    • USBメモリでブートして knoppixの起動画面が表示されることを確かめる。
      ( うまくいかないときは 容量を変えるなどして うまくいくまで 繰り返す。 )
  • knoppix で USBメモリのルート直下にあるファイルを全部消す。

LiveUSBの作成

  • usb-creator ( System-Administration-USB Startup Disk Creator ) を実行する。
    • 上記で作成されたisoを Source disc image の Other ... から 選ぶ。
    • 通常は casper-rw を使わないので Discarded ... を選ぶ。
  • 後述の LiveHDの作成 と同じ方法でもよい。

LiveHDの準備

  • コピー先は FAT32 領域とする。
  • HD を準備する( mac のとき )。
    • BOOTCAMP を使って FAT32 領域を作る。
    • FAT32 領域を アクティブ にする( ubuntu の GParted を使ってはいけない )。
      OS X のターミナルから 以下を実行する。
         sudo fdisk -e /dev/rdisk0
         print
         flag パーティションのID
         quit
         y
    • ubuntu を起動して ターミナル から syslinux /dev/xxxn を実行する。
  • HD を準備する( pc のとき )。
    • ubuntu を起動して ターミナル から 以下を実行する。
    • HDのmbrを更新する。
         sudo dd if=/path/to/syslinux/mbr.bin of=/dev/xxx
      ※ mbr.bin は sudo find / -name mbr.bin で探す。
    • /dev/xxxn のパーティションを アクティブ にする。
         GParted で bootフラグを立てる。
    • sudo syslinux /dev/xxxn を実行する。

LiveHDの作成

  • 準備した HD 以外から windows , mac , ubuntu などを起動して
    • LiveUSB の内容をそのままコピーする( ldlinux.sys は除く )。
  • あるいは 次のようにする。
    • LiveCDのiso をマウントし その内容を HDのルート にコピーする。
    • isolinux フォルダの名前を syslinux に変え
      その中の isolinux.cfg の名前も syslinux.cfg に変える。
    • さらに その中の text.cfg を少し修正する。
         append の冒頭に noprompt を追加する( 3箇所 )。
            append nomprompt ・・・
  • CPU によっては 起動時に Kernel bug ? と表示されるので
    念のため text.cfg にカーネルオプション を追加する。
       iommu=memaper=3 または iommu=soft または amd-iommu=no
       どれでも差し支えないよう( どれがよいかは不明 )。
  • カスタマイズを重ねていると ごくまれに USBメモリからは正常に起動するが
    HDからは起動しなくなる ことがある。
    症状は2通りで BusyBoxに落ちる か 左上にカーソルが出たままハングアップする。
    ( 後者の場合は 左上にカーソルが表示さされる前に ctrl+alt+F1 を押して
        メッセージが表示される画面に切換えて スペースバー , リターン と押すと
        なぜか起動する。 )
    こういう場合は とにかく initrd を作り直すと( 何か簡単な変更を加えたりして )
    症状が改善することもある。
    • syslinux の boot プロンプトで止まってしまうこともあるが
      この場合は HDの中身をどこか別のところにコピーして HDを一度空にし
      起動に必要なものから順にコピーし直せばよい。

casper-rwの利用

  • casper-rw ファイルの作成
    • ターミナルから 以下を実行する。
         dd if=/dev/zero of=ファイル名 bs=1M count=128
         mkfs.ext3 ファイル名
    • bs , count は容量に応じて 適当に変える。
    • ファイル名を casper-rw とし FAT32 領域のルートに置く。
  • casper-rwの利用
    • 起動時に F6キーを押し 起動オプションの末尾に persistent を追加する。
  • 備考
    • しばらく使っていると disk full のエラーが起きるので 一時的な利用にとどめる。
    • casper-rw には 変更が直ちに反映されるとは限らない ので注意する。

作業を補助するコマンド

    ※ スクリプト中の余分な改行は削除し 改行コードは lf に変えてください。
       また << に対応する文字列の後ろ や 行の継続を示す\の後ろ の空白は
       削除してください。


  • MySQLを設置する準備
    • /var/lib/mysql/* を マウントするフォルダにコピーしておく。
    • スクリプト実行時に表示される次のメッセージは
         Checking for corrupt, not cleanly closed and upgrade needing tables.
      表記3項目をチェックしましたという意味で エラーではない( と思う )。


  • FreeStyleWikiを設置する際の準備
    • wiki.cgi を my-conf に移し lib と setup.dat のパスを変える。
         './lib' → '/home/ubuntu/.fswiki/lib' ※2箇所
         'setup.dat' → '/home/ubuntu/.fswiki/setup.dat'
    • setup.dat を my-conf に移し フォルダのパスを変える。
         . → /home/ubuntu/.fswiki
         theme の url は変更不要。

  • webdav の設置
    • apache2 の諸元の確認
         バージョン apache2 -v
         設定
            cat /etc/apache2/apache2.conf
            /etc/apache2/sites-enabled/000-default
         諸元
            ServerRoot "/etc/apache2"
            User ${APACHE_RUN_USER}
            Group ${APACHE_RUN_GROUP}
            DocumentRoot /var/www
            ErrorLog /var/log/apache2/error.log
    • apache2 のモジュールの確認
            ls /usr/lib/apache2/modules/
            ls /etc/apache2/mods-available/
            ls /etc/apache2/mods-enabled/
            apache2 -l

  • /cdrom を書き込み可能にする。
       sudo mount -o remount,rw /cdrom
  • casper-rw の内容を確認する。
       sudo mount casper-rw マウントポイント -o loop
       ( cd マウントポイント ; find . -type f | xargs md5sum ) > 結果ファイル
  • ランチャを作っておくと便利。
    • root権限のgedit , tmpのマウント , livecd.isoのコピー , smbマウント など。
    • sh -c "・・・" とする。・・・ には かなり複雑なものを記述しても大丈夫。
    • smbマウント時など 入力が必要な場合 端末から起動 にする。
    • gksudo gedit などでもよい。

ToDo

  • カスタマイズ
    • mono の新しいもので rekisa を動かせないか?
  • その他
    • initrd だけを作り直す方法。