My Avatar

skylens

(●´ω`●)/

uefi 安装 gentoo

2017年10月9日 星期一, 发表于 昆明

前言

Gentoo 是一款基于 Linux 的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。 Gentoo的哲学是自由和选择。Gentoo 拥有媲美 FreeBSD 的广受美誉的 ports 系统 —— Portage 包管理系统。不同于 APT 和 YUM 等二进制文件分发的包管理系统,Portage 是基于源代码分发的,必须编译后才能运行,对于大型软 件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo 是所有 Linux 发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

怀着好奇心在虚拟机上尝试了一下 Gentoo 的安装,并针自己的情况做了一些优化,最后把整个过程记录了下来

比如说:

准备

注意 : Gentoo 的最小安装镜像不支持 UEFI,他只支持传统的 MBR ;如果你想使用 UEFI,那么就要选择基于 Gentoo 且支持 UEFI 启动的镜像(比如 live DVD 或者 SystemRescueCD )来安装,当然了你也可以使用支持 UEFI 启动的镜像(如 Archlinux 的镜像)制作 U 盘启动盘,通过启动盘来安装 Gentoo !

制作 U 盘启动盘

常用工具有rufus dd、软碟通以及其它你习惯的工具。

安装


 

# eselect profile list
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/selinux
  [3]   default/linux/amd64/13.0/desktop
  [4]   default/linux/amd64/13.0/desktop/gnome
  [5]   default/linux/amd64/13.0/desktop/gnome/systemd
  [6]   default/linux/amd64/13.0/desktop/plasma
  [7]   default/linux/amd64/13.0/desktop/plasma/systemd
  [8]   default/linux/amd64/13.0/developer
  [9]   default/linux/amd64/13.0/no-multilib
  [10]  default/linux/amd64/13.0/systemd *
  [11]  default/linux/amd64/13.0/x32
  [12]  hardened/linux/amd64
  [13]  hardened/linux/amd64/selinux
  [14]  hardened/linux/amd64/no-multilib
  [15]  hardened/linux/amd64/no-multilib/selinux
  [16]  hardened/linux/amd64/x32
  [17]  hardened/linux/musl/amd64
  [18]  hardened/linux/musl/amd64/x32
  [19]  default/linux/uclibc/amd64
  [20]  hardened/linux/uclibc/amd64
# eselect profile set 10
# emerge --ask --update --deep --newuse @world
# echo "Asia/Shanghai" > /etc/timezone 
# emerge --config sys-libs/timezone-data
# nano -w /etc/locale.gen   添加
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030
# local-gen
# eselect locale list
  [1]   C
  [2]   en_US.utf8
  [3]   POSIX
  [4]   zh_CN.gb18030
  [5]   zh_CN.gb2312
  [6]   zh_CN.gbk
  [7]   zh_CN.utf8
  [ ]   (free form)
# eselect locale set 7
# env-update && source /etc/profile && export PS1="(chroot) $PS1"

1.使用 ck-sources 内核

# echo sys-kernel/ck-sources ~amd64 >> /etc/portage/package.accept_keywords
# emerge --ask sys-kernel/ck-sources
# emerge --ask sys-apps/pciutils
# emerge --ask sys-kernel/genkernel

2.使用 gentoo-sources

# emerge --ask sys-kernel/gentoo-sources
# emerge --ask sys-kernel/genkernel

1.完全编译

# cd /usr/src/linux
# genkernel --menuconfig all

2.根据自己的需求编译

# cd /usr/src/linux
# make menuconfig
# make -j8 && make modules_install
# make install
# genkernel --install initramfs
# ls /boot/kernel* /boot/initramfs*
# emerge --ask sys-kernel/linux-firmware
# blkid
# nano -w /etc/fstab   追加
/dev/sda1                                       /boot   vfat    noatime                                         1 2
UUID="df97107b-9ebe-469e-b4a3-8819b110415a"     /       ext4    discard,noatime,commit=600,errors=remount-ro    0 1
# emerge --autounmask-write networkmanager
# etc-update --automode -3
# emerge --ask networkmanager sys-apps/pcmciautils app-admin/sysklogd sys-process/cronie sudo layman net-misc/ntp
# nano -w /etc/suders   取消注释
%wheel ALL=(ALL) ALL
# echo "root:1" | chpasswd
# useradd -m -G users,wheel,audio,cdrom,usb,video,portage -s /bin/bash skylens
# echo "skylens:1" | chpasswd
# echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
# emerge --ask sys-boot/grub:2
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Gentoo
# nano -w /etc/default/grub   取消注释 
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
# ln -sf /proc/self/mounts /etc/mtab
# systemd-machine-id-setup
# systemctl enable NetworkManager
# grub-mkconfig -o /boot/grub/grub.cfg
# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -R /mnt/gentoo
# reboot