GRUBを使用したxubuntu起動USBメモリ作成

(作成自体もxubuntu上で行いました)


用意するもの
xubuntuの動くマシン
USBメモリ(今回は、4GBのものを使用しました)
xubuntuのdesktop用isoファイル(xubuntu-7.10-desktop-i386.iso)


desktop用isoファイル(xubuntu-7.10-desktop-i386.iso)をダウンロード
install用isoでないことに注意

USBメモリを挿すと、私の環境では/dev/sdcとして認識されました

USBメモリパーティション確認

$sudo fdisk -l
バイス Boot Start End Blocks Id System
/dev/sdc1 1 29651 4032508 b W95 FAT32


削除するためアンマウント
$sudo umount /dev/sdc1

fdiskにてUSBメモリ上にブートフラグを付け以下のようなパーティションを作成する。

$sudo fdisk /dev/sdc

バイス Boot Start End Blocks Id System
/dev/sdc1 * 1 5027 683664 b W95 FAT32
/dev/sdc2 * 5028 29650 3348728 83 Linux


ブートフラグを付けて上記のようにパーティションを作成

ファイルシステムの作成

$sudo mkfs.vfat -F 32 -n ubuntu /dev/sdc1
$sudo mkfs.ext2 -b 4096 -L casper-rw /dev/sdc2


マウント用ディレクトリを用意し、マウントしなおす

$sudo mkdir /mnt/ubuntu
$sudo mkdir /mnt/casper-rw

$sudo mount /dev/sdc1 /mnt/ubuntu
$sudo mount /dev/sdc2 /mnt/casper-rw

desktop用isoを一時マウントするためのマウントポイント用ディレクトリの作成

$sudo mkdir /mnt/tmp
$sudo mount -o loop /media/disk/xubuntu-7.10-desktop-i386.iso /mnt/tmp
(/media/diskにisoイメージがある前提)


システムファイルをコピー

$cd /mnt/tmp
$sudo cp -r casper/ dists/ install/ pics/ pool/ preseed/ .disk/ ../ubuntu/

FAT32上ではシンボリックリンクが作成できないため、以下のエラーが出るが無視
cp: cannot create symbolic link `../ubuntu/dists/stable': Operation not permitted
cp: cannot create symbolic link `../ubuntu/dists/unstable': Operation not permitted


残りのファイルもコピー

$sudo cp md5sum.txt ../ubuntu/


boot用のディレクトリを作成

$sudo mkdir /mnt/ubuntu/boot


GRUBのインストール

$sudo grub-install --root-directory=/mnt/ubuntu --no-floppy /dev/sdc


できあがった/mnt/ubuntu/boot/grub/ディレクトリに移動

$cd /mnt/ubuntu/boot/grub/


今使っているmenu.lstをベースにするためコピー

$sudo cp /boot/grub/menu.lst .


以下のようにmenu.lstを作成する。

# menu.lst - Customized for Xubuntu Live Desktop 7.10

default 0
timeout 10
color white/blue yellow/blue

title Xubuntu Live Desktop (Persistent)
root (hd0,0)
kernel /casper/vmlinuz boot=casper persistent ramdisk_size=1048576 root=/dev/ram rw quiet splash--
initrd /casper/initrd.gz
boot

title Xubuntu Live Desktop
root (hd0,0)
kernel /casper/vmlinuz boot=casper ramdisk_size=1048576 root=/dev/ram rw quiet splash--
initrd /casper/initrd.gz
boot

title Xubuntu Live Desktop (Safe Graphics Mode, Verbose Startup)
root (hd0,0)
kernel /casper/vmlinuz boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw --
initrd /casper/initrd.gz
boot

title Memory Test
root (hd0,0)
kernel /install/mt86plus
boot


上記で作成したUSBメモリを挿したままPCの電源を入れると
無事USBメモリの方のxubuntuで起動できました。


参考URL
https://wiki.ubuntu.com/LiveUsbPendrivePersistent
http://ubuntuforums.org/showpost.php?p=1229101&postcount=158

ThinkPad X40をCFでSSD化

使用したのは以下のもの
・silicon-powerの200倍速CompactFlash(SP008GBCFC200V10)
玄人志向IDE<->CF変換コネクタ(KRHK-CF2.5IDE)


