前記事でUSBにgrubをUSBメモリにインストールしました。
いよいよ、実際にUSBメモリからgrubを起動させましょう
PCを再起動、電源が切れたらF12キーなどを長押ししながら起動します
大概のPCはこれでUSBを選択できるはずです。(違ったらごめんなさい)
すると真っ黒な画面で以下のようになっていると思います。
grub>
こんな画面で止まっています。
これがでれば成功です。ではLinuxを起動しましょう。
Linux起動に必要な情報は以下の3つです
1.Linuxがインストールされているパーティション
2.linuxのカーネルとインストールされている場所の先頭パス
3.起動に必要な処理をメモリに読み込ませるのに必要なソフトのパス
まずはLinuxがインストールされているパーティションを調べましょう
ここが一番面倒くさいです。まずは以下のようにコマンドを打ちましょう
(...は省略事項)
grub>ls
(memdisk) (hd0) (hd1) (hd1,gpt8) (hd1,gpt7) (hd1,gpt6) ...
こんな風に表示されるはずです。これはPCに接続された全ての記憶領域とそのパーティションを示しています。当方の環境では以下のようでした
hd0=usb
hd1=PC内のSSD
--gpt1=1つ目のパーティション
--gpt2=2つ目のパーティション
....
--gpt8=8こ目のパーティション
という形で示される。これは個々のPCのSSDやHDD環境により異なる。
(というか自分の環境はhd1のパーティションが多すぎる、、これが不調の原因かなあ...)
つまり、hd1のgpt1~gpt8の中のどれかにLinuxが入っている。以下の方法でどのパーティションにLinuxがいるのかを探せる。
grub>ls (hd1,gpt8)/
lost+found/ boot/ hdata/ etc/ media/ var .....
上記のようにlost+found boot/ .... と出てきたらそれがLinuxのインストール場所です。今回はhd1 (PCのSSD) の gpt8 (8番目のパーティション) に入っていました。
重要なのは(hd1,gpt8)です。
次に 残りの
2.linuxのカーネルとインストールされている場所の先頭パス
3.起動に必要な処理をメモリに読み込ませるのに必要なソフトのパス
について述べます
以下のコマンド中の#(1)については下に述べますので注意してコマンドを打ってください
grub>set root=(hd1,gpt8)/
grub>linuxefi /boot/vmlinuz root=/dev/sda8 #(1)
grub>initrdefi /boot/initrd.img
grub>boot
#(1)に関してはroot=/dev/sda8の「sda8」に注意してください。これはLinuxがインストールされた最も先頭のパスを入力します。これは人それぞれですが、先程入力した(hd1,gpt8)の「gpt8」とroot=/dev/sda8の「sda8」の数字( 8 )を合わせるとうまくいくことが多いようです。この数字はそれぞれのPCで異なりますので注意してください。この部分がlinuxのカーネル(vmlinuz)とインストールされている場所の先頭パス(sda8)になります。
そして最後のinitrdefiが起動に必要な処理をメモリに読み込ませるのに必要なソフトのパス(initrd.img)です。
うまくいけばこれでUSBメモリにインストールしたgrubでLinuxを起動できます
。
お読みいただきありがとうございました。