はじめに
たくさんのOSを使えると世界が広がったような気がします。私のマルチブート環境構築を一つ一つ解説していきます。説明不足な点もあるかもしれないです。ご了承ください。
前提
私のPCは、
- Lenovo Yoga 760 AMD Ryzen 7 5800U・16GBメモリー・512GB SSD(82N7005SJP)
です。
USBの準備
Universal USB Installerが便利です。arch,windows,ubuntu,freeBSDを入れています。
パーティション分け
パーティションを分割していきます。fdisk -lでデバイス、パーティション一覧を見ることができます。発見したら、以下のようにして選択します。
fdisk /dev/nvme0n1
削除、パーティション分けを行っていきます。
-
d Enterで削除を行えます。 -
n Enter Enter +?G Enterで新規パーティションを好きなサイズで作ることができます。 -
t partnum numでパーティションのタイプを変更できます。 - 全て終わったら、
pで確認したのち、wで書き込むことができます。
今回は、以下のように作成します。
| num | size | type | num | os |
|---|---|---|---|---|
| p1 | 1G | EFI System | 1 | none |
| p2 | 150G | Linux x86_64 | 23 | arch |
| p3 | 200G | Linux filesystem | 11 | windows |
| p4 | 50G | Linux filesystem | 20 | arch |
| p5 | 40G | Linux filesystem | 20 | ubuntu |
| p6 | 35.9G | Linux filesystem | 20 | freeBSD |
コマンドは以下のようになります。
d
n Enter Enter 1G Enter
n Enter Enter +150G Enter
n Enter Enter +200G Enter
n Enter Enter +50G Enter
n Enter Enter +40G Enter
n Enter Enter +35.9G Enter
t 1 1
t 2 23
t 3 11
p
w
p1_efi_systemd-boot
とりあえずEFIパーティションをフォーマットします。
mkfs.fat -F 32 /dev/nvme0n1p1
私はsystemd-bootが好きです。EFIパーティションをマウントした後、一コマンドでインストールできます。
mount /dev/nvme0n1p1 /boot
bootctl install
ここまででリブートするとsystemd-bootが何もエントリがない状態で入っていることが確認できます。
ローダの設定は、boot/loader/loader.confで、エントリの追加は、boot/loader/entries/*.confに追加することで可能です。これでEFIパーティションの準備は完了です。
p2_arch
2つ目のパーティションにarchを入れていきます。リブートした状態からスタートします。フォーマットの後、マウントをします。
mkfs.ext4 /dev/nvme0n1p2
mount /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
必須パッケージ、準必須パッケージをインストールします。
pacstrap -K /mnt base linux linux-firmware vi vim dhcpcd
最低限の設定をしていきます。p2に入って操作を行います。PC名の設定、ユーザー追加、パスワードの設定、権限設定を行います。これらができたらexitします。
arch-chroot /mnt
vim /etc/hostname #PC名書き込み
useradd -m -g wheel -G users username
passwd #rootパスワード
passwd username
visudo
exit
最後にブートローダの登録です。EFIパーティションをマウントしてからエントリーを追加します。パイプで書き込むと楽です。
blkid | grep p2 >> /boot/loader/entries/arch.conf
このファイルを最終的に、以下のようなファイルに編集します。
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX" rw
以上でうまく言っていたらrebootし、archlinuxを起動できると思います。
loader/loader.confを編集すると、デフォルトでブートされるパーティションや、タイムアウトを変更できます。
default arch.conf
#timeout 3
p3_windows
Windowsを入れます。簡単です。
- windowsのisoを選択します。
- UpgradeとCustomでCustomを選びます。
- パーティション3を選んで実行
- 進んでいくと、microsoftアカウントを求められるのでShift+F10でコンソールに
OOBE\BYPASSNROを入力し、バイパスします。。
systemd-bootは自動的にwindowsのパーティションを探してくれるのでエントリの追加は必要ないです。
p4_arch2
4つ目のパーティションにarchを入れていきます。これは、p2が使えなくなった際の緊急避難用として利用します。p2と同じ手順を繰り返します。リブートした状態からスタートします。フォーマットの後、マウントをします。
mkfs.ext4 /dev/nvme0n1p4
mount /dev/nvme0n1p4 /mnt
必須パッケージ、準必須パッケージをインストールします。
pacstrap -K /mnt base linux linux-firmware vi vim dhcpcd sudo
最低限の設定をしていきます。p4に入って操作を行います。PC名の設定、ユーザー追加、パスワードの設定、権限設定を行います。これらができたらexitします。
arch-chroot /mnt
vim /etc/hostname #PC名書き込み
useradd -m -g wheel -G users username
passwd #rootパスワード
passwd username
visudo
exit
最後にブートローダの登録です。EFIパーティションをマウントしてからエントリーを追加します。パイプで書き込むと楽です。
blkid | grep p4 >> /boot/loader/entries/arch2.conf
このファイルを最終的に、以下のようなファイルに編集します。
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX" rw
以上でうまく言っていたらrebootし、archlinuxを起動できると思います。
p5_ubuntu
Ubuntuを入れます。systemd-boot向けのブートローダの設定が少し大変です。
- Ubuntuのisoを選択します。
- Nextを何回も押します。
- インストール方法でManual Installationを選択します。
- Device for boot loader installationに
nvme0n1を選択、nvme0n1p5を選択し、Change、mount pointを\、Used asをExt4としてNextを選択します。 - 情報を入力し、進みます。
最後にブートローダの登録です。archからファイル操作をします。rootユーザで/boot/loader/entries/に行きます。パイプで書き込むと楽です。
blkid | grep p5 >> /boot/loader/entries/ubuntu.conf
このファイルを最終的に、以下のようなファイルに編集します。
title Ubuntu
linux /vmlinuz
initrd /initrd.img
options root=PARTUUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX" rw
このままでは、vmlinux,initrd.imgが存在しません。ubuntuから持ってきます。
mount /dev/nvme0n1p5 /mnt
cp /mnt/boot/vmlinuz /boot/vmlinuz
cp /mnt/boot/initrd.img /boot/initrd.img
以上でうまく行っていたらrebootし、ubuntuを起動できると思います。
p6_freeBSD
freeBSDをインストールしていきます。手順は少ないです。
-
freeBSDのisoを選択し、進んて行きます - PartitioningでManualを選択します。
-
p6にフォーカスをあてdで削除、その後p5にフォーカスを当ててcでクリエイトします。MountPointとして/を入力します。 - 進んでいくとインストールできます。
最後にブートローダの登録です。archからファイル操作をします。rootユーザで/boot/loader/entries/に行きます。パイプで書き込むと楽です。
blkid | grep p6 >> /boot/loader/entries/freebsd.conf
このファイルを最終的に、以下のようなファイルに編集します。
title freebsd
linux /EFI/freebsd/loader.efi
options root=PARTUUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX" rw
以上でうまく行っていたらrebootし、freebsdを起動できると思います。
終わりに
同じ要領でいくらでもパーティションを作成し、systemd-bootから起動することができます。快適なマルチブートライフを過ごしましょう!