お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-05-08 10:10:49

yudayuday
新しいメンバ
登録日: 2011-05-08

外付けHDDへのインストールした場合の常用に向けて

始めまして初心者です.
私は先日からUbuntuに興味を持ち,持ち運べるよう16GのUSBと2Tの外付けHDDへUbuntuをインストールしています.
外付けHDDは先頭の1.6TをFAT32としてWinとの共有用に,後ろ374Gをext4としてルートディレクトリに,残り約6.4Gをswap領域にしてインストールしました.
ここから現在までの流れを書かせていただきます.

1. 家にはPCが2台あるのですが,まず問題なく起動するPC(A)としないPC(B)とに分かれました.
2. 起動するPC(A)でswap領域が認識されていないことに気づき,swap領域を拡張領域とし,改めてswap領域にして設定したところ,正常に認識させることができました.
3. PC(A)で出来る限りの解決策を調べ,LiveUSBでブートローダ(?)を起動し,boot=casper を root=/dev/sdc2 に書き換えて起動しなかったPC(B)でも起動させることができました.
4. これで解決したと思い外出先でまた別のPC(C)で起動させようとしたら,通常でも,2.の方法でも起動しませんでした.
5. LiveUSBでパーティションを確認したところ,デバイスの名前が sdc ではなく sdb になっており, root=/dev/sdb2 に書き換えることでPC(C)を起動させることができるようになりました.

ここで質問なのですが

① どのPCでも外付けHDDのみでちゃんと起動する環境を設定することは可能でしょうか?可能な場合,どうすればいいのでしょうか?
  ちなみにそれぞれのPCでのext4領域のデバイスは,PC(A)とPC(C)ではsdb2,PC(B)ではsdc2と認識されていました.(A)と(C)になんの違いがあるのでしょうか?
② デバイスの名前が違うPCで起動した場合,swap領域のデバイス名も変わるため,毎回設定しなおす必要があるのでしょうか?
③ 160Gより後ろのパーティションにブートローダを置くと起動できないPCがある との書き込みを見たのですが,今回もそれが関係しているのでしょうか?
  その場合はUSBから起動させるしかないのでしょうか?
④ 最悪常に起動用USBを持ち運ぶことも考えていますが,ブートローダのみをUSBにインストールすることはできるのでしょうか?
⑤ ④が可能なら,①,③の解決策として,外付けHDDのFAT32領域にブートローダをインストールし,そちらから起動させる ということも可能なのでしょうか?

いきなりたくさんの質問を挙げてしまい申し訳ありません.どの質問でもいいのでなにかご存じの方がいれば教えていただけると幸いです.
初心者故に情報に不備や不足があると思います.ありましたらそれを指摘していただければ応えます.どうか宜しくお願いします.

オフライン

 

#2 2011-05-08 14:43:31

satoaoi
メンバ
From: Tohoku
登録日: 2010-04-12

Re: 外付けHDDへのインストールした場合の常用に向けて

A~Cのパソコンについて、スペックはどうなっていますか?
わかる範囲でお願いします。

オフライン

 

#3 2011-05-08 16:20:10

yudayuday
新しいメンバ
登録日: 2011-05-08

Re: 外付けHDDへのインストールした場合の常用に向けて

今手元にないのですが…
AはDELLのノートでxp inspiron9400だった気がします
BはPanasonicのノートでvista 型番はわかりません…
CはDELLのノートでWin7 inspiron15 っぽいですけど自信がありません(--;)
どれも32bitだったと思います.
これだけでは不十分でしょうか…すみません(+_+)

オフライン

 

#4 2011-05-08 17:19:43

hir0
メンバ
登録日: 2008-09-28

Re: 外付けHDDへのインストールした場合の常用に向けて

① デバイスファイル名は接続した(BIOSが認識する)順序でabc...と付けられます。
結果、同じPCでもデバイスファイル名は変更されるので頻繁に抜き差しするデバイスの指定には向きません。

対策としては固有のID、UUIDを使用する方法と、パーティションに名前(ラベル)を付ける方法が有ります。
UUIDは
$ sudo blkid

