現在ブートプロセス中にエラーが発生しております。
Loading initial ramdisk ...
を最後に動きません。。。
[解決済]現在grub-installでエラーが発生しております。
https://teratail.com/questions/61991
以下のサイトを参考にしました。
https://wiki.gentoo.org/wiki/Sakaki%27s_EFI_Install_Guide/Building_the_Gentoo_Base_System_Minus_Kernel
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base/ja
http://note.kurodigi.com/gentoo-uefi-install/
http://ririgon.hatenadiary.jp/entry/20150401/1427821349
https://sharpencryptedpig.noblogs.org/post/2014/05/29/how-to-install-gentoo-hardened-with-encrypted-root-and-swapexpress-procedure/
https://wiki.gentoo.org/wiki/Systemd/ja
https://wiki.gentoo.org/wiki/Intel
https://ja.wikipedia.org/wiki/Intel_HD_Graphics
http://www.hivestream.de/gentoo-installation-with-raid-lvm-luks-and-systemd.html
http://yuex.in/post/2016/12/gentoo-install-mbp-1.html
UEFIモードか確認
# ls /sys/firmware/
apci dmi efi memmap
キーボードレイアウトを変更
# loadkeys jp106
無線LAN設定
# ip link show
# ip link set <interface> up
# iwlist <interface> scanning | grep ESSID
# wpa_supplicant -B -i <interface> -c <(wpa_passphrase <ESSID> <password>)
# dhcpcd
# ping google.com
ディスクをLUKSで暗号化している場合は復号化
# cryptsetup open <device-path> <luks-device-name>
ディスク・lvmの使用状況を確認
# lsblk
# df -h
# lvscan
パーティションを作成する場合
sda1はESP(ef00)に設定
sda2はlvm用(8e00)に設定
# gdisk /dev/sdX
GPT fdisk (gdisk) version 0.8.6
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.
Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y
Command (? for help): n
Partition number :
First sector:
Last sector: +512M
Hex code or GUID: ef00
Command (? for help): n
Partition number:
First sector:
Last sector:
Hex code or GUID: 8e00
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed?: y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
Logical Volumeの作成
作成するのはルートディレクトリのみです
lvcreate -L 64G vg1 -n <lv-root-name>
ファイルシステムの作成
ext4で作成します。
mkfs.ext4 <lv-root-path>
スワップはオンにする
# swapon <lv-swap-path>
ルートをマウント
# mount <lv-root-path> /mnt/gentoo
EFIディレクトリ作成とマウント
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda1 /mnt/gentoo/boot/efi
ちゃんとできたか確認
# lsblk
時刻を確認
#date
tarball(ステージ3)をダウンロードして展開します。
cd /mnt/gentoo
wget http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-<yyyymmdd>.tar.bz2
tar xvjpf stage3-amd64-<yyyymmdd>.tar.bz2 --xattrs
make.confの編集
VIDEO_CARDSの値は以下参照
lspci | grep VGA
https://wiki.gentoo.org/wiki/Intel
https://ja.wikipedia.org/wiki/Intel_HD_Graphics
vi /mnt/gentoo/etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE and USE_EXPAND flags that were used for
# buidling in addition to what is provided by the profile.
USE="bindist"
CPU_FLAGS_X86="mmx sse sse2"
# Important Portage directories
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
# Turn on logging
PORTAGE_ELOG_CLASSES="info warn error log qa"
PORTAGE_ELOG_SYSTEM="save"
# Setting for X11
VIDEO_CARDS="intel i965"
INPUT_DEVICES="evdev synaptics"
MAKEOPTS="-j4"
LINGUAS="en ja"
GRUB_PLATFORMS="efi-64"
ミラーの設定
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
以下、引用
メインのGentooリポジトリ
ミラーを選択するために次に重要なステップは、/etc/portage/repos.conf/gentoo.confファイルでメインのGentooリポジトリを設定すること。
このファイルはPortageツリーを更新するときに必要になる同期情報を含んでいます
Portageツリー:
Portageがソフトウェアパッケージをダウンロード、インストールする時に必要なすべての情報を含むebuildと関連ファイルを集めたもの
メインのGentooリポジトリの設定は単純です。
最初に(存在しなければ)repos.confディレクトリを作成。
mkdir /mnt/gentoo/etc/portage/repos.conf
次に、Portageが提供するGentooリポジトリ設定ファイルを(新規作成した)repos.confディレクトリにコピーします。
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
DNS情報のコピー
/etc/resolv.confをコピーしておく
cp -L /etc/resolv.conf /mnt/gentoo/etc/
色々マウントする
以下、引用
必要なファイルシステムをマウントする
新しい環境を適切に動作させるために、いくつかのファイルシステムを使えるようにしなければなりません。
/proc/
Linuxカーネルから情報を引き出すための擬似ファイルシステム
/sys/
/proc/同様、擬似ファイルシステムです。/proc/より構造化されており、一度は/proc/を置き換えることが目的
/dev/
通常のファイルシステムです。一部はLinuxのデバイス管理機構(通常はudev)により管理されており、すべてのデバイスファイルを含む。
/proc/は、/mnt/gentoo/proc/にマウントされるでしょう。
他の2つはbindマウントされます。
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
chrootします。
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
portageのスナップショットをインストールする
emerge-webrsync
Portageツリーを最新版にアップデート
(やらなくてもよいと公式HPに書いてありました。結構長かったです。)
emerge --sync --quiet
Portageからのニュース
飛ばします
選択できるプロファイルの確認
eselect profile list
プロファイルを変更
eselect profile set default/linux/amd64/13.0/desktop/gnome/systemd
プロファイルの変更を確認
eselect profile list
プロファイルを変更したので、更新する
emerge --ask --update --deep --newuse @world
無線LANツールをインストールしておく
emerge -av net-wireless/wireless-tools net-wireless/wpa_supplicant net-misc/dhcpcd
いろいろemerge
# emerge -av vim app-misc/screen cryptsetup lvm2
ロケールを設定する。
ls /usr/share/zoneinfo
echo "Japan" > /etc/timezone
emerge --config sys-libs/timezone-data
vim /etc/locale.gen
:
en_US.UTF-8 UTF-8
:
jp_JP.UTF-8 UTF-8
:
locale-gen
eselect locale list
eselect locale set [0-9]
env-update
source /etc/profile
export PS1="(chroot) $PS1"
genkernelではなくマニュアルでカーネルを設定します。
カーネルソースのインストール
カーネルソースを/usr/src/にインストールします
emerge -av sys-kernel/gentoo-sources
カーネルをMake
カーネルコンフィギュレーション設定をする
cd /usr/src/linux
make menuconfig
Gentoo Linux --->
[*] Gentoo Linux support (NEW)
[*] Linux dynamic and persistent device naming (userspace devfs) support (NEW)
[*] Select options required by Portage features (NEW)
Support for init systems, system and service managers --->
[*] OpenRC, runit and other script based systems and managers
[*] systemd
[*] 64-bit kernel
General Setup --->
() Cross-compiler tool prefix (NEW)
[ ] Compile also drivers which will not load (NEW)
() Local version - append to kernel release (NEW)
[ ] Automatically append version information to the version string
Kernel compression mode (Gzip) --->
((none)) Default hostname (NEW)
[*] Support for paging of anonymous memory (swap) (NEW)
:
-*- System V IPC
:
-*- Control Group support --->
--- Control Group support
[ ] Example debug cgroup subsystem
[*] Freezer cgroup subsystem
:
[*] Device controller for cgroups
[*] Cpuset support
[*] Include legacy /proc/<pid>/cpuset file
[*] Simple CPU accounting cgroup subsystem
[*] Resource counters
[*] Memory Resource Controller for Control Groups
[*] Memory Resource Controller Swap Extension
[*] Memory Resource Controller Swap Extension enabled by default
[*] Memory Resource Controller for Kernel Memory accounting
[ ] HugeTLB Resource Controller for Control Groups
[*] Enable perf_event per-cpu per-container group (cgroup) monitoring
[*] Group CPU scheduler --->
[*] Block IO contoroller
[ ] Enable Block IO controller debugging
-*- Namespaces support --->
--- Namespaces support
[*] UTS namespace
[*] IPC namespace
[*] User namepace
[*] PID Namespaces
-*- Network namespace
:
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
:
[*] Configure standard kernel features (expert users) --->
:
[*] Enable eventpoll support
[*] Enable signalfd() system call
[*] Enable timerfd() system call
:
-*- Enable the block layer --->
--- Enable the block layer
Partition Types --->
:
[*] EFI GUID partition support
Processor type and features --->
:
[*] EFI runtime service support
[*] EFI stub support
[ ] EFI mixed-mode support
:
[*] Built-in kernel command line
:
:
Device Drivers --->
Generic Driver Options --->
[*] Support for uevent helper
(/sbin/hotplug) path to uevent helper
:
Multiple devices driver support (RAID and LVM) --->
<*> Device mapper support
<*> Crypt target support
<*> Snapshot target
<*> Mirror target
<*> Multipath target
<*> I/O Path Selector based on the number of in-flight I/Os
<*> I/O Path Selector based on the service time
Firmware Drivers --->
EFI (Extensible Firmware Interface) Support >
<*> EFI Variable Support via sysfs
-*- Cryptographic API
<*> SHA256 digest algorithm (SSSE3/AVX/AVX2)
<*> SHA512 digest algorithm
<*> AES cipher algorithms (x86_64)
カーネルのコンパイルとモジュールインストールとカーネルのインストール
make && make modules_install && make install
initramfsの生成
次回はdracutでやってみよう
http://www.hivestream.de/gentoo-installation-with-raid-lvm-luks-and-systemd.html
genkernelのemerge
# echo "sys-kernel/genkernel-next cryptsetup" > /etc/portage/package.use/genkernel-next
# emerge -av genkernel-next
initramfsの作成
genkernel --udev –-lvm –-luks –-install initramfs
ls /boot/initramfs*
以下引用
/etc/mtab
開発元は、 /etc/mtab ファイルが /proc/self/mounts へのシンボリックリンクである環境のみをサポートしています。
また、このシンボリックリンクが存在しない場合、mount (bug #434090) および df (bug #477240) にも問題が発生します。
かつて一部のユーティリティがマウントオプションなどを書き込んでいたため、/etc/mtab は通常のファイルであることが期待されていましたが、現在ではあらゆるソフトウェアが対策を終えているものと思われます。
とはいえ念のため、ファイルをリンクに変更する作業を行う前に、 bug #477498 を閲覧の上、システムが既知の問題を抱えていないことをお確かめください。
シンボリックリンクを作成するには、以下を実行します:
# ln -sf /proc/self/mounts /etc/mtab
LVM を使用するシステムでは、LVM ボリュームをマウントするため、systemd と共に lvmetad デーモンが起動されなければなりません。
lvmetad は /etc/lvm/lvm.conf で有効化できます:
# vim /etc/lvm/lvm.conf
:
use_lvmetad = 1
:
任意自由選択: ファームウェアのインストール
emerge -av sys-kernel/linux-firmware
自動マウントの設定
まず、コピペできるようにUUIDを/etc/fstabに追記します。
blkid >> /etc/fstab
/etc/fstabを編集する
vim /etc/fstab
:
# <fs> <mountpoint> <type> <opts> <dump/pass>
UUID=<UUID> / ext4 defaults,noatime 0 1
UUID=<UUID> /boot/efi vfat defaults,noatime 0 2
UUID=<UUID> none swap sw 0 0
:
ホストネームの設定
echo <hostname> > /etc/conf.d/hostname
ルートパスワードの設定
passwd root
キーマップの設定
vim /etc/conf.d/keymaps
:
keymap="jp106"
:
サービス・デーモンのインストール
やらなかった
emerge -av app-admin/sysklogd sys-apps/systemd net-misc/dhcpcd
/etc/hostsの編集
vim /etc/hosts
:
# IPv4 and IPv6 localhost aliases
127.0.0.1 localhost <hostname>
::1 localhost <hostname>
:
ブートローダー
GRUB2とsys-fs/dosfstoolとefibootmgrのインストール
lvmとluksを使用するためにはGRUBがdevice mapperをサポートする必要があります。
# echo "sys-boot/grub:2 device-mapper" >> /etc/portage/package.use/grub:2
# emerge -av sys-boot/grub:2 sys-fs/dosfstools sys-boot/efibootmgr
# emerge -av sys-fs/dosfstools sys-boot/efibootmgr
/etc/default/grubを編集
Note
dracut が systemd をとりこんで生成した initramfs を使用するときには、この作業は必要ありません。initramfs が systemd を起動することになります。
FILE /etc/default/grubConfigure GRUB2 for systemd
/etc/crypttab is for when you need to decrypt any partition except 'root (/)'. In your use case scenario decryption occurs only in initramfs.
vim /etc/default/grub
:
GRUB_CMDLINE_LINUX="cryptdevice=/dev/disk/by-uuid/<UUId>:<luks-disk-name>" init=/usr/lib/systemd/systemd"
:
GRUB_ENABLE_CRYPTODISK=y
vim /etc/lvm/lvm.conf
:
volume_list = { "vg1" }
:
GRUB2をESPにインストール(ここでエラー発生中)
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=gentoo_grub --recheck
# mkdir /boot/efi/EFI/boot
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
# grub-mkconfig -o /boot/grub/grub.cfg
これで終了なので、アンマウントしてリブート
exit
umount -R /mnt/gentoo/
reboot