LoginSignup
6
5

More than 5 years have passed since last update.

UEFIでGentooとWindowsのデュアルブート環境を構築する

Last updated at Posted at 2017-05-05

はじめに

学校でGentooを布教しようとするとかならずといっていいほど
「でも、難しいんでしょ?」と聞かれますがそんなことは無いよって話しです。

インストールメディアの準備

こ↑こ↓からアーキテクチャに合せたMinimal Installation CDのISOイメージをダウンロードしてきます。
Minimal CDではUEFIブートできないようなのでUEFIブートできるUSBメモリを作成します(Rufusというソフトを利用しました)。

パーテーション

「間違えてWindowsのパーテーションを消しちゃいそう」などという意見があったので先にWindowsからGentoo用のパーテーションを作っておきます。
Windowsで「ディスクの管理」を起動します。
Cドライブを縮小するなどして/とswapにするために二つのパーテーションを用意します。このとき、作成したパーテーションはフォーマットせずドライブレターを割り当て無いようにします。

起動

準備がととのったら起動しましょう。
boot:というプロンプトが出たらgentooで起動できます。
起動中、唐突にキー配列をきかれるので指示に従ってください。英語キーボードならそのままで大丈夫です。

ネットワーク設定

有線接続

LANケーブルが刺さっていれば自動的に繋っていると思います。

無線接続

最近はEthernetポートが無いPCも増えていますね、その場合はwifiを利用しましょう。
# ifconfigでデバイスが認識されているか確認しましょう。
認識されていればwl~みたいな名前になっていはずです。
次に# wlist wl~ scan | grep ESSIDでアクセスポイントを探します。
アクセスポイントが見付かったら
# wpa_passphrase "essid" "パスフレーズ" > hoge.confで設定ファイル作って
# wpa_supplicant -i wl~ -D wext -c hoge.confで接続できます。

接続の確認

接続できたら
# ping www.gentoo.orgで接続の確認をします。

ファイルシステムの作成

下準備で用意したGentoo用のパーテーションをフォーマットします。
# mkfs.ext4 /dev/sdax(sdaxの部分は各自置き換えてください)
次にswapを作成します。
# mkswap /dev/sday
# swapon /dev/sday(sdayの部分は各自置き換えてください)

パーテーションのマウント

先程のパーテーションをマウントします。
# mount /dev/sdax /mnt/gentoo
次にEFIのパーテーションをマウントします
# mkdir -p /mnt/gentoo/boot/efi
# mount /dev/sda1 /mnt/gentoo/boot/efi

インストール

stage3のダウンロード、展開

/mnt/gentooに移動し、wget等を利用してstage3のアーカイブをダウンロードしてきます。
# tar -xvjpf stage3-amd64.tar.bz2で展開します。

chroot

# cp -L /etc/resolv.conf /mnt/gentoo/etc/でDNS情報をコピーしておきます。

# mount -t proc proc /mnt/gentoo/proc
# mount --rbind /dev /mnt/gentoo/dev
# mount --rbind /sys /mnt/gentoo/sysで/proc,/dev,/sysをマウントします。

# chroot /mnt/gentoo /bin/bash
# source /etc/profile
これで新しい環境の中に入ることができました。

portageの導入

# emerge-webrsync
導入したらportageツリーを更新します。
# emerge --sync

# eselect profile listでprofileのリストが見れるので
# eselect profile set 番号で設定します。

make.confの編集

make.confに以下を追加します

/etc/portage/make.conf
MAKEOPTS="-j4"
LINGUAS="en ja"
GRUB_PLATFORMS="efi-64"

MAKEOPTSはCPUにあわせて最適な値を設定してください。GRUBの設定は後で重要になるので注意してください。
また、必要に応じてUSEフラグを設定してください。

fstab

fstabを書き換えます。

/etc/fstab
/dev/sda1       /boot/efi   vfat        noauto,noatime  1 2
/dev/sdax       /            ext4       noatime         0 1
/dev/sday       none        swap        sw              0 0

カーネルコンパイル

今回はgenkernelを利用して自動でビルドします。
# emerge gentoo-sources genkernel
# genkernel all
/boot以下にカーネルが作成されています。

パッケージのインストール

必要なパッケージをインストールしておきましょう。
# emerge emacs
また、ネットワーク周りのもの(dhcpcd,wireless-tools,wpa_supplicant)は今の内にインストールしておかないと後でネットに繋げなくて確実に詰みます。

rootパスワードの設定,ユーザーの追加

# passwdでrootのパスワードを設定します。
一般ユーザーを追加します。
# useradd -m -G users -s /bin/bash ユーザー名
# passwd ユーザー名

ローカライズ

タイムゾーンを設定します
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ロケールを設定します

/etc/locale.gen
en_US.UTF-8
ja_JP.UTF-8

# locale-gen
英語キーボード以外のキーボードを利用している人は/etc/conf.d/keymapsを自分のキーボードにあわせて書き換えましょう。

ブートローダーの設定

make.confにGRUB_PLATFORMS="efi-64"を書き加えていない人は先に書いておきましょう。
# emerge grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=gentoo_grub /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

再起動

# exitでchrootから抜けます。
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -l /mnt/gentoo{/boot/efi,/proc,}
で、マウントを解除し、# rebootで再起動します

おしまい

6
5
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
6
5