
Ubuntu日本語フォーラム
ログインしていません。
. :cool: :cool: :cool: :cool:
すでに 「ubuntu-ja-7.10-desktop」 が発表されています。
Ubuntu Tips / USBデバイスへのインストール / の 「 USB-Hdd上のUbuntu対する「ブートCD」を作るには 」
を御覧下さい。
:cool: :cool: :cool: :cool:
-----------------------------------------------------
USB HDDに「 Ubuntu 7.04 」をインストールして、それを起動する確実な「ブートCD」の作成法を示します。
BIOSがUSBからの起動に対応していないPCでは勿論ですが、対応しているPCでも、BIOSを設定しなおす
手間や起動時の手間を考えると、非常に役に立つと考えられます。
以下の方法はスクリプト化して簡単であり、しかも現在のところ、不具合は見つかっておりません。
(A) Ubuntu on USB HDD が起動できる場合:
(B) Ubuntu on USB HDD が起動できない場合:
の2つに分けて書きますが、
(A)では、KernelのupdateやOSのversion-upなど、どんな場合でも、インストールされている最新のKernelに
対する「ブートCD」が自動的に作成されます。
### ここで作成する「ブートCD」は1台のPCでしか使えませんが、「7.04 Ubuntu」をUSB Flash と同様に
USB HDD にinstallすれば、多くのPCに接続し、「7.04 Ubuntu on USB Flash --- ブートCDの作成法」
の 「ブートCD」で起動して使うことができます。 例えば、余っている内蔵型の HDD が携帯-Ubuntuに
変身します。 関心のおありになる方は、
「7.04 Ubuntu on USB HDD --- 複数のPCで使う方法」
を御覧下さい。
----------------------------------------------------------------------------------------
(A) Ubuntu on USB HDD が起動できる場合:
(インストールされている最新のKernelに対する「ブートCD」が自動的に作成されます)
1. Ubuntu on USB HDDを起動させます。
2. ホームディレクトリ /home/hoge にファイルmenu.lstを作り、下の15行を書き込み保存します。
( hoge はユーザー名 )
$ gedit menu.lst
default 0
timeout 10
color cyan/blue white/blue
title Ubuntu 7.04 ( knv )
root (cd)
kernel /boot/vmlinuz root=UUID=dd ro quiet splash
initrd /boot/initrd.gz
boot
title Ubuntu Recovery Mode ( knv )
root (cd)
kernel /boot/vmlinuz root=UUID=dd ro single
initrd /boot/initrd.gz
boot
3. /home/hoge に スクリプトファイル boot-hdd.sh を作成し、以下の12行を書き込み保存します。
$ gedit boot-hdd.sh
#!/bin/sh
mkdir hdd-grub
mkdir -p hdd-grub/boot/grub
cp /usr/lib/grub/i386-pc/stage2_eltorito hdd-grub/boot/grub
kv=`ls /boot | grep vmlinuz | cut -d- -f2,3 | tail -n 1`
uid=`sudo vol_id --export /dev/$1 | grep UUID | cut -c12-`
sed -e s/dd/$uid/ -e s/knv/$kv/ menu.lst > hdd-grub/boot/grub/menu.lst
cp /boot/vmlinuz-$kv-generic hdd-grub/boot/vmlinuz
cp /boot/initrd.img-$kv-generic hdd-grub/boot/initrd.gz
sudo mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o hdd-boot.iso hdd-grub
rm -rf hdd-grub menu.lst
4. ファイル /etc/fstab を開き、rootパーティションの接続デバイス /dev/sd*@ を得ます。
( /dev/sd*@ は /dev/sda1 とか /dev/sdb2 とかです。)
$ gedit /etc/fstab &
5. スクリプトファイル boot-hdd.sh に実行権を与え、実行します。
この時、4.で得たrootパーティションの接続デバイスの sd*@ を、引数として
半角空白の後に付け加えます。
$ chmod u+x boot-hdd.sh
$ sh boot-hdd.sh sd*@
6. /home/hoge に出来ている hdd-boot.iso をCD-R(W)に焼いてできあがりです。
-------------------------------------------------------------------------------------
(B) Ubuntu on USB HDD が起動できない場合:
1. USB-HDDに「Ubuntu 7.04」をインストールした時に使ったPCを、同じ Live-CD で起動します。
2. /home/ubuntu にファイルmenu.lstを作り、下の15行を書き込み保存します。
$ gedit menu.lst
default 0
timeout 10
color cyan/blue white/blue
title Ubuntu 7.04 ( knv )
root (cd)
kernel /boot/vmlinuz root=UUID=dd ro quiet splash
initrd /boot/initrd.gz
boot
title Ubuntu Recovery Mode ( knv )
root (cd)
kernel /boot/vmlinuz root=UUID=dd ro single
initrd /boot/initrd.gz
boot
3. /home/ubuntu に スクリプトファイル boot-hdd.sh を作成し、以下の12行を書き込み保存します。
$ gedit boot-hdd.sh
#!/bin/sh
mkdir hdd-grub
mkdir -p hdd-grub/boot/grub
cp /usr/lib/grub/i386-pc/stage2_eltorito hdd-grub/boot/grub
kv=`uname -r | cut -d- -f1,2`
uid=`sudo vol_id --export /dev/$1 | grep UUID | cut -c12-`
sed -e s/dd/$uid/ -e s/knv/$kv/ menu.lst > hdd-grub/boot/grub/menu.lst
cp /cdrom/casper/vmlinuz hdd-grub/boot
cp /cdrom/casper/initrd.gz hdd-grub/boot
sudo mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o hdd-boot.iso hdd-grub
rm -rf hdd-grub menu.lst
4. USB-HDD をPCに接続し、rootパーティションの接続デバイス /dev/sd*@ を得ます。
( $ dmesg | less 。 /dev/sd*@ は /dev/sda1 とか /dev/sdb2 とかです。
接続デバイスが分かっていても、USB-HDD をPCに接続したまま 次の5.を実行します。)
5. スクリプトファイル boot-hdd.sh に実行権を与え、実行します。
この時、4.で得たrootパーティションの接続デバイスの sd*@ を、引数として
半角空白の後に付け加えます。
$ chmod u+x boot-hdd.sh
$ sh boot-hdd.sh sd*@
6. /home/ubuntu に出来ている hdd-boot.iso をCD-R(W)に焼いてできあがりです。
最後の編集者: moz (2008-01-31 13:26:47)
オフライン
mozです。大きなミスがありました。
<2>. BIOSがUSBからの起動に対応していなくて,Ubuntu on USB HDD が起動できない場合:
に於いて、4.でUUIDを得ておけば、9.以下は不要となり、作業が半減できます。
長い作業にお付き合い下さった方々、作業が余りに多いので諦められた方々に、心より
お詫び申し上げます。
諦められた方には、改めて作業に取り掛かって戴きたく存じます。
なお、本文は書き改めさせて戴きました。
オフライン
mozです。
kumanoyuya様より、「cuiコマンドのスクリプト化」の御要望を戴きました。
早速、「スクリプト版」を作成してみました。
幾分簡単になったと思います。
最後の編集者: moz (2007-06-17 21:34:26)
オフライン
sueといいます。
お世話になっております。
ここでUSB-HDDへのインストール法を見つけて
これは持ち運びには具合がよさそうだということで
試してみましたがどうにもうまくいきません。
40GBのUSB-HDDにインストールして
ブートCDも作って持ち歩こうという算段です。
1)USB-HDDへのインストール時に
「bootパーティションをFAT16にフォーマットします」
といった表示が出ますが、これでいいのでしょうか。
上記手順書には、bootパーティションであるsda3のsystemは
linuxとなっています。
試しに、このbootパーティションをあらかじめext2でフォーマットしておいても
インストール時にFAT16にされてしまいます。
#ただし、こうしてできあがったUSB-HDDからブートしてみると
#きちんと立ち上がってきます
2)しかし、boot用CDを手順通りに作成しても、それを使ってブートすることができません。
ブートパーティションのUUIDを取得すると
手順書でかかれているような長いIDではなく
たとえば「4656-AAF3」といったような4桁-4桁の短いものが出てきます。
どうやらこれはFAT16のパーティションのもののようで
共有用のパーティション(sda1)も同様のUUIDとなります。
ちなみに、このインストールしたUSB-HDDで
sda2やsda4(swapおよびデータ用のパーティション)では
長いUUIDが出てきます。
普段、仕事ではwinをメインで使っており、linuxはほぼ初心者です。
必要な情報は教えていただければ調べてアップいたします。
PC: SONY VAIO Type-S (S71PB)
USB-HDD: Logitec LHD-PBD40U2BU
お手数をおかけいたしますが
御教授のほどよろしくお願いいたします。
---
sue
オフライン
dr_sue による投稿:
sueといいます。
お世話になっております。
1)USB-HDDへのインストール時に
「bootパーティションをFAT16にフォーマットします」
といった表示が出ますが、これでいいのでしょうか。
上記手順書には、bootパーティションであるsda3のsystemは
linuxとなっています。
試しに、このbootパーティションをあらかじめext2でフォーマットしておいても
インストール時にFAT16にされてしまいます。
#ただし、こうしてできあがったUSB-HDDからブートしてみると
#きちんと立ち上がってきます
せっかくext2でフォーマットしたのに、なぜFAT16になるのかですが、日本語パッケージにある次のインストーラがやるようです。
/cdrom/tools/install_usb.sh (シェルスクリプトなのでgeditなどで中身が見れます)
私もこの処理には驚かされました。「syslinux」を使っている関係だと予測しているのですが、FAT16ですとWindowsから書き換えられたり、まるごと削除なんて危険もありで、運用面で心配です。
「isolinux」をつかえなかったのかしら? こちらなら、ext2のままで、でログイン処理などもやれると思うのですが・・・
開発チームの考えを伺いたいところですね。
オフライン
sue 様
折角「 ブートCD 」を作成されても起動できないとのこと、説明不足の責任は私にあり、お詫びしなければなりません。
「7.04 Ubuntu」 を USB HDD にインストールする方法は 2つあります。
1. IDE HDD にインストールする場合と同じように、「Ubuntu 7.04 日本語ローカライズ版Desktop CD」
をCDに焼き、それでPCを起動し、Desktop上の 「インストール」 アイコンをクリックして、 USB HDD に
インストールする方法です。従来の方法といってもよいでしょう。
これは約700MBに圧縮された 「Ubuntu 7.04」 を解凍・展開することによってインストールするわけで、
ルートパーティションに少なくとも2GB以上の容量が必要です。
2. 「7.04 Ubuntu on USB HDD --- 複数のPCで使う方法」
http://forum.ubuntulinux.jp/viewtopic.php?id=370
に示した方法で、CD上の約700MBに圧縮された 「Ubuntu 7.04」 を解凍・展開することなしに、
USB HDD に単に Copy & Paste してインストールする新しい方法です。
Live CD をUSB HDD に置き換えただけで、Live CD と同様に圧縮された多数のファイルをメモリ上で
高速展開することで、OSとしてうまく機能するようになっているのです。
そして、これがあなたの使われた方法です。
ところが、この 「7.04 Ubuntu on USB HDD --- ブートCDの作成法」 は、1. のように従来の方法でインストール
した場合の 「ブートCDの作成法」 ですから、起動しないのは当然なのです。
あなたがインストールの指針とされた 「7.04 Ubuntu on USB HDD --- 複数のPCで使う方法」 には、
上から4行めから、
USB HDD へのinstall法は、USB Flashの場合と殆ど同じなので、従って
「7.04 Ubuntu on USB Flash --- ブートCDの作成法」で作成した「ブートCD」で、
Ubuntu on USB Flash と同様に起動できます。
とあり、また、下の方で
6. 「7.04 Ubuntu on USB Flash --- ブートCDの作成法」で作成した「ブートCD」
を使うか、Bios設定を変更して、Ubuntu on USB Flashと同様に起動します。
とあり、7.04 Ubuntu on USB Flash であって、7.04 Ubuntu on USB HDD ではないことをご注意下さい。
2. の方法でインストールされたあなたは、「7.04 Ubuntu on USB Flash --- ブートCDの作成法」 に従って
「ブートCD」 を作成されるべきでした。こちらの方法は、恐ろしく簡単になっています。
では、ご健闘を祈ります。
追伸 :「7.04 Ubuntu on USB Flash --- ブートCDの作成法」で作成される「ブートCD」上にある
Kernel は Ubuntu の本体の入ったフォルダ casper を求めて、PC中を探し回るのです。
目印はフォルダ casper ですから、UUIDは必要ありません。
最後の編集者: moz (2007-06-23 17:04:47)
オフライン
「bootパーティションをFAT16にフォーマットする」理由に付いてお尋ねですが、答えを申し上げる前に
次のような問に答えるべく勉強なさってみてください。
1. USB Flash や USB HDD から 「ブートCD」 を使わないで起動するにはどうすればいいか?
2. どのような Boot Loader をつかえばいいのか?
syslinux, isolinux, grub, lilo など、色々考えてみてください。
3. 指摘のあった isolinux は何のために開発されたのか?
4. 適当な Boot Loader が見付かったとして、そのとき 「起動パーティション」 はどのような
ファイルシステムでなければならないか?
では、ご健闘を祈ります。
最後の編集者: moz (2007-06-22 23:30:28)
オフライン
sueです。
のreplyありがとうございます。
いろんな意味で大変勉強になりました。
> ところが、この 「7.04 Ubuntu on USB HDD --- ブートCDの作成法」 は
> 1. のように従来の方法でインストールした場合の 「ブートCDの作成法」 ですから、
> 起動しないのは当然なのです。
自分で把握している断片的な状況を総合的に判断しても
これに思いついて(今度はそのつもりで)丁寧にインストラクションを読み直す
ということをすれば自分で解決できてますし、できるべきですね。
ご指摘いただいて「そうだよなにしてんだよまったく」と痛く反省いたしました。
現状ではとりあえず見よう見まねで使ってみている
状況にあることを痛感いたしました。ご教授頂いた通り、ブートシーケンスも
各ブートローダーの特徴や働きも「知らない」というのが現状です。
今回つまずいたところをいいきっかけとして、一度きちんと勉強して
linuxで当然必要となる知識、ひいては考え方をもっと身につける努力をする
ということが必要ですね。
少なくとも、自分で解決できる所は自分でできるように。
いずれにせよ、インストールもう一度試してみます。
#USB-HDDがせっかく40Gもあるので、そこにきちんと展開・インストールしようと
#思います。
またご報告いたします。
moz様、kumanoyuya様、大変勉強になりました。ありがとうございました。
またお世話になるかと思います。よろしくお願いいたします。
---
sue
オフライン
これまでの (A), (B), (C) に分類する書き方によって誤解や混乱を招き、皆様方に大変御迷惑をおかけ致しました。
今回、すべてスクリプト化したものだけとし、
(A) Ubuntu on USB HDD が起動できる場合:
(B) Ubuntu on USB HDD が起動できない場合:
の2分類として、簡単で分かり易いものに一新致しました。
(A)ではKernelのupdateやOSのversion-upなどどんな場合でも、とにかく起動できさえすれば、インストール
されている最新のKernelに対する「ブートCD」が自動的に作成されるように改良しました。
これまでは、updateしたkernelに対応する「ブートCD」を作成することができず、新しいkernelを使うことが
できませんでした。 「7.04 Ubuntu」でもkernelのupdateがありましたので、早速新しい「ブートCD」を作成して
みて下さい。
これらは CUI によるものですが、WindowsのようなGUI による記述をご希望であれば対応しますので、
御連絡下さい。
最後の編集者: moz (2007-06-25 12:08:16)
オフライン
「BiosがUSBデバイスからの起動に対応しているPC」で、尚且つ「フロッピーディスクドライブ(FDD)」が
ある場合に、「ブートフロッピー」によるUSB-HDDの簡単な起動法を示します。
#1. すでに Ubuntu on USB HDD をインストールしているなら、
$ sudo /usr/sbin/grub-install /dev/fd0
として、grubをフロッピーディスクにインストールします。
予めフロッピーディスクをフォーマットしておく必要はなく、自動的にフォーマットされ、
grubが書き込まれます。
#2. これから Ubuntu on USB HDD をインストールしようとするなら、インストールの過程でgrubを
フロッピーディスクにインストールし、再起動後grubを起動パーティションに入れてもいいし、
順序を逆にしても結構です。
いずれにしても、このようなPCでは、このようにして作られた「ブートフロッピー」で起動することが
できます。
しかも、Biosの設定を変更する必要はなく、kernelをupdateしても作成し直す必要がありません。
最後の編集者: moz (2007-08-05 17:50:06)
オフライン