プロが教える店舗&オフィスのセキュリティ対策術

Ubuntu10.04LSTをgrub4dosで起動していますが・・・。

 使っているコンピュータがUSB(メモリ)起動できない状態のため、Ubuntu10.04LSTをgrub4dosで起動しています。USB(メモリ)がsdbであるとして、/etc/initramfs-tools/modulesにこれを追記し、initrd.imgを再構築しました。

 grub4dosではカーネルのアップデートがあったとき、c:\bootに最新のvmlinuz-2.6.32-xx-genericとinitrd.imgをコピーすると思うのですが、initrd.imgの再構築が面倒です。これを回避することは不可能なことでしょうか。あるいは、この方法しかないのでしょうか。教えていただきますよう、お願いいたします。

A 回答 (6件)

 ご質問の内容が分かり難いので補足をお願いします。


1、Ubutun 10.04をUFD(USB Flash Device)にインストールした方法は?
  (1)LiveUSBとしてインストール、(2)通常インストールのどちらですか?
2、Grub4dosを書き込まれたのは何処ですか、また[menu.lst]の記述内容は?

:>grub4dosではカーネルのアップデートがあったとき、c:\bootに最新のvmlinuz-2.6.32-xx-genericとinitrd.imgをコピーすると思うのですが、
Gurb4dosはブート・ローダーですから[vmlinuz-2.6.32-xx-generic]のアップデートとは無関係です。
というより、Ubuntuでは[c:\boot]というようにはなりません。

 現状でUFDからの起動に成功されているのでしょうか?
こちらの質問・回答も参考にしてください。
http://okwave.jp/qa/q5938614.html

この回答への補足

ご回答をいただき、ありがとうございました。以下に補足いたします。

 具体的には、Ubuntu10.04をSDカードにインストールし、それをUSB経由でPCに接続しています。通常のインストールで、GRUBはそこにインストールしてあります。以前は、このSDカードをPC接続するアダプタをUSBスロットに装着して問題なく起動できていましたが、このアダプタが故障し、新しいものに変更すると起動できなくなってしまいましたので、grub4dosを使用することにしました。

 grub4dosを書き込んだ・・・というのは(よくわかっていないので)難しい質問なのですが、WindowsXPのC:\直下に'grldr'を置いているだけです。あとは、boot.iniへの追加記述です。そして、WindowsXPのC:\bootに'vmlinuz-2.6.32-22-generic'とinitrd_lst.img'をコピーしています。menu.lstの内容は以下のようなものです。

default 0
timeout 10
title ubuntu on /dev/sdb with initrd_lst.img
find --set-root /boot/vmlinuz-2.6.32-22-generic
kernel /boot/vmlinuz-2.6.32-22-generic root=/dev/sdb1 ro
initrd /boot/initrd_lst.img

> 現状でUFDからの起動に成功されているのでしょうか?

 はい、もちろん従来どおりに起動でき、現在使用しております。このような事態になりましたのは、買い換えたPC起動時にSDカードを接続しているUSBアダプタでは、PCが何の反応もなくなってしまったことが原因です。それゆえに/etc/initramfs-tools/modulesへの追記をしています。ブートデバイスとして認識されていないのではないかと想像したためです。

 一時はダメだと思って諦めたのですが、この方法で起動できました。しかし、カーネルのバージョンアップががあったらどうなるのか、が気になっています。したがいまして、この方法にするとき、最新のカーネルで実施したしだいです。でも、これも時間の問題と思っています。よろしく、お願いいたします。

補足日時:2010/06/05 19:44
    • good
    • 0

:>WindowsXPのC:\直下に'grldr'を置いているだけです。

あとは、boot.iniへの追加記述です。
 それなら、Grub4dosから「PLop Boot Manager 」をFDイメージから起動して、そこからUSBデバイスを起動する方法がベターだと思います。

1、「PLoP Boot Manager v5.0のサイト」から[plpbt-5.0.10.zip]をダウンロードする。
  http://www.plop.at/en/bootmanager.html
  http://download.plop.at/files/bootmngr/plpbt-5.0 …
2、[plpbt-5.0.10.zip]を解凍して[plpbt.img]をC:\bootフォルダーにコピーする。
3、menu.lstの内容を以下のようにする。
  default 0
  timeout 10
  title PLoP Manager\n PLoP Manager
  map --mem /boot/plpbt.img (fd0)
  map --hook
  chainloader (fd0)+1
  rootnoverify (fd0)

再起動後にWindowsの起動メニューに追加された「PLoP Manager\n PLoP Manager」選択すると
起動デバイスの選択画面が表示されます。

