2016年10月05日

systemd-boot(uefi専用)をテスト。archlinux本家系ディストロ

じぶんでは、uefiパーティションは、/boot/efiにマウント
するものと思っている。
その流れで、systemd-bootで起動しようとすると、

$ sudo mount /dev/sda1 /boot/efi
$ sudo bootctl --path=/boot/efi install
$ sudo nano /boot/efi/loader/loader.conf

timeout 5
#default 26aa0d4e75fb4ac68e06336b29060886-*
editor 0

$ sudo nano /boot/efi/loader/entries/archbang140309.conf
title ArchBang sda7
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=b3410b20-7d57-4f84-b07c-8fa4629145b5 rw quiet

$ sudo cp /boot/vminuz-linux /boot/efi/
$ sudo cp /boot/initramfs-linux.img /boot/efi/
$ sudo cp /boot/initramfs-linux-fallback.img /boot/efi/
$ sudo reboot


同じhdd内に在るubuntuを起動させる場合、
当該ubuntu(14.04lts→16.04lts)からシステム起動して、
(ubuntuは、fstabでEFIパーティションをmountするようになっている)
$ sudo nano /boot/efi/loader/entries/ubuntu14.04lts
title Ubuntu14.04lts sda9
linux /vmlinuz-4.4.0-38-generic
initrd /initrd.img-4.4.0-38-generic
options root=PARTUUID=b2789aff-5048-490f-81a2-c301c215b2ab rw quiet

$ sudo cp /boot/vmlinuz-4.4.0-38-generic /boot/efi/
$ sudo cp /boot/initrd.img-4.4.038-generic /boot/efi/
$ sudo reboot

で、起動させられる。

難は、カーネルなどを/boot/efiにコピーしなければらないこと。
それにつきますね。ただ、起動は早い。といっても、
uefi-biosのサーチ時間とか、カーネルの起動時間とかは
同じことだけど、渡すのが、早い。

本来 /bootディレクトリからfat32にして使うものらしい。
$ sudo bootctl status
File system "/boot" is not a FAT EFI System Partition (ESP) file system.
そうすれば、カーネルのコピー操作はしなくていいんだろう。
でも、いろんなディストロが
/bootディレクトリを共用するなんて、
ぐちゃぐちゃになりそうだけど。

ちなみに、archlinux本家系が
いっぱいインストールされている場合、
/boot/efiへのカーネルのコピーは、
カーネルバージョンが同じであれば、
vmlinuz-linuxとinitramfs-linux.img、
initramfs-linux-fallback.imgの3つがワンセットあればいい。

カーネル更新があったとき、更新済みと未更新との間で、
カーネルモジュールの整合性が喪失するから、
systemd-bootから未更新のものを起動しようとすると、
マウスが動かなくなるとか、
ディスプレー表示のドライバが効いていないとか、
システム起動がおかしくなる。

/boot/efi/EFI/Microsoft/Boot/bootmgfw.efiは、
systemd-bootで自動認識するから、refind_x64.efiを
bootmgfw.efiに見せかけるとか、事前に
それなりの準備をしておかないと、
カーネル更新時に、苛立つことになると思う。

高容量ストレージの時代において、
何十ものディストロを管理するには、
手間がかかりすぎだろうね。
カーネル更新したくなくても、
archとfedoraは、システム更新すれば、
ignoreしない限りカーネルも更新されたりする。

デフォルトのままだと、モニタの中央に、
こんな感じでos選択画面が出る。

IMG_0297.JPG


↓  ↓  ↓  ↓
systemd-bootは、gummibootの後継で、
名前を変えただけ、みたいな情報もありますね。
gummibootってこんなだったっけ?


↓  ↓  ↓  ↓
hddの接続を外し、違うhddをつなぎ起動して、
またもとのhddに戻すと、systemd-bootのエントリーは
消失しているのは、予想通り。

むずかしいことしないで、systemd-bootを
インストールしたarchbangをほかの方法で立ち上げて、
$ sudo mount /dev/sda7 /boot/efi
$ sudo bootctl --path=/boot/efi install
とかすると、復活させることができる。


posted by ブログ開設者 at 13:29| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする