
Ubuntu日本語フォーラム
ログインしていません。
レガシーBiosにて、マルチブートで使っています。
インストールの状況
①まず、Windows10を入れた
②次に、Ubuntuを入れた
③次に、Linux Mintを入れた
★各ディストリビューションのインストール時に「ブートローダをインストールするデバイス」先を気にしてなかった、又はデフォルトのまま触らなかった
その結果、現在はGrub起動画面は、③のMintで生成されたGrubで現れます(Mintが最上行)
全OS問題なく選択起動可能です。
【質問】Grub起動画面を②UbuntuのGrubで生成されたGrub起動画面に交代させるには、Ubuntu側でどうコマンドを打ったらよいでしょうか?
③Mintのパーティションを削除しようとしており、削除したらMintで生成されたGrubでは起動できなくなると予想しているためです。
オフライン
redredさん
1つのディスクに3つのOS、grubは最後にインストールされたものが優先、現在は「mint」という前提で宜しいのでしょうか?
1)grubからubuntuを起動
2)mintのパーティションを、gpartedなどで開放(アンマウントの状態で?)
3)そのままubuntuのターミナルから、「sudo update-grub」を実行
→自動で格納されているOSを認識して、grubを構成して格納してくれる
この場合は、自分自身(ubuntu)とWindows。(mintは消されているのでなくなるはず)
以下は我が家のPCで「sudo update-grub」を実施した結果です。
$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-43-generic
Found initrd image: /boot/initrd.img-5.8.0-43-generic
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-25-generic
Found initrd image: /boot/initrd.img-5.8.0-25-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Ubuntu 20.10 (20.10) on /dev/nvme0n1p3
Found Windows 10 on /dev/sdb1
Found Ubuntu 20.04.2 LTS (20.04) on /dev/sdb2
完了
上記の流れだったと思うのですが、万一のgrub復旧用に、LiveDVD媒体などあった方が宜しいかと。
2)は一旦飛ばして1)3)で確認、後であらためて1),2),3)でmintを消すのが安全かも知れませんね。
ちなみにubuntuでkernelのアップデート等あると、3)と同じ処理が「sudo apt upgrade」実行時に自動で走りますね。
オフライン
chichinpui さん
的確でご丁寧な解説、御礼申し上げます。
助かります。
ありがとうございました。
オフライン
対象のPCは
Ubuntu日本語フォーラム / Ubuntuに関する質問 / デュアルブート以上のGrub設定はどれが有効か?
https://forums.ubuntulinux.jp/viewtopic.php?id=21101
と同じものですか?
update-grub は 設定ファイル(grub.cfg)を自動作成するコマンドです。
GRUBの再インストールは行いません。
Ubuntu側を使用してGRUBが起動するように再インストールするには
Ubuntu を 起動して
sudo grub-install
を実行してください。
不幸にも起動しなくなったときに備えて boot-repairなどのツールを
使えるようにしておくことをおすすめします。
Ubuntu 18.04 その146 - ライブセッションでBoot-Repairを利用するには・起動に関する問題を修正するツール - kledgeb
https://kledgeb.blogspot.com/2018/06/ubuntu-1804-146-boot-repair.html
Ubuntuでは ダウンロードして使いますが
Linux Mint のインストールメディアには はじめから live環境にboot-repair が入っているので
持っておくと非常時に役立ちます。
オフライン
ellipticさん
私のミスかも知れません。
確かにgrub復旧などの情報を見ると、grub-installと記述されているのを見ています。
ただ、例えば /etc/default/grubの「GRUB_TIMEOUT=」のパラメータを10→60に変更。
sudo update-grub を実行してリブートするだけで、待ち時間が60秒に変更されたので、これで良いかと判断してしまいました。
今回の場合、sudo update-grubだけでは、相変わらず「mint」のgrub.cfgを見に行ってしまうと言うことでしょうか。
もしそうだとすると、私の勘違いです。
大変申し訳ありません。
オフライン
chichinpuiさん、ellipticさん
フォローありがとうございます。
やってみましたが、grub-install: エラー: install device isn't specified.
レガシーBiosで64BitPCですが、検索しても腑に落ちません。
お気づきあらば、お願いいたします。
ーーーーーーーーーーー
ubu:~$ sudo update-grub
[sudo] redredのパスワード:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-43-generic
Found initrd image: /boot/initrd.img-5.8.0-43-generic
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-41-generic
Found initrd image: /boot/initrd.img-5.8.0-41-generic
Linux イメージを見つけました: /boot/vmlinuz-5.8.0-40-generic
Found initrd image: /boot/initrd.img-5.8.0-40-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 10 on /dev/sda1
Found Linux Mint 20.1 Ulyssa (20.1) on /dev/sda6
完了
ubu:~$ sudo grub-install
Installing for i386-pc platform.
grub-install: エラー: install device isn't specified.
ubu:~$
ーーーーーーーーーーー
オフライン
redred による投稿:
ubu:~$ sudo grub-install
Installing for i386-pc platform.
grub-install: エラー: install device isn't specified.
すみません 私がコマンド構文を 間違えました。
インストールデバイスを明示しなければならないので
sudo grub-install /dev/sda
でやり直してみて下さい。
オフライン
ellipticさん
重ねてありがとうございます。
できました。
ーーーーーーーーーーー
ubu:~$ sudo grub-install /dev/sda
[sudo] redredのパスワード:
Installing for i386-pc platform.
Installation finished. No error reported.
ubu:~$
ーーーーーーーーーーー
再起動したら、Grub起動画面は交代され、②のUbuntuで生成されたGrubで現れました(Ubuntuが最上行)
この後、
保険として教えていただいた、live環境にboot-repair が入っているLinux Mint のインストールメディアをつくって、
sdaからはMintのパーティションを削除してから、
再度Ubuntuで
sudo update-grub
sudo grub-install /dev/sda
の順でもう一回整えようと思います。
ありがとうございました。
オフライン
redredさん 切り替え成功おめでとうございます。
目的は達したので 必要はないのですが 補足説明を少し書きます。
GRUBブートローダーは(redredさんのような BIOS-MBR規格の場合)
1) MBR
2) GRUB core イメージ
3) /boot/grub/ ディレクトリ以下の各ファイル
4) /boot/grub/grub.cfg 設定ファイル
などで構成されています。
1) 2) 3) は grub-installが書き込みます。
4) は update-grubが作成します。
1)のMBRはHDDの先頭に、 2)のcoreイメージは MBRの後ろ 第1パーティションの手前
の空きスペースに書き込まれます。
この2つは どのパーティションにも属さずファイルでもないので grub-installのような
専用ツールで操作します。
#5
chichinpui による投稿:
今回の場合、sudo update-grubだけでは、相変わらず「mint」のgrub.cfgを見に行ってしまうと言うことでしょうか。
3) 4) は インストールしたOSごとに個別に存在します。 どのパーティションの
どこのディレクトリを使用するかは、 2)のcoreイメージに埋め込まれてます。
この情報を書き込むには grub-install するときに --boot-directory=
オプションで指定します。 オプションがなければ その時使用していたOSの
/bootディレクトリが設定されます
#5
chichinpui による投稿:
ただ、例えば /etc/default/grubの「GRUB_TIMEOUT=」のパラメータを10→60に変更。
sudo update-grub を実行してリブートするだけで、待ち時間が60秒に変更されたので、これで良いかと判断してしまいました。
/etc/default/grubの 「GRUB_TIMEOUT=」 は、 update-grubを実行すると
(その時稼働していた方のOSの)/boot/grub/grub.cfg 内に 「set timeout=」
として 書き込まれます。
https://www.gnu.org/software/grub/manua … ml#timeout
update-grub は その時動いていたOSのパーティション内の grub.cfgを書き換えるだけで
GRUBがどちらのパーティションを参照するかには影響しません。
オフライン
ellipticさん
これは嬉しい補足解説、恩に着ります。
私も少しずつ解ってきた気がして嬉しいです。
もしよろしければ、もう少々ご教示いただけますか?
甘えて恐縮です。
次に③としてディストリビューションをインストールする際でも、②のUbuntuで生成されたGrub起動画面(Ubuntuが最上行)を使いたいと思っています。
(起動OSの記憶設定などを入れるgrub.cfgをあちこち散乱させないために)
【質問a】その場合、新たに③をインストール際の「ブートローダをインストールするデバイス」先はデフォルト以外のどこを選べば良いでしょうか?
【質問b】おそらくそれができたら、②のUbuntuでのupdate-grubで、新たにインストールした③を拾ってGrub起動画面に追加してくれるものと予想しますが、この私の期待は正しいですか?
オフライン
こんばんは。私は面倒くさがり屋なので、grub-customizer を使っています。
以下は、飽くまで私ならどうするかということですが、
そののままmintにのっているboot loader を使うなら、mintにgrub-customizerをインストールして、設定します。
順番は自由に変えられますし、前回使用したものを起動する、一番上のものを起動する、どちらにも設定できます。
sudo add-apt-repositrory ppa:danielrichter2007/grub-customizer
sudo apt update
sudo apt install grub-customizer
sudo grub-customizer
ubuntuにboot loader をのせたいなら、ubuntuにboot-repair とgrub-customiserをインストールします。
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install boot-repair
sudo add-apt-repositrory ppa:danielrichter2007/grub-customizer
sudo apt update
sudo apt install grub-customizer
そしてまずboot-repairを起動してubuntuにboot loader をのせちゃいます。
sudo boot-repair
で、完了したらgrub-customizer を起動して、順番やら文字の色やら背景画像やら、設定します。
オフライン
最初のご相談をきちんと読まずに書き込んでしまい申し訳ありませんでした(花粉症で頭がぼーっとしていました)。お詫び申し上げます。
オフライン
bayou による投稿:
最初のご相談をきちんと読まずに書き込んでしまい申し訳ありませんでした(花粉症で頭がぼーっとしていました)。お詫び申し上げます。
bayouさん
ノープロブレムです。
もしよかったら【質問a】【質問b】をお願いできたら助かります。
オフライン
redredさん
前回は提示するコマンド間違えてしまい、申し訳ありませんでした。
redredさんの質問については、私もとても興味があります。
単純にディスクはこの1枚のみとして。
【質問a】その場合、新たに③をインストール際の「ブートローダをインストールするデバイス」先はデフォルト以外のどこを選べば良いでしょうか?
1)mintのインストール時、ブートローダをインストールするデバイスにデフォルトを指定(ubuntuのgrubインストールディスク)
これは以下の4)で、ubuntuのgrubで上書きされる事になると思います。
2)mintのインストール終了後再起動して、grubからubuntuを起動
3)ubuntuでupdate-grubコマンドを実行 → mintの情報がubuntuのgrub.cfgに反映される
4)ubuntuで再度grub-installコマンドで、ubuntuのgrubに書き換える
【質問b】おそらくそれができたら、②のUbuntuでのupdate-grubで、新たにインストールした③を拾ってGrub起動画面に追加してくれるものと予想しますが、この私の期待は正しいですか?
これ以降は、
1)ubuntuでインストールされたgrubからubuntuを起動するのは問題ない思われます。
2)ubuntuでインストールされたgrubからmintを起動する場合、ubuntuでのupdate-grubのタイミングによっては、ubuntu側のgrub.cfgのmintの情報が古いなど、不整合が発生する場合があるのでは。
mintのkernelがあがって、mint側でupdate-grubが走っても、更新されるのはmint側のgrub.cfgで、ubuntu側のgrubはubuntu側の古いgrub.cfgしか見えないと思うのですが。
ubuntu側でupdate-grubすれば済む、で割り切ってもよいのかも知れませんが、ubuntu側でmint最新kernelを起動したら、実はmint側の2番めになってたなど、動くけどややこしい誤認につながる気もします。
もしこの仕様だとすると、私はちょっと落ち着かない(?)感じです.....
今回の前提からはずれますが、私は何となくの過去の経験則から、気づいたら長く以下の運用になってました。
私は1つのディスクにlinuxを1つとgrubをセットでインストールしています。(Windowsと共存はあります)
メインOS,Windows以外を起動する時は、BIOSの割り込み(ファンクションキー連打)でbootするデバイスを選択してbootしています。
多少面倒ですが、これだと上記の不整合は起きないと思います。
今ではハードディスク1基、SSD1基、MicroSDカード1枚、USBメモリ2枚に、それぞれが書き込んだgrubとubuntuがセットで格納されてます。
MicroSD、USBメモリも、必要なときに挿して、BIOSの割り込み(ファンクションキー連打)で、ディスクと同様に選択、bootして使用出来ます。
可変媒体は、壊れてもこれ1枚みたいな安心感で、再インストール覚悟での試しものや、よく言われている「耐久性」もついでに確認してみようかと思って使用しています。
また間違ってたらすいません。
オフライン
またまた、ぼっーとした頭でおじゃまします。redredさんのご質問(【質問a】【質問b】)にまっすぐお答えできる知識がないことをお詫びします。さらに勝手ながら、私の場合はどうしているかをお話しますが・・・、ご興味がなければスルーしてください。
私のPCはどれも複数のlinuxOSまたはwindowsと複数のlinuxOSのマルチブートでして、たとえばいまこれを書いているpcはlinux専用機、sda1が拡張パーティション、sda5がswap、sda6〜sda10がlinuxのディストリ、sda11が共用のストレージという構成です。そして、boot loaderはsda6に入れてあります。
最初はsda6だけ。次に別のシステムをsda7にインストールするとboot loaderはsda7に移るわけですが、私はそのあとでsda6をbootして、boot-repairを用いてboot loaderをsda6に戻します。3つ目、4つ目のディストリ(sda8、sda9)をインストールした場合も同様です。
(実際には外付けHDDに幾つも入れてあるのをGPartedでcopyし、fstabを書き換えているのですが、考え方としてはそういった感じです。)
つまり、いずれの場合も最後にsda6をbootしてboot-repairを用いてsda6にboot loaderをのせ、grub-customizerを立ち上げて、表示の順番(sda6〜sda10)、最初にどれをbootするか(私は前回使用したパーティションを選択するよう設定します)や文字色、ハイライトの文字色、背景画像など編集するというやり方です。
オフライン
chichinpui による投稿:
redredさん
前回は提示するコマンド間違えてしまい、申し訳ありませんでした。
フォーラムでの助言くいちがいはお互い様です。私もやりがちのうっかり八兵衛です。ドンマイでお願いします。
chichinpui による投稿:
mintのkernelがあがって、mint側でupdate-grubが走っても、更新されるのはmint側のgrub.cfgで、ubuntu側のgrubはubuntu側の古いgrub.cfgしか見えないと思うのですが。
これ私にとって新しい気づきになりました。
そもそも1つのディスクに複数Linuxで、かつ使うGrubを固定すれば、
どれかのkernelが上がれば、Grub生成したディストリビューションでupdate-grubすべし、ということですね。
なるほど、サボればセキュリティリスクでしょうか。
だから、使うGrubを固定していない現状は、どれかのkernelが上がれば、勝手にgrub-installが走り自動交代になるのですな。
【質問a】【質問b】は取り下げます。
ellipticさん、これを見られたら、お願いしておいて恐縮です。
chichinpuiさん、鋭いご指摘ありがとうございました。
オフライン
bayou による投稿:
最初はsda6だけ。次に別のシステムをsda7にインストールするとboot loaderはsda7に移るわけですが、私はそのあとでsda6をbootして、boot-repairを用いてboot loaderをsda6に戻します。3つ目、4つ目のディストリ(sda8、sda9)をインストールした場合も同様です。
bayouさん
boot-repairを用いるか、コマンドgrub-installを用いるか、の違いでしょうか?
私も花粉症でスッキリ咀嚼できない今日日です。
どれかのkernelが上がれば、sda6でupdate-grubしていたりしますか?
オフライン
#9 で解説いただいたことを図にしてみました。
お陰様で私の理解もアップグレードされました。
何かご指摘などあればお知らせいただければ幸いです。
ここに貼ると画面からはみ出るので、共有場所を下記付録します。
https://s.easyuploader.app/20210222182018_67545a7669543377.png
オフライン
redred による投稿:
boot-repairを用いるか、コマンドgrub-installを用いるか、の違いでしょうか? / どれかのkernelが上がれば、sda6でupdate-grubしていたりしますか?
花粉症、辛いですよねー。
たぶんその通りだと思いますが、私の場合はsda6以外の場所にboot loaderが移動してしまったら、①そこでgrub-customizerを立ち上げて使いやすいように編集する、②もういっぺんsda6でboot-repairを使ってからgrub-customizerで編集する、の2つのうちその時の気分でやります。①のやり方ではsda6を一番上に持っていって順番を揃えます。
私はboot-repairとGで始まる3つのソフトウエア(GParted,gedit,grub-customizer)を多用していますが、たぶん効率のよくないやりかたですね ^^);
オフライン
初心者の私が横からGUIの話題を持ち込んで話を解りにくくしたようです。ごめんなさい。
オフライン
redred による投稿:
だから、使うGrubを固定していない現状は、どれかのkernelが上がれば、勝手にgrub-installが走り自動交代になるのですな。
kernelの更新のときに実行されるのはupdate-grubです
linux-image-5.8.0-43-generic (5.8.0-43.49) のトリガを処理しています ... /etc/kernel/postinst.d/dkms: * dkms: running auto installation service for kernel 5.8.0-43-generic ...done. /etc/kernel/postinst.d/initramfs-tools: update-initramfs: Generating /boot/initrd.img-5.8.0-43-generic /etc/kernel/postinst.d/zz-update-grub: Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Linux イメージを見つけました: /boot/vmlinuz-5.8.0-43-generic Found initrd image: /boot/initrd.img-5.8.0-43-generic Linux イメージを見つけました: /boot/vmlinuz-5.8.0-41-generic Found initrd image: /boot/initrd.img-5.8.0-41-generic Linux イメージを見つけました: /boot/vmlinuz-5.8.0-40-generic Found initrd image: /boot/initrd.img-5.8.0-40-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin 完了
オフライン
rohizuka による投稿:
kernelの更新のときに実行されるのはupdate-grubです
起動OS選択画面が、いつの間にか交代しているときがあるのですが、
そのときもupdate-grubだけですか?
オフライン
https://forums.ubuntulinux.jp/viewtopic … 16#p122516
ここの③を読み直してください。
オフライン
#23
rohizuka による投稿:
https://forums.ubuntulinux.jp/viewtopic … 16#p122516
ここの③を読み直してください。
redredさん、読み返すなら デュアルブート以上のGrub設定はどれが有効か? #12まで
までさかのぼってみてください。
#18 Q:GRUB coreイメージ A由来なのか B由来なのか?
elliptic による投稿:
Grubを複数インストールしてあるときは、最後にインストールした方のGrubが
使われます。
どちらのパーティションのGrubディレクトリが使われるかの指定はは core image に
埋め込まれていますが、データが圧縮されているので解読して見分けるのは面倒です。
#22 Q:起動OS選択画面が、いつの間にか交代しているときがあるのですが?
elliptic による投稿:
linux-imageの更新などでは grub-updateが実行されGrubメニューが再作成されますが
’どっちのパーティションのGrub'で起動するかは変わりません。
grub-pcのアップデートがあると grub-install が実行され、更新のあった方の
パーティションのGrubで起動する設定に変更されると思われます。
#18 Q:Ubuntu インストール時の ブートローダとは? インストールするデバイスとは?
ブートローダ: Ubuntuでは GRUBが使用されます。 多くのコンポーネントの集まりで
構成されます。
インストールデバイス:
grub-install [OPTION...] [OPTION] [INSTALL_DEVICE]
の INSTALL_DEVICE にあたります。
起動の第1歩となるブートセクタとして使用する場所を指定します。
HDDを指定して その先頭セクタ(MBR)使うか
HDDを区切ったパーティションを指定して、その先頭セクタ(VBR)を使います。
#10
redred による投稿:
【質問a】その場合、新たに③をインストール際の「ブートローダをインストールするデバイス」先はデフォルト以外のどこを選べば良いでしょうか?
以前の投稿から
/dev/sda: UbuntuのGRUBが使用
/dev/sda1 /dev/sda2 /dev/sda3: Windows
/dev/sda5: Ubuntu
/dev/sda6: 新規導入 OS
と仮定します。
新規OSの「ブートローダをインストールするデバイス」は /dev/sda6 を指定しておけばどうでしょうか。
/dev/sda の MBRを取り合うことはなくなります。
/dev/sda6 はそのままでは起動時に呼び出されないので GRUBが仕掛けられていても
使われません。
新規OSもUbuntu側のGRUBで起動してください。
/dev/sda6 からの起動を試したいときは 別のブートローダ経由で 2段階ブートさせます。
redred による投稿:
【質問b】おそらくそれができたら、②のUbuntuでのupdate-grubで、新たにインストールした③を拾ってGrub起動画面に追加してくれるものと予想しますが、この私の期待は正しいですか?
当然のことですが
Ubuntuが知っているOSならば GRUBのメニューに登録されます。
未知のOSは登録されないので ユーザが自分でGRUBのカスタムメニュー項目を作成します。
オフライン
皆様からいただいたご案内にしたがい、「ブートローダをインストールするデバイス」を/dev/sda の MBR以外を選んで実際に追加インストールしてみました。
ご教授と結果が符号して、あらためて理解が広がりました。
この備忘のため前出の図を修正しました。
ここに貼ると画面からはみ出るので、共有場所を下記付録します。
https://s.easyuploader.app/20210224173758_71676f74724c6e36.png
図にまだ間違いなどあれば更に修正して、このスレ上に再投稿いたします。
#14でchichinpuiさんからいただいた下記懸念点は、引き続き私も不安点ではあります。
chichinpui による投稿:
2)ubuntuでインストールされたgrubからmintを起動する場合、ubuntuでのupdate-grubのタイミングによっては、ubuntu側のgrub.cfgのmintの情報が古いなど、不整合が発生する場合があるのでは。
mintのkernelがあがって、mint側でupdate-grubが走っても、更新されるのはmint側のgrub.cfgで、ubuntu側のgrubはubuntu側の古いgrub.cfgしか見えないと思うのですが。
ubuntu側でupdate-grubすれば済む、で割り切ってもよいのかも知れませんが、ubuntu側でmint最新kernelを起動したら、実はmint側の2番めになってたなど、動くけどややこしい誤認につながる気もします。
主題「Grub起動画面を交代させるには、Ubuntu側でどうコマンドを打ったらよいでしょうか?」
は解決したうえに、私のGrubに関する霧も晴らしていただき、
あらためて御礼申し上げます。
オフライン