| HDA PARTITION 1 | <- 一番目のハード・ディスクから起動
| FLOPPY |
| CDROM |
| USB | <- USBデバイス(フラッシュ・メモリ)から起動
| |
| SETUP |
| ABOUT |
| SHUTDOWN | <- シャットダウン

 この方法では、起動可能なUSBフラッシュ・メモリー起動することになります。
Ubuntu 10.04のアップデートはUSBメモリーの容量があれば当然可能です。

 ご質問と直接の関係はありませんが、Grub4DOSを組み込んであるのなら、
例えばCDイメージやFDイメージからの起動も出来ます。
(これはFDドライブやCDドライブが無いPCに応用することが出来ます。)

title PowerX Active Image Protector (ISO)\nPowerX Active Image Protector (ISO)
find --set-root /sources/pxaip.iso
map /sources/pxaip.iso (0xff) || map --mem /sources/pxaip.iso (0xff)
map --hook
chainloader (0xff)

title PLop Boot Manager (FD-Image)\n PLoP Boot Manager (FD-Image)
map --mem /sources/mbmdos.vfd (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

この回答への補足

書き忘れで、少々の疑問が発生しました。と申しますのは、私のPCは決してUSB起動ができないというわけではなく、アダプタに不具合があるようなので、質問の手段を講じています。このような状況でも起動できるのか・・・の問題です。まあ、やってみてからの話ですが、ちょっと気になっています。

補足日時:2010/06/05 22:04
    • good
    • 0
この回答へのお礼

 なるほど・・・。いろいろな手があるものですね。ありがとうございました。知らないことが多いです。いまは、時間がありませんので、ご教示いただいたものを試してみたいと思います。

 ただ、完全に趣味の問題なのですが“PLoP Manager”というもの、あの選択画面があまり好きでありません(わがまま)。いかがでしょう。最近はやったことがないので、変ったのかもしれませんが、画面の左上のほうに選択肢が小さく出現するのは使ったことがあります。あのスプラッシュを変更できないものかと、以前は身勝手なことを考えていました。

お礼日時:2010/06/05 21:21

> grub4dosではカーネルのアップデートがあったとき、


> c:\bootに最新のvmlinuz-2.6.32-xx-genericとinitrd.imgをコピーすると思うのですが、
> initrd.imgの再構築が面倒です。これを回避することは不可能なことでしょうか。
Vine Linuxが採用しているような、世代管理のツールを利用されるのはどうでしようか。
Vine Linuxの場合は、2世代管理ですが、次のようにして固定しています。
title Vine Linux (Current kernel)
root (hd0,2)
kernel /vmlinuz ro root=LABEL=/1 resume=swap:/dev/hda9 vga=0x314 splash=silent
initrd /initrd.img
title Vine Linux (Previous kernel)
root (hd0,2)
kernel /vmlinuz.old ro root=LABEL=/1 resume=swap:/dev/hda9 vga=0x314 splash=silent
initrd /initrd.old.img
こうしておけば、この部分は固定できます。
vmlinuz
initrd.img
vmlinuz.old
initrd.old.img
を、対応付けするためのシンボリックリンクを作成すると良いと思います。
ln -s vmlinuz 対応付けする名前(vmlinuz-2.6.32-xx-genericとinitrd.img)

この回答への補足

 ご回答いただき、ありがとうございます。しかし、これは、ちょっと私の手に余るとの印象をもちました(知識不足ゆえです)。

 このmenu.lstを私の環境に合わせて編集すれば、仰るとおりに2つのバージョンの選択画面が現れるように理解できるのですが、対応させるためのシンボリックリンクの作成という部分が理解できません。

 もうひとつの「困った」といいますか、わからないところは、xx-genericとyy-genericが同居しているように思うのですが、それならyy作成時にxxは用無しで、zz-genericが登場すれば、次はyyが用無しになるように思うのですが、これは誤読でしょうか。

補足日時:2010/06/05 21:35
    • good
    • 0

> このmenu.lstを私の環境に合わせて編集すれば、仰るとおりに2つのバージョンの


> 選択画面が現れるように理解できるのですが、対応させるためのシンボリックリンクの
> 作成という部分が理解できません。
確かに、どこかでカーネル更新時に対応付けしないといけません。
Vineの場合は、/bootの中で、その対応付けをしてしまっているということですね。
シンボリックリンクでその辺をコントロールして、外部にまで、変更を持ち出さない
といったデザインは、Linuxの中では、Vineだけですね。
この考え方はすっきりしていてよいと思います。
さいしょにxx,yyバージョンがあれば、xxが古く、yyが新とすると、
ln -s vmlinuz-yy vmlinuz
ln -s vmlinuz-xx vmlinuz.old
ln -s initrd.img-yy initrd.img
ln -s initrd.img-xx initrd.old.img
と、4個の定義が必要となります。
カーネルの更新時に、これらの4個を順送りに修正する作業は発生します。
zzが新規に発生すれば、世代管理を何世代持つかを設定しておく必要があります。
/bootパーティションの中に、全てのイメージがあるので、コピー貼り付けをすれば、
別な場所でやるよりは少しは楽ですか。
Fedoraは、カーネルの世代管理は、既定値では3世代ですね。ユーザ変更も可能です。
Ubuntuだけは、以前から世代管理は、ユーザ任せといった非常に曖昧なところがあります。
今は設定できるのかは、分かりませんけど。

この回答への補足

 度重なるご説明をいただき、ありがとうございます。しかし、

> 外部にまで、変更を持ち出さないといったデザインは、
> Linuxの中では、Vineだけですね。

は、Ubuntuでは利用できないということでしょうか。考えかたの洗練さは理解できたのですが、Ubuntuでは使えないのではないかと案じています。

 もうひとつは、もしUbuntuで実現できたとしても、実行する作業が現状との比較で大差がないという印象がすることです。現状では、

1.initrd.imgの再構築。
2.最新のvmlinuzと、上記New-initrd.imgのコピー。

の2段階です。

 また、おっしゃる方法が利用できても、(1)の実行は不可避であることです。質問しました主旨は、これを回避する方法はないか、実行しなければならないかという点でした。ここにいたるまで失敗の連続で、いろいろと試した経緯は省きますが、質問に記載いたしましたとおり、

 >>USB(メモリ)がsdbであるとして、/etc/initramfs-tools/modulesに
 >>これを追記し、initrd.imgを再構築しました。

が隘路になっている点を克服できないかとの思いがあります。この方法では、教えていただいたようなデザインの洗練性に欠けていると感じております。

補足日時:2010/06/06 05:51
    • good
    • 0

USB起動が出来ない原因がBIOSではなく、アダプタにあるのなら「PLoP」を利用する意味は無いかもしれません。


「PLoP」はUSD起動が出来ない世代のPCのためのものですから。
Grub4dosは、Windows7になっても使い道があるので、試してみてください。
 また、Grub4dosを利用してUSD起動のUbuntuよりは、[wubi]を利用してハード・ディスクにインストールする方が
Windows環境への影響も無しに快適に動作します。

この回答への補足

 いろいろとご教示いただき、申しわけありません。この方法でUbuntuを起動しておりますPCは完全なサブで使っているもので、HDDにインストールというのは、ウーンです。すみません。

 4番のご回答に対しても補足いたしましたが、ここにいたるまでには多くの失敗がありました。/etc/initramfs-tools/modulesへのデバイスの追記と、それを使っての「initrd.imgの再構築」という手段により「やっとのことで起動できた」のですが、さらなる「手抜き(スマートな方法)はないか」と思っています。引続き何かいいアイディア(手段)はないものかと期待しております。

補足日時:2010/06/06 06:14
    • good
    • 0

> >>USB(メモリ)がsdbであるとして、/etc/initramfs-tools/modulesに


> >>これを追記し、initrd.imgを再構築しました。
この再構築が、どんなものかは不明ですが、定量的なものであれば、プログラミング可能かを
立案することです。
これが結論です。

Vine Linuxの世代管理にしろ、プログラミングにより、システムの方で自動的に世代管理するというプログラミング化が実現させたわけです。
これは、質問の
> カーネルのアップデートがあったとき、c:\bootに最新のvmlinuz-2.6.32-xx-generic
> とinitrd.imgをコピーすると思うのですが、initrd.imgの再構築が面倒です
この部分が大きな問題を解決したいと解釈したので記載しました。
そうではなくて、本質は、上のような別なもっと大きな根本的な設計デザインがあるのであれば、
それを質問の課題にすべきかと思います。

情報を小出しにされては、問題解決の本質とは反れてしまう回答になり、意味ありません。

この回答への補足

> 情報を小出しにされては、問題解決の本質とは反れてしまう回答になり、意味ありません。

と叱られてしまいましたが、「小出し」になっていると感じられたのであれば、謝罪するしかありません。しかし、この質問サイトには「補足欄」があり、それで対応可能と思い、質問は冗長にならないようにと思っておりました。

 ご回答をお寄せいただく前に、かなりの補足も書いたつもりですし、もし不足がありましたら、それをご要請いただければよかったと思います。「小出し」の理由に引用されている「/etc/initramfs-tools/modulesにこれを追記し、initrd.imgを再構築しました」は、最初の質問に記載しています。なお、initrd.imgの再構築だけならシェルスクリプト程度で可能な内容と思います。いや、実態はそんな大げさにしないでも・・・です。

 また、yakan9さんの書き込みは、回答というよりご意見または解説と理解していました。Vine Linuxに関する記載であったため、解決のためのご提案とは感じませんでした。意図が伝わらなかった点はお詫びします。

補足日時:2010/06/08 13:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!