できますが、良いアイデアではありません。
GRUB では、別のカーネルと initrd
を指定します。 システムにインストールされている各ディストリビューションのファイル
ただし、各ディストリビューションがブート構成を設定し、/boot
でファイルに名前を付ける方法によっては、1 つのディストリビューションのブート構成が他のディストリビューションの構成と競合する場合があります。 .これにより、構成がめちゃくちゃになり、1 つ以上のディストリビューションが起動できなくなる可能性があります。いずれかのディストリビューションでカーネルを更新したり、ブート設定を変更したりする場合は、特別な注意が必要です。ただし、競合がなければ、両方のオペレーティング システムを問題なく起動できるはずです。
これはパーティーに少し遅れていることを認識していますが、3 つの同時インストールと 1 つの /boot
を維持するためにこれを採用しました パーティション:
- アーチ Linux
- ubuntu 14.04
- ubuntu 16.04
私は何年もアーチを使用してきましたが、ubuntu にはまったく慣れておらず、ブートローダーのインストールを停止する方法がわからなかったので、そのままにしておきました。 arch には syslinux
を使用しています 、 grub
ではありません だから私はそれにもっと精通しています。これはある程度ですが 私の実験の早い段階で、私の手順は次のとおりです:
- 競合する可能性のあるファイルを特定します。 ubuntu と arch の命名規則に注目した後、これは 14.04 と 16.04 の
vmlinuz
に行き着きました。 とininrd.img
、同じ名前が付けられています(異なる時期に更新される場合、バージョン番号は別として)。互換性があることはわかっていますが、互換性がないものとして扱うことにしました。 - セットアップ
syslinux
いつものように、各ディストリビューションのエントリを作成します (以下を参照) - 競合する可能性のあるいずれかのディストリビューションの更新時に、問題を回避するために命名戦略を実装する
- バックアップ計画を立てる
いずれかの ubuntu がカーネルを更新すると、次の 2 つの重要なファイルが取得されます:
/boot/initrd.img-x.x.x-xx-generic
/boot/vmlinuz-x.x.x-xx-generic
上記のそれぞれについて、単純に _distro
を追加します syslinux.cfg
を変更しないように、静的に名前が付けられたバリアントを置き換えます 各更新 (以下に詳細を示します)。プロセスは次のようになります。例として 14.04/Trusty を使用し、関心のあるファイルのみを表示します。
$ cd /boot
$ sudo mv ./initrd.img-4.4.0-62-generic ./initrd.img-4.4.0-62-generic_trusty
$ sudo cp ./initrd.img-4.4.0-62-generic_trusty ./initrd-trusty.img
$ sudo mv ./vmlinuz-4.4.0-62-generic ./vmlinuz-4.4.0-62-generic_trusty
$ sudo cp ./vmlinuz-4.4.0-62-generic_trusty vmlinuz-trusty
arch の命名規則は決して競合しないため、これは 2 つのバックアップ/正確な名前の initrd
になることを意味します と vmlinuz
ファイルと、syslinux.cfg
を変更しないようにするために使用できる 2 つのファイル いつも。キー ファイルは次のようになります (コメントが追加されています):
$ ls /boot/
initramfs-linux.img ## arch main initramfs
initramfs-linux-fallback.img ## arch fallback initramfs
initrd.img-4.4.0-62-generic_trusty ## named recent 14.04 initrd
initrd.img-4.4.0-62-generic_xenial ## same for xenial (16.04)
initrd-trusty.img ## statically named initrd
initrd-xenial.img
vmlinuz-4.4.0-62-generic_trusty ## named vmlinuz
vmlinuz-4.4.0-62-generic_xenial
vmlinuz-linux ## arch's vmlinuz
vmlinuz-trusty ## statically named vmlinuz
vmlinuz-xenial
起動用に、これが私の syslinux
です エントリ:
LABEL arch
MENU LABEL arch
LINUX ../vmlinuz-linux
APPEND luks-options-here rootflags=compress=lzo,discard,ssd,subvol=arch rw
INITRD ../intel-ucode.img,../initramfs-linux.img
LABEL xenial
MENU LABEL xenial
LINUX ../vmlinuz-xenial
APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=xenial quiet splash $vt_handoff
INITRD ../initrd-xenial.img
LABEL trusty
MENU LABEL trusty
LINUX ../vmlinuz-trusty
APPEND luks-options-here ro rootflags=compress=lzo,discard,ssd,subvol=trusty quiet $vt_handoff
INITRD ../initrd-trusty.img
ここまで grub
を残しました ubuntus で、更新のたびに文句を言いますが、何も問題はありません。私のバックアップ計画は mbr.bin
をコピーすることでした /boot/
へ (通常は /usr/lib/syslinux...
にあります) grub
の場合 少なくとも dd
できるブートローダーを上書きすることにしました syslinux
ブートローダーが戻ってきました。 Arch のインストールが失敗しない (少なくとも起動する) ことは 95% 以上あると確信しています。おそらく各 initrd/vmlinuz
の以前のバージョンを 1 つ保持します。 initramfs
で問題が発生した場合に備えて、起動時にロードするものを変更できるようにします。
うまくいけば、何が起こっているのかが比較的明確になります。リンクや更新後のスクリプトなどを使用して自動化することもできますが、まだ実現していません。
受け入れられた答えは、物事がうまくいかない可能性があることを明らかにしていますが、他の人がこれを行っている例をグーグルで検索し、このような答えしか見つけられなかったので(基本的に「可能ですが、しないでください」)、具体的な例を追加すると思いましたどのようにできる このようなものを設定してください。
個人的には、かなり興奮しています。私は 1 つのブート パーティションを持っています。お気づきかもしれませんが、1 つの btrfs
に 3 つのディストリビューションが並んでいます。 パーティション。サイズを事前に割り当てる必要はなく、1 つのセットアップを気に入らずに吹き飛ばしてしまう (未使用のパーティションが浮かんでいる) 心配もありません。>持っている ブートローダー!
これが誰かの役に立てば幸いです。