手元の仮想マシンはFedora39でした。ということでFedora41が欲しいのでインストールします。
大まかな方針
DebianでいうdebootstrapみたいなことをFedoraでします。
すなわち、インストーラーのISOではなく(←ここ大事)動いているFedoraをつかって新しくFedoraをインストールします。
間違えちゃったらそこからなんとかすることを今回は重視します。(2箇所やらかしてあとでなんとかしてます)
なんでそんなことするの?
- ISOをダウンロードして手作業で真心込めてGPGを検証してまたいつもどおりの手順で真心込めてインストールというのも面倒
- 間違って攻撃用のサイトからダウンロードしたくない
- やってみたい!
- そもそもほしいISOが見当たらない
- 探し方が悪い?
やってみよう
用意するもの
- インストール済みで動くFedora
- インストール先ストレージ
- 方針
- パーティションこうしたい
- このアプリ入れたい
- UEFI?Legacy BIOS?
手順
インストール先の準備
この手順は全部お好みでします。
LUKSでLVMでBtrfsのサブボリュームというのもいいですね✨(今回はそこまでしませんがそういうのもいいですね)
- お好みの感じでパーティション切ります
- 今回はGPTでBIOSが1つと残り全部を1つにしました
- お好みでmkfsします
- 今回はシンプルにext4にしました
- マウントします
- 今回
/target
にマウントしました
- 今回
ざっくりと必要そうなものをまとめてインストール
しばらく↓これをつけて普通にdnf
するのが続きます。
--releasever=41\
--installroot=/target\
--forcearch=x86_64\
やってることとしてはdnf
でインストールする時に
- x86_64の
- Fedora41を
-
/target
に
インストールするだけです。
こんなコマンドでざっくりとインストールします
sudo dnf\
--releasever=41\
--installroot=/target\
--forcearch=x86_64\
-y\
group install\
'Core'\
'Guest Agents'\
'Common NetworkManager Submodules'\
'Standard'
たまたまQEmuで使いたいので'Guest Agents'
をインストールしました。
カーネルをインストール
sudo dnf\
--releasever=41\
--installroot=/target\
--forcearch=x86_64\
-y\
install\
kernel
ブートローダーを(ルートファイルシステムに)インストール
sudo dnf\
--releasever=41\
--installroot=/target\
--forcearch=x86_64\
-y\
install\
grub2-pc
chroot
の準備
仕方がないので大事なファイルシステムをマウントします。
sudo sh -c 'for i in dev dev/pts proc sys run;do mount --bind /$i /target/$i;done'
ブートローダーを(ブートセクターと/boot
パーティションに)インストール
sudo chroot /target /bin/sh -c 'grub2-install /dev/vdb'
※私は完全に素で忘れていましたがgrub.cfg
も生成しておきましょう。初回の起動が面倒になります。
ユーザーを作る
お好みで管理者ユーザーを作ります。
sudo chroot /target /bin/sh -c 'visudo'
sudo chroot /target /bin/sh -c 'useradd -G wheel -m -s /bin/bash -u 1000 -U user'
sudo setenforce 0
sudo chroot /target /bin/sh -c 'passwd -d user'
sudo setenfoece 1
(大変不本意ながらやむを得ず嫌々仕方がなく)パスワードを変える時だけSELinuxをPermissiveにしました。お恥ずかしい限りですが時短です。
fstab
を書く
/dev/vda / ext4 defaults 0 0
とかお好みの構成に応じて書きます。UUIDを使うのもいいですね。
再起動
アンマウントとか面倒なのでもう一旦この環境は電源オフです。
※私は完全に素で忘れていましたが、一応電源オフの前にキーボードをお好みの配列に変えるのもおすすめです。
sudo systemctl poweroff
やらかし対応
今回は説明用にあえて完全に本当に素でやらかしたので、なんとかします。
grub.cfg
作ってなかった
起動するとGRUBがお伺いしてくるので
linux /boot/vmlinuz-6.9.0-64.fc41.x86_64 root=/dev/vda2 rw
initrd /boot/vmlinuz-6.9.0-64.fc41.x86_64.img
boot
例えばこんな感じで起動します。
一応Linuxですから面倒ですが起動はします。
次回から楽に起動させたいのでちゃんと設定します。
sudo kernel-install add 6.9.0-64.fc41.x86_64 /lib/modules/6.9.0-64.fc41.x86_64/vmlinuz
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
日本語キーボードにし忘れた
一応日本語にしておきます。
sudo localectl set-keymap jp
sudo localectl set-x11-keymap jp
確認
設定の漏れがないかもう一回再起動して確認しましたが大丈夫そうです。
できあがり🎉🥳✨