で表示できます。" " に囲まれた英数字がそうです。
使い方は root=/dev/sdc2 → root=uuid=<uuid>

ラベルは
$ sudo tune2fs -L hogehoge /dev/sdc2
確認は
$ sudo tune2fs -l /dev/sda2 もしくはGPartedから。

使い方は root=/dev/sdc2 → root=LABEL=hogehoge


HDDでの起動の設定は/boot/grub/grub.cfg をテキストエディタで開き、
### BEGIN /etc/grub.d/10_linux ###
から始まる行から下の「menuentry」から「}」までをコピーします。
それを
$ sudo gedit /etc/grub.d/40_custom  に張り付けます。

menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root=LABEL='hogehoge'
    search --no-floppy --fs-uuid --set=root 48817b34-7dae-4aba-a883-1504e694e049
    linux    /boot/vmlinuz-2.6.38-8-generic root=UUID=48817b34-7dae-4aba-a883-1504e694e049 ro   quiet splash vt.handoff=7
    initrd    /boot/initrd.img-2.6.38-8-generic
}

太字の部分を書き換えて保存してください。
$ sudo update-grub

を実行して設定を反映させます。
起動が成功すれば細かい所を見てみましょう(メニューの表示順位等)


②同上。
余談ですがswapはファイルとして作成する事も出来ます。パーティションを切ることもなく場所(名称)指定の問題も解決するかもしれません。動作がやや不安定との事ですが最近はその様な話は聞かなくなりました。 wubi等にも利用されている方法です。




③細かい数字は忘れましたが限界は有りますが今回は違うと思います。
/bootを認識出来なくてMBRのGRUBが途中で立ち往生してしまう(メニューなどを表示せずにエラー)状態になるはずです。
GRUBを使用する条件での対処方法はHDDの先頭(MBRから認識できる距離)にパーティションを作り、そこを/boot にします。インストール時点で設定可能です。

ファイルシステムの/bootは空のフォルダが作成されます。
起動時にMBRの近くに作成したパーティションの中身が空の/boot に自動でマウントされて起動後は初めからそこに存在しているかの様に扱えます。



④可能です。
サイズはかなり小さな物になります。(Ext形式のファイルシステムにフォーマットしないとダメかも)

USBメモリにパーティションを作成します。
bootフォルダを作成してHDD内の/boot/grubフォルダをフォルダごとUSBメモリのbootフォルダ内にコピーして下さい。


USBメモリに作成したりコピーしたフォルダ(bootやgrub)が表示されているウィンドウの上部に
[HDDアイコン][メディア][ファイルシステム xxGB] とボタンが表示されているはずです。

[ctrl] + [L] キー でテキスト表示されます。
(例)
/media/47DB-768C
英数字はご自身の環境に合わせて適宜読み替えてください。

端末から
$ df

と入力して/media/47DB-768C が /dev/sd?? と表示されているか確認して下さい。

$ sudo grub-install --boot-directory=/media/47DB-768C /dev/sd?
?の部分はUSBメモリのデバイスファイル名です。パーティションナンバーは要りません。

問題が一つ起きます。
起動に使用するgrub.cfgを書き換えなくてはいけません。
USBメモリから起動したGRUBはUSBメモリを/dev/sdaと認識する為にメニューからどのOSを選択してもエラーがでますので、変更が必要です。

逆にGRUBコマンドの検索機能等を使用してどの環境でも手入力の手間を省けるように考えるのも楽しいかも(私の趣味です。出来る出来ないは?)そう言った事に特化したディスクSuper Grub Disk もあります。
USBメモリからの起動も可能なはずです。




⑤可能です。
Linuxを起動できるブートローダはGRUBだけでは有りません。
ですが現状ではUSB-HDDにラベルを付けること(UUIDとか)を試してみて下さい。

オフライン

 

#5 2011-05-08 22:02:45

yudayuday
新しいメンバ
登録日: 2011-05-08

Re: 外付けHDDへのインストールした場合の常用に向けて

