2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

インストール済みのFedoraを使って新しくFedoraをインストールする

Last updated at Posted at 2024-05-16

手元の仮想マシンはFedora39でした。ということでFedora41が欲しいのでインストールします。

大まかな方針

DebianでいうdebootstrapみたいなことをFedoraでします。
すなわち、インストーラーのISOではなく(←ここ大事)動いているFedoraをつかって新しくFedoraをインストールします。

間違えちゃったらそこからなんとかすることを今回は重視します。(2箇所やらかしてあとでなんとかしてます)

なんでそんなことするの?

  • ISOをダウンロードして手作業で真心込めてGPGを検証してまたいつもどおりの手順で真心込めてインストールというのも面倒
  • 間違って攻撃用のサイトからダウンロードしたくない
  • やってみたい!
  • そもそもほしいISOが見当たらない
    • 探し方が悪い?

やってみよう

用意するもの

  • インストール済みで動くFedora
  • インストール先ストレージ
  • 方針
    • パーティションこうしたい
    • このアプリ入れたい
    • UEFI?Legacy BIOS?

手順

インストール先の準備

この手順は全部お好みでします。

LUKSでLVMでBtrfsのサブボリュームというのもいいですね✨(今回はそこまでしませんがそういうのもいいですね)

  1. お好みの感じでパーティション切ります
    • 今回はGPTでBIOSが1つと残り全部を1つにしました
  2. お好みでmkfsします
    • 今回はシンプルにext4にしました
  3. マウントします
    • 今回/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

確認

設定の漏れがないかもう一回再起動して確認しましたが大丈夫そうです。

できあがり🎉🥳✨

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?