お知らせ

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

#1 2020-10-23 10:24:55

ubuntu-linuxer
メンバ
登録日: 2015-02-14

UEFI専用のPC(Jumper EZbook 3 Pro)でUbuntu-20.04を2つ導入してmulti-bootする方法

UEFI環境でUbuntu-20.04.1をmulti-bootする方法を試行錯誤して実現しました。
注意事項を含めて情報を公開します。

1.  実現方法

 UEFIのbootmanagerからgrub2を起動。grub2で2つのubuntu-20.04.1をmulti-bootします。
    Disk(SSD)の構成は/dev/sda2, /dev/sda3にubuntu-20.04.1を導入します。

2.  注意事項

 ・Disk(SSD)の全てをFormatするやり方です。
 ・Windowsとの共存はしません。ubuntuのみのmulti-bootです。
 ・UEFI,gptの基礎知識を前提とします。
 ・gparted,grub2の操作知識を前提とします。
 ・Jumperは英語キーボードです。言語関連は無視します。
 ・ubuntu-20.04.1の英語版を利用していますが、適時読替えてください。

3.  作業手順

 (1) ubuntu-20.04.1のUSB-bootメディア(4GB)の作成
 (2) PC(Jumper)のDisk(SSD)レイアウト設定
 (3) ubuntu-20.04.1を/dev/sda2に導入
 (4) ubuntu-20.04.1を/dev/sda3に導入(Copy)
 (5) /dev/sda2のgrub2設定を変更して、/dev/sda3を起動可能にする
 (6) /dev/sda3のgrub2設定を/dev/sda2と同一にする
 (7) /dev/sda2, /dev/sda3のubuntu-20.04.1を詳細設定する
  
3-(1) ubuntu-20.04.1のUSB-bootメディアの作成

    ubuntu-20.04.1をdownloadします。
    <https://jp.ubuntu.com/download>
    4GBのUSBメモリを用意して、ディスクイメージライターでUSBにubuntu-20.04.1を書き込みます。
 <https://kledgeb.blogspot.com/2016/04/gnome-disks-30-ubuntuusb.html>
  
3-(2) PC(Jumper)のDisk(SSD)レイアウト設定

    ubuntu-20.04.1のUSBメモリから起動後、gpartedにてパーティションを設定
    sdaをgpt formatした上で、パーティションを作成します。
    sda1   100MB  efi
    sda2    50GB  ext4
    sda3    50GB  ext4
   
3-(3) ubuntu-20.04.1を/dev/sda2に導入

    ubuntu-20.04.1のUSBメモリから起動後、ubuntuのinstallerを利用して
    /dev/sda2を/(root)に設定してインストールします
    ソフトウェア更新まで行います。
   
3-(4) ubuntu-20.04.1を/dev/sda3に導入     

    ubuntu-20.04.1のUSBメモリから起動後、sda2とsda3をファイルでmountします。
    terminalでsda2の内容をsda3にコピー(cp -rp利用)します。
    対象は下記ディレクトリ(多分/tmp以外)です。
    bin boot cdrom dev etc home lib lib64 media mnt opt proc root run
    sbin snap srv sys usr var
    /dev/sda3のUUIDに関する情報の変更
    UUIDの調べ方(tune2fs -l /dev/sda3 | grep UUID)
    /boot/grub/grub.cfg と /etc/fstab に/dev/sda2のUUIDが含まれているので
    /dev/sda3のUUIDに変更します。私はsedを利用しています。
    参考
      cp /boot/grub/grub.cfg grub.tmp
      sed -i -e 's/xxxx-xxx/yyyy-yyy/g' grub.tmp
      cp grub.tmp /boot/grub/grub.cfg

3-(5) /dev/sda2のgrub2設定を変更して、/dev/sda3を起動可能にする

  /dev/sda2からubuntu-20.04.1を起動後、grub2の設定を変更します。
  ①/etc/default/grubの7行目をコメントアウト(GRUB_TIMEOUT_STYLE=hidden)
  ②DiskのOSサーチを無効化(chmod 644 /etc/grub.d/30_os-prober)
  ③/etc/grub.d/40_customの修正(下記内容を追加) 
  menuentry "Ubuntu Boot sda3" {
      set root="hd0,gpt3"
      set uuid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      linux /boot/vmlinuz root=UUID=$uuid ro quiet splash
      initrd /boot/initrd.img
  }
  尚、uuid="xxxxx..xx"は/dev/sda3のuuid
  ④update-grub
  reboot後、grub2のメニューが表示されるようになり、
  /dev/sda2はUbuntu, /dev/sda3はUbuntu Boot sda3で起動を確認

3-(6) /dev/sda3のgrub2設定を/dev/sda2と同一にする

  kernel更新などが発生するとgrub2の設定が変更となるため、
  3-(5)のgrub2の設定を/dev/sda3にも実施します
  
3-(7) /dev/sda2, /dev/sda3のubuntu-20.04.1を詳細設定する

    独立した環境ができたので好みの設定をします。
   
4.  免責事項

 ・文書のみの説明です。
 ・タイプミスなどがある可能性もあり、自分で確認願います。

オフライン

 

#2 2020-10-23 10:56:34

nnn
メンバ
登録日: 2020-10-09

Re: UEFI専用のPC(Jumper EZbook 3 Pro)でUbuntu-20.04を2つ導入してmulti-bootする方法

20.10が正式リリースされましたがベータ版で試した時、UEFIしかサポートされていないようでした。
この20.10だったら「ただインストールするだけ」ですみませんか?

私がどうやってMBRの環境でUEFI専用の20.10betaをマルチブートできたかというと、
最初に20.10を入れて、最後のboot loaderを書き込む段階で失敗。(でもOSは入っている。)

次に、別のパーティションに20.04のを(最小構成でも良いから)インストールすると、そっちのブートローダーがすんなりとMBRに入る。

こうしてやると立ち上げのメニューから20.10が選べる、という方法です。
猿知恵だったら任せてください。

オフライン

 

#3 2020-12-25 07:15:12

ubuntu-linuxer
メンバ
登録日: 2015-02-14

Re: UEFI専用のPC(Jumper EZbook 3 Pro)でUbuntu-20.04を2つ導入してmulti-bootする方法

利用継続して、改善したことを記載します。

環境構築して運用しているとKernel更新が発生するとGrub2のメニューの中の
Ubuntuを選択すると起動される区画が、/dev/sda2と/dev/sda3が入替ることが
判明しました。そこで、/etc/grub.d/40_customの内容を以下のように変えました。

  menuentry "Ubuntu Boot sda2" {
      set root="hd0,gpt2"
      set uuid2="yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
      linux /boot/vmlinuz root=UUID=$uuid2 ro quiet splash
      initrd /boot/initrd.img
  }
  menuentry "Ubuntu Boot sda3" {
      set root="hd0,gpt3"
      set uuid3="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      linux /boot/vmlinuz root=UUID=$uuid3 ro quiet splash
      initrd /boot/initrd.img
  }

尚、uuid="yyyyy..yy"は/dev/sda2のuuid
         uuid="xxxxx..xx"は/dev/sda3のuuid

上記設定をして、Grub2のメニューのUbuntuは利用しなくなりました。
また、通常利用する区画は、/etc/default/grubのGRUB_DEFAULT=0を変更して
既定値を変えると便利です。私は3に設定しています。

オフライン

 

Board footer

Powered by FluxBB