
Ubuntu日本語フォーラム

ログインしていません。
. :lol: :lol: :lol: :lol:
すでに 「ubuntu-ja-8.04-desktop」 が発表されています。
Ubuntu 8.04 on USB HDD : 複数のPCで使う新しい方法
を御覧下さい。
:lol: :lol: :lol: :lol:
.
USB-HDDに「Ubuntu-liveCD」の内容を解凍してインストールし、複数のPCに接続して内蔵HDDにインストールした場合と同じ
ように起動できる「新しい方法」です。
内蔵HDDにインストールした場合と同様に、kernelのupdateやOSのupgradeが可能ですから、liveCDなどと違って、「真の意味で
OSを携帯できる」 画期的な方法ということができます。
USBメモリにUbuntuをインストールした場合と同様に起動できますし、容量もはるかに大きく、電磁気学的にも安定なUSB-HDDです
から、この方法はよく使用されるようになるでしょう。
また、「Ubuntu on USB HDD」 を直接起動することも、下で作成する 「ブートCD」 で起動することもできます。
「USB-HDDのパーティション分割」 と 「Ubuntuのインストール」 に多少の時間と手間が掛かること以外は極めて簡単です。
≪ USB-HDDのパーティション分割 ≫
1. 全てのUSB-storageデバイス( USB-HDD、USBメモリ 等 ) をPCから外して、「Ubuntu-ja-desktop-CD」でPCを起動する。
Desktopの上のメニューの 「システム」--->「設定」--->「リムーバブル・デバイスとメディア」--->「ストレージ」 に入り、
「リムーバブル・ストレージ」の上の3つの□のチェックを外す。
2. USB-HDDをPCに接続し、端末で次のコマンドのどちらかを実行し、その接続デバイス /dev/sd* を調べる。
( 内蔵HDDが1台なら /dev/sdb、2台なら /dev/sdc となる。)
$ dmesg または $ sudo fdisk /dev/sd*
3. fdisk コマンド ( または GParted ) で、USB-HDD上にパーティションを作成する。 「swapパーティション」は必須である。
パーティション分割の一例を示すが、下の2つのパーティションはUSB-HDDの何番目のパーティションにあってもよく、サイズも自由
である。 また、以下では 「rootパーティション」 の接続デバイスを一般的に /dev/sd*@ と書く。
接続デバイス 名 称 サイズ ファイルシステム
/dev/sd*1 rootパーティション 20Gb ext3
/dev/sd*2 swapパーティション 1Gb swap
≪ Ubuntuのインストール ≫
1. Desktop の「インストール」アイコンをクリックして、内蔵HDDの場合と同様にインストールを開始する。
2. 「ディスクの準備」 の画面で、「手動」 を選択する。
3. 「パーティションの準備中」 の画面で、下方にある 「rootパーティション」 の /dev/sd*@ をクリックし、
「 Edit partition 」 をクリックする。
4. 「Edit partition」 ウィンドウでは、「利用方法」 に ext3 を選択し、「マウントポイント」 で rootパーティションの / を
書き込む。「パーティションの準備中」 の画面に戻って、同じ行の 「Format?」の□にチェックを入れる。
必要があれば、「swapパーティション」にも同様の操作を行う。
5. 「インストール準備完了」 画面で、右下の 「Advanced...」 をクリックし、「Advanced Options」 ウィンドウを出す。
6. 「Advanced Options」 ウィンドウの 「ブートローダ」 で (hd0) を次のように書き換えて、「OK」を押す。
USB-HDDの接続デバイス 書き換え後
/dev/sdb ------------> (hd1)
/dev/sdc ------------> (hd2)
7. インストールが完了したら、「ライブCDを使い続ける」 をクリックして 「インストール完了後の処置」 に進む。
≪ インストール完了後の処置 ≫
1. /home/ubuntu に スクリプトファイル boot-hdd.sh を作成し、以下の91行を書き込んで ( コピー&ペースト ) 保存する。
$ gedit boot-hdd.sh
mkdir bootcd
cp /cdrom/isolinux/* /cdrom/casper/vmlinuz /cdrom/casper/initrd.gz bootcd/
hid=`sudo vol_id --export /dev/$1 | grep UUID= | cut -c12-`
sed -i -e '13,32d' -e 's/file=\/cdrom\/preseed\/ubuntu.seed//' -e s/boot=casper/root=UUID=$hid/ -e 's/or install /HDD-/' -e 's/Start Ubuntu/Start HDD-Ubuntu/' -e 's/\/casper\///' -e 's/300/100/' bootcd/isolinux.cfg
sudo genisoimage -R -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o hdd-boot.iso bootcd
mkdir usb
sudo mount /dev/$1 usb
sudo sync
sudo sed -i -n '1,140p' usb/boot/grub/menu.lst
sudo sed -i 's/(hd[0-4],/(hd0,/' usb/boot/grub/menu.lst
sudo mkdir usb/etc/X11/xorg
sudo chmod -R 777 usb/etc/X11/xorg
touch usb/etc/X11/xorg/uuid
sudo chmod 666 usb/etc/X11/xorg/uuid
echo "#! /bin/sh\n" > h1
cat > h2 <<EOF
sudo cp -f /etc/X11/xorg.conf.pre /etc/X11/xorg.conf
sudo dpkg-reconfigure -phigh xserver-xorg
sudo rm -f /etc/X11/xorg.conf.[0-9]*
sudo sync
sudo gedit /etc/X11/xorg.conf
EOF
cat h1 h2 > xorg-edit.sh
sudo cp -f xorg-edit.sh usb/usr/local/bin/
sudo chmod +x usb/usr/local/bin/xorg-edit.sh
sudo sync
echo "#! /bin/sh\n" > g1
echo 'uid=`sudo vol_id --export /dev/sda1 | grep UUID= | cut -c12-`' > g2
echo 'n=`ls /etc/X11/xorg | grep "xoc" | tail -1 | cut -c5-`' > g3
echo 'num=`expr $n + 1`' > g4
cat > g5 <<EOF
cp /etc/X11/xorg.conf /etc/X11/xorg/xoc-\$num
echo "\$num: \$uid" >> /etc/X11/xorg/uuid
sudo mv -f /etc/X11/xorg.conf /etc/X11/xorg.conf.pre
sudo sync
EOF
cat g1 g2 g3 g4 g5 > xorg-save.sh
sudo cp -f xorg-save.sh usb/usr/local/bin/
sudo chmod +x usb/usr/local/bin/xorg-save.sh
sudo sync
echo '\nuid=`sudo vol_id --export /dev/sda1 | grep UUID= | cut -c12-`' > f1
echo 'count=`grep -c "$uid" /etc/X11/xorg/uuid`' > f2
echo 'if [ $count -gt 0 ] ; then' > f3
echo ' num=`grep "$uid" /etc/X11/xorg/uuid | tail -1 | cut -d":" -f1`' > f4
cat > f5 <<EOF
sudo cp /etc/X11/xorg/xoc-\$num /etc/X11/xorg.conf
sudo sync
sleep 0.2
fi
sudo mv -f /etc/X11/xorg.conf /etc/X11/xorg.conf.pre
EOF
cat f1 f2 f3 f4 f5 > f6
cat usb/etc/init.d/rc.local f6 > f7
sudo cp -f f7 usb/etc/init.d/rc.local
sudo mv -f usb/etc/X11/xorg.conf usb/etc/X11/xorg.conf.pre
sudo sync
fsedit() {
k=1
pp="^# /dev/$1"
nn=`grep -c "$pp" fstab`
while [ $k -le $nn ] ; do
num=`grep -n "$pp" fstab | head -n 1 | cut -d: -f1`
if [ -n $num ] ; then
nun=`expr $num + 1`
sed -i -e "${num}s/.*//" fstab
sed -i -e "${nun}s/.*//" fstab
fi
k=`expr $k + 1`
done
sed -i '/^$/d' fstab
}
sudo cp usb/etc/fstab usb/etc/fstab.bak
cp usb/etc/fstab .
uhd=`echo "$1" | cut -c1-3 `
if [ $uhd = "sdb" ] ; then
fsedit sda
elif [ $uhd = "sdc" ] ; then
fsedit sda
fsedit sdb
fi
sudo cp -f fstab usb/etc/
sudo sync
sudo umount usb
rm -fr f* g* h[1-2] bootcd usb x*
2. スクリプトファイル boot-hdd.sh を実行する。 この時、「 rootパーティション」 の接続デバイスの sd*@ ( 例えば、sdc2 など )
を引数として半角空白の後に付け加える。
$ sh ./boot-hdd.sh sd*@
3. /home/ubuntuにできているファイル hdd-boot.iso をCD-R(W)に焼く。
≪ 起動後の処置 ≫
1. GNOMEによるキーボードの設定を行う。
「システム」--> 「設定」 --> 「キーボード」 --> 「レイアウト」に入り、「キーボードの型式」 で 「Japanese 106-key」 を選択。
「レイアウトの選択」 --> 「追加」 --> 「レイアウト」 で 「Japan」 を選択して 「追加」 を押し 、元の画面に戻り 「U.S.English」
の行を削除して、「Japan」 の行の 「デフォルト」 にチェックを入れ、閉じる。
最後に、キーボードの一番下の「Alt」キーと「→」キーを同時に押す。
再起動後、使い慣れた日本語の配列になるが、急ぐならログアウトする。
≪ 解説 ≫
以上で、「Ubuntu-liveCD」 の正常起動できる殆どのPCで、自動的に 「Ubuntu on USB HDD」 を正常起動することができます。
graphics-cardやsound-cardなど、hardware-detectionは内蔵HDDの場合と全く同じです。
各種driversや関連パッケージを追加インストールし、適当に設定すれば、xorg.confなどを保存することなく自動的に正常起動
できるようになる場合が多々あります。
graphics-cardに対するdriverを新たにインストールしたりなどで、xorg.conf を編集・保存する方法については、
この続編 「 Ubuntu on USB HDD : 複数のPCで使う新しい方法 (2) 」 を御覧下さい。
上のシェルスクリプトの各段落について簡単に説明します。
(段落1) 「ブートCD」イメージファイル hdd-boot.iso の作成
(段落2) ファイル /boot/grub/menu.lst の編集
(段落3) ファイル /etc/X11/xorg/uuid の作成
(段落4) シェルスクリプト /usr/local/bin/xorg-edit.sh の作成
(段落5) シェルスクリプト /usr/local/bin/xorg-save.sh の作成
(段落6) ファイル /etc/init.d/rc.local への追加書き込み
(段落7) ファイル /etc/fstab 編集のためのシェル関数「fsedit」の定義
(段落8) ファイル /etc/fstab の編集
## 「使用経験」や不具合など、是非お知らせ下さい。
最後の編集者: moz (2008-05-18 12:51:29)
オフライン
早速多くの方に閲覧頂きありがとうございます。
≪ USB-HDDのパーティション分割 ≫ 3 で示した以下のような例に対してだけシェルスクリプトを記載したのは、誠に配慮のない
ことでした。
接続デバイス 名 称 サイズ ファイルシステム
/dev/sd*1 rootパーティション 20Gb ext3
/dev/sd*2 swapパーティション 1Gb swap
USB-HDD を一部使用中の場合、後方の空き領域でもこの方法が使えるようにシェルスクリプトを改変しました。
上の2つのパーティションはその位置もサイズも自由です。勿論、2つが離れていてもかまいません。
また、「swapパーティション」 のサイズは700Mbもあれば十分と考えますが、少し大きめにしておきました。御了承下さい。
.
最後の編集者: moz (2008-03-13 11:00:36)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-03-19 18:24:22)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-03-21 00:00:35)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-03-22 21:27:01)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-03-22 22:58:34)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-03-28 21:49:42)
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
最後の編集者: kiyoshi (2008-04-30 05:56:26)
オフライン
すでに投稿した「 Ubuntu 8.04 on USB HDD : 複数のPCで使う新しい方法 」では、「ブートCD」のブートローダをisolinuxから
grubへと変更しました。 「Ubuntu 7.10」 から、その他のminor-changesがあります。
hard-ware-detectionが一層改良され、OSやapplicationsの動作が安定してきた印象です。
最後の編集者: moz (2008-05-20 00:41:43)
オフライン