詳しい解説ありがとうございます!
とりあえず①への回答を実行してみました.
再起動の際エラーチェックのようなものが立ち上がりヒヤッとしましたが起動しました.
しかし残念ながら今手元にはもともと起動していたPCしか残っておらず正しく出来ているかの確認は後日になるかと思います...

swap領域の認識も変わるかもしれないのですか・・・ファイルとして作成したほうがいいのでしょうか?
システムモニタを見る限りでは,スワップは 0byte(0.0%)/6.0GiB となっており,ちゃんと機能しているかわかりません.

③の回答ですが,私の場合は先頭のFAT32領域に/bootを作成し直せばいいのでしょうか?

④,⑤に関しては・・・現在の私ではまだまだ勉強不足ですね--;
しかし色んなことができるんですね!もっともっと興味が湧いてきました!
投稿していただいたおふた方に感謝します^^

オフライン

 

#6 2011-05-09 02:08:20

hir0
メンバ
登録日: 2008-09-28

Re: 外付けHDDへのインストールした場合の常用に向けて

一つ一つの質問に答えましたが全体を通すと「どうすれば良いの?」となるかも。
基本的に(1)の認識によるデバイスファイル名の変更の影響を受けない方法が第一に試す方法で「解決策」となると踏んでいます。
UUIDもLABELに変更したほうが良いかもしれませんし逆かもしれません。

(2)以降は疑問に答えただけなので現状の解決策と混同されなければ良いのですが、多分大丈夫ですよね。
swapは実メモリが少ない場合に代替として機能します。
それ以外の機能としては休止状態のときに実メモリに展開している内容をHDDのswapに保存して可能な限り電源の供給を制御する。復帰時にswap内のデータをメモリに読み込み起動しますので最低でも実メモリと同等以上(2倍程度)が必要と言われています。 よく考えるとswapのマウントはUUIDで行われているので問題に影響しなく思えてきました、ァイル化するかどうかは好みの問題かも?

(3)は問題が発生したら起動時に
grub>

もしくは
grub rescue>grub rescue

と表示されてMBRのGRUBが/boot/grubを見つけられない状態になるので、今回は問題ないはずです。
ただ「PCによっては」の情報が正しければ(この問題がBIOSの性能に依存するのでしたら)/bootを作り直す案が「どのPCでも起動」の条件を満たすために必要になります。

よく見ると1.6TBですか、起動出来ないと思いましたが起動できているのですね。
(PCによって起動できないはアタリかも、後GRUBも数段階のバージョンアップを経て今どうなっているのか把握できていません。問題は改善されている可能性も有ります)
出来ればExt4等で200MB前後(100MBでも化)ほどの領域を160GB(数値は#1参照)圏内作成するのが好ましくUSB
メモリ等でも可。 余談ですが(余談が多いなぁ)USBメモリとセットで無ければ起動しない問題と同じ状況を作ることになりますので携帯性から余りお勧めではない。

取り敢えず状況を見ながら問題が有れば見直していきましょう。

オフライン

 

#7 2011-05-10 01:24:52

yudayuday
新しいメンバ
登録日: 2011-05-08

Re: 外付けHDDへのインストールした場合の常用に向けて

さらに詳しい解説・・・感服です.
今のところは①だけを行なっております.
パーティションを切るのが不安なので今はこのままにしておこうかと思いますw;

/boot を作り直すのが一番確実ですか・・・
でも先頭にext4領域を作成してしまうとWindowsでは認識しないんですよね?
それなら例えば左を先頭として

フォーマット  [fat32] [ext4]  [fat32]  [ext4]  [swap]
  容量     20GB  200MB  1.57TB  350GB
ディレクトリ             /boot               /

という感じ(わかりにくくてすみません)に /boot を跨いで設定した場合, /boot 以降の1.57TBの領域はWindowsのOSで認識されるのでしょうか?
それともfat32領域に /boot を置くことも可能なのでしょうか?
質問に質問を重ねてしまい申し訳ありません...

オフライン

 

Board footer

Powered by FluxBB