トータル1万円以下の出費で済みました。
最近起動が遅くなって使いづらくなってきたX40でしたが、
桁違いに起動が早くなり、まだまだ現役で使えそうです。

WindowsVistaのHomePremiumのデスクトップPCをリモートで操作したく、
リモートデスクトップの設定を探しましたが、どうやらHomePremiumでは、
リモートデスクトップ(サーバ)が使えないようです。(Ultimateを買えばよかった・・・)
仕方がないので、WindowsXPで使ったことのあるUltraVNCを使うことにしました。
安定版の1.0.2では、Vistaに対応していないようなので、1.0.4のRC8をインストール。
http://www.uvnc.com/download/
(現状で正式にVista対応しているVNCサーバは少ないようです)


VNCサーバをサービスとしてインストールし、別マシンからアクセスしたところ、
画面は表示されるのですが、マウス・キーボードが一切効かず・・・
調べたところ単にVNCサーバ側でキーボード&マウスの設定として
Disable Viewers inputsにチェックが入ってしまっていたようです。(なぜこれがデフォルト?)
チェックを外し、確認したところ無事リモートで操作することができました。
1.0.4は、「For TEST ONLY」とのことでしたが、私の環境では今のところ問題なく動くようです。

vmware(ホストOSRHEL3)上にのゲストマシン(RHEL4)をインストールしましたが、
ゲストOSのパフォーマンスがあまりにも悪いという現象が発覚。
ntpで時刻同期設定をしたのですが、ゲストOS上の時計の進みが非常に遅く
ntpサーバとの差が開きすぎ時刻同期ができませんでした。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1420
によると、ゲストOSのパフォーマンスが悪く、ゲストOS上でタイマー割り込みが処理しきれないことが原因のようです。
上記サイトにあるようにカーネルパラメータに以下を追加してみました。

nosmp noapic nolapic


が、ntp同期に関しては、それでも同期に失敗していました。


その他のパフォーマンス改善について。
どうやらvmware上のゲストOSマシンは、デフォルト設定では、物理メモリを直接使わず
.VMEMファイルというホストOS上のファイルとしてゲストOS用のメモリを提供しているらしいです。
そのため、ホストOS上でvmwareデーモンのプロセスの優先度が高くても、
ゲストOSでは、vmwareデーモンが物理メモリを殆ど利用できていませんでした。
ゲストOSの設定ファイル(vmxファイル)に、以下の記述をすることで、
ゲストOSにて物理メモリの使用を指定することができるようです。
http://communities.vmware.com/message/213854

mainMem.useNamedFile = "FALSE"

そしてゲストOSを再起動。
体感では、ちょっとはパフォーマンスが良くなったような気もしなくもないですが、
ntpの時刻同期については、あいかわらずうまく行きませんでした。
マシンスペックにもよるかとは思いますが、私の環境では、
カーネルソースの「#define HZ」の値も変える必要があるのかもしれません。

WindowsVistaマシンにVMwarePlayer(2.0.2)をインストール。
CDROMドライブを持たないノートPCのため、起動時に以下のエラーがでました。

「仮想デバイスide1:0に接続できません。一致するデバイスがホストに存在しません。仮想マシンをパワーオンする度に、この仮想デバイスに接続を試みますか」

実際のCDROMドライブが見つからないことが原因のようなのでdeviceTypeを変更

ide1:0.deviceType = "cdrom-raw"

を以下のように書き換える。

ide1:0.deviceType = "cdrom-image"


さらに以下のエラーが出たため

「致命的なアプリケーション エラーです: 文字列のエンコード中にエラーが発生しました。(class cui::Error)」

ログファイルを見ると、どうやらホストOSのUSBデバイスの初期化に失敗しているようです。

usb.present = "TRUE"

を以下のように書き換えることでエラーが回避できました。

usb.present = "FALSE"

VC++2005(Std)でプリコンパイル済みヘッダーを使用しない設定の仕方

ソリューションエクスプローラからプロジェクトを右クリックのプロパティの
「構成プロパティ」->「C/C++」->「プリコンパイル済みヘッダー」の「プリコンパイル済みヘッダーの作成/使用」で
「プリコンパイル済みヘッダーを使用しない」を選択する。