お知らせ

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

#1 2013-11-29 19:04:30

Ueda_Katuhiko
メンバ
登録日: 2013-04-20

12.04 を/bootと/をパティションを別けてインストールしたら/bootが使われません

alternate CDを使ってUbuntu 12.04 を/bootと/をパティションを
別けてインストールしました

/はraido0の上にext4 /bootはext4としました

しかし、なぜか、raid0上の/に/bootが出来ていました
起動は遅いものの、不思議な事にboot出来ています

確保され、使われなかった/bootのパティション(/dev/sda1)を
mkfsして/mntにmountし

/boot の内容を/bootでsudo cp -r ./* /mntし
再起動の後、Grubのメニュー画面をだしctl-cして

grub>set root=(hd0,1)
grub>insmod ext2
grub>linux vmlinuz-3.5.0-23-generic root=/dev/md0
grub>initrd initrd.img-3.5.0-23-generic
grub>boot

すると起動します
grub-install --boot-directory /dev/sda1
としたのですが uopdate-grubするとなぜか/bootの下の
カーネルをチェックするメッセージが出ます???

/dev/sda1からbootするようにgrubを設定するにはどうしたらいいのでしょうか??

オフライン

 

#2 2013-12-04 22:19:06

Templer
メンバ
登録日: 2009-07-08

Re: 12.04 を/bootと/をパティションを別けてインストールしたら/bootが使われません

grub-installのところは投稿する際に記述ミスをされていませんか?(その指定ではエラーが出るはずです)
おそらく「grub-install --boot-directory=/mnt /dev/sda1」としたのではないかと思うのですが想像でしかないので、勘違いのありえそうなところを説明しようかと思います。

まず「grub-install」なのですが、「--boot-directory」オプションで指定するのは「GRUBの構成ファイルが格納されるgrubディレクトリーが置かれるディレクトリー」です。この「--boot-directory」オプションを省略した場合は「/boot」が適用され(一般的に/bootの中にgrubディレクトリーがありますよね)これがデフォルトなのですが、#1の例のように、切り分けた/bootパーティションを/mntにマウントさせてgrub-installを実行するということであれば「/mnt」を指定することになります(/bootを別パーティションに切り分けているということは、その/bootパーティションのルートにgrubディレクトリーが存在するのが普通なので、/mntにマウントした場合の/bootパーティションのルートというのは/mntということになります)。
ただ、/mntなどにマウントするというのは今回のような回復措置といった一時的なものに於いたもので、通常は切り分けた/bootパーティションは/bootディレクトリーにマウントされているものです。
そしてもう一つ、grub-installで指定するブートローダーのインストールデバイスですが、これはgrubディレクトリーの存在するパーティションを指定しなければならないということはありません。grub-installはブートローダーをインストールする際にgrubディレクトリーのデバイス(パーティション)情報をブートローダーに付与してインストールを行いますので、ブートローダーをどこにインストールしてもターゲットとなるgrubディレクトリーのパーティションにアクセスします。
よって、「MBRにインストールされているWindowsなどの他のOSのブートローダーから起動させるようにする」という目的がないのであれば、ブートローダーのインストールデバイスはMBRを指定しなければなりません。

次にupdate-grubですが、これは/bootディレクトリーのデバイスを検出したりカーネルを含めた構成ファイルの検出をしたりした結果をもって「/boot/grub/grub.cfg」ファイルを作成します。つまり、/bootディレクトリーを起点にして検出するので、/bootを別パーティションに切り分けた場合はそれを/bootディレクトリーにマウントしておかないと検出と結果を/bootパーティションのものとして確保できません。
「 sudo grub-mkconfig 」を実行すると(grub.cfgと同じ)設定内容を端末のほうに出力してくれますので、/bootパーティションを/bootディレクトリーにマウントする前後や/mntにマウントした場合で実行して比較するといろいろとわかるかと思います。

ということで、システムのインストール時に、用意した/bootパーティションを「マウントポイント」に「/boot」を指定してインストールした場合は、「/etc/fstab」に/bootパーティションを/bootへマウントする記述が追加されてシステムが構築されます。(何となく、マウントポイントを指定し忘れたのがそもそもの原因なのではないかと思えるのですが…)

オフライン

 

Board footer

Powered by FluxBB