20191010
目录
在VirtualBox里安装Gentoo Linux基本系统(amd64+UEFI引导+GPT分区)
#设置时间,解压stage3-amd64.tar.xz和portage.tar.bz2
#用livecd启动修复VritualBox的UEFI引导错误(Grub2)
==================================================
Gentoo Linux
==================================================
下载
官方镜像(amd64):(缓慢,迅雷下载)
Minimal Installation CD: http://distfiles.gentoo.org/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): https://gentoo.osuosl.org//releases/amd64/
Gentoo Packages:https://mirrors.evowise.com/gentoo//releases/snapshots/current/
国内镜像
Netease.com, Inc. http://mirrors.163.com/gentoo/
Tsinghua University https://mirrors.tuna.tsinghua.edu.cn/gentoo
国内镜像(amd64):(推荐,但可能不是最新,迅雷下载)
Minimal Installation CD: http://mirrors.163.com/gentoo/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): http://mirrors.163.com/gentoo/releases/amd64/
Gentoo Packages:http://mirrors.163.com/gentoo/releases/snapshots/current/
Gentoo Linux 手册(amd64):https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/zh-cn
GNOME安装指南:https://wiki.gentoo.org/wiki/GNOME/Guide/zh-cn
KDE安装指南:https://wiki.gentoo.org/wiki/KDE/zh-cn
度盘:https://pan.baidu.com/s/16CKZV1maNJRY8F54N5QzYQ
提取码:ucx9
==================================================
在VirtualBox里安装Gentoo Linux基本系统(amd64+UEFI引导+GPT分区)
#参考
《根据Gentoo handbook安装——gentoo基本系统+UEFI引导》
#注意
1、重启之前,你发现已经耗费数个或数十个小时!(所以用虚拟机的好处是可以暂停和休眠)
2、安装教程中黑色图框里的命令一步一步执行,就可以完成Gentoo的最小安装(非图形化),其中包括可选部分。其他未明显标识的命令和描述作为扩展参考。
3、VirtualBox6.0在安装完Gentoo后,poweroff,再启动,只显示UEFI Interactive Shell画面,教程中有解决方法。
#准备
#创建Gentoo虚拟机
1.4GB内存(默认1GB安装过程够用)
2.32GB硬盘(默认8GB)
PS:
1、vdi文件是可以改名字的,但是改名字之前需要在 管理 -> 虚拟介质管理器,选中vdi文件,释放 -> 删除 -> 保留,vdi文件改名字后,在 虚拟介质管理器 注册,然后在虚拟机存储设置里重新挂载。
2、虚拟机 .vbox 文件导入,控制 -> 注册。
#VirtualBox设置
1.管理 -> 全局设定 -> 扩展,安装官方的Oracle_VM_VirtualBox_Extension_Pack
(Deepin下需要运行gksu-properties,将认证模式由su改为sudo)
#VirtualBox的Gentoo设置
1.常规 -> 系统 -> 主板,开启EFI; -> 主板,选择与实际相同的核心数。
2.常规 -> 显示,显存大小128M。
3.常规 -> 存储,控制器选中 使用主机输入输出(I/O)缓存;*.vdi磁盘如果是固态请选中 固态驱动器。
4.常规 -> 网络 -> 网卡1 -> 高级 -> 端口转发,配置本机转发端口号(例如9022)和虚拟机SSH端口号(默认为22)。
5.常规 -> USB设备,按实际硬件选择控制器。
#下载Minimal Installation CD,Hybrid ISO (LiveDVD),Stage 3,Portage
install-amd64-minimal-*.iso
livedvd-amd64-multilib-*.iso
stage3-amd64-*.tar.xz
portage-*.tar.bz2
#使用ISO编辑软件(UltraISO、Rufus)将官方下载的 stage3-amd64.tar.xz 和 portage.tar.bz2 放入 install-amd64-minimal.iso 和livedvd-amd64-multilib-*.iso里,并设定为VritualBox光盘镜像(节省下载时间)
#使用软件将ISO写入USB,如Windows下的UltraISO、Rufus,Linux下的WoeUSB
#Linux下使用命令将ISO写入USB
if=ISO路径 of=USB路径
#进入livecd,启动SSH
#启动Gentoo虚拟机,进入livecd
livecd ~ #
#设置LiveCD的root密码, 方便使用ssh方式进行安装
passwd
#启动sshd, 使用ssh方式进行安装(这样就可以复制粘贴了,否则你只能手动输入命令……)
/etc/init.d/sshd start
#使用终端连接虚拟机(例如Finalshell)
ssh -p 9022 [email protected]
#或者
ssh -p 9022 root@localhost
#分区、格式化、挂载
#默认分区方案
分区 | 文件系统 | 大小 | 描述 |
---|---|---|---|
/dev/sda1 | (bootloader) | 2M | BIOS boot partition |
/dev/sda2 | ext2 (or fat32 if UEFI is being used) | 128M | Boot/EFI system partition |
/dev/sda3 | (swap) | 512M or higher | Swap partition |
/dev/sda4 | ext4 | Rest of the disk | Root partition |
#用fisk命令查看磁盘挂载情况
fdisk -l
#得知系统磁盘的分区
Disk /dev/sda: 32GiB
#用parted对/dev/sda磁盘进行分区
parted /dev/sda
#变更
(parted)
#查看分区情况
print
#格式化整个磁盘为gpt分区格式(GUID Partition Table)
mklabel gpt
#提示改变分区类型将会移除磁盘上的所有分区,磁盘上的所有数据也将丢失,输入 y 继续执行
#启动分区分配2M,1号grub分区,设置bios_grub启动
mkpart primary 1M 3M
name 1 grub
set 1 bios_grub on
#引导分区分配128M,2号boot分区,设置boot启动(与WIN10共存时,不需要再创建EFI分区)
mkpart primary 3M 131M
name 2 boot
set 2 boot on
#交换分区分配512M(或取1倍的内存容量)
mkpart primary 131M 643M
name 3 swap
#剩下空间分配给根分区
mkpart primary 643M -1
name 4 rootfs
#检查分区情况并退出parted
print
quit
#格式化分区(ESP分区为Fat32格式)(与WIN10共存时,不要mkdir格式化已有的EFI分区)
mkfs.ext2 /dev/sda1
mkfs.fat -F 32 /dev/sda2
mkfs.ext4 /dev/sda4
#格式化并启用swap
mkswap /dev/sda3
swapon /dev/sda3
#进入parted检查分区情况并退出
parted /dev/sda
print
quit
#挂载分区
mount /dev/sda4 /mnt/gentoo
#创建并挂载/boot/efi(不同于官方的/boot,是为了与WIN10共存)
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
#配置网络
#自动配置网络
#查看网络标识(VirtualBox里是enp0s3)
ifconfig
#配置网络(选择DHCP)
net-setup enp0s3
#可选:使用PPTP
#编辑/etc/ppp/pap-secrets或/etc/ppp/chap-secrets让它包含正确的用户名/密码组合
nano -w /etc/ppp/chap-secrets
nano -w /etc/ppp/options.pptp
pptp <server ip>
#手动配置网络
#如果net-setup或pppoe-setup都失败,需要手动加载合适的内核模块。
#找出内核模块提供网络
root #ls /lib/modules/`uname -r`/kernel/drivers/net
#比如,要加载pcnet32模块
modprobe pcnet32
#检查网卡,比如eth0
ifconfig
ifconfig eth0
#列出系统中可用网络接口命名
ls /sys/class/net
#使用DHCP
dhcpcd eth0
#使用DHCP服务器所提供的主机名和域名
dhcpcd -HD eth0
#准备无线网络链接,例如wlp9s0网卡
iw dev wlp9s0 info
iw dev wlp9s0 link
ip link set dev wlp9s0 up
#连接到名为“GentooNode”的开放网络
iw dev wlp9s0 connect -w GentooNode
#设置一个WEP密钥:使用d:前缀:
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
#使用ASCII WEP密钥连接:
iw dev wlp9s0 connect -w GentooNode key 0:some-password
#使用ifconfig和route
#要指派一个IP地址,需要IP地址、广播地址和掩码。替换${IP_ADDR}为正确的IP地址、${BROADCAST}为正确的广播地址以及${NETMASK}为正确的掩码:
ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
#使用route设置路由。替换${GATEWAY}为正确的网络IP地址:
route add default gw ${GATEWAY}
#替换${NAMESERVER1}和${NAMESERVER2}为合适的名称服务器地址:
nano -w /etc/resolv.conf
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
#测试网络
ping www.baidu.com
#设置时间,解压stage3-amd64.tar.xz和portage.tar.bz2
#查询时间(必要)
date
WEB Oct 16 18:28:02 UTC 2019
#设置时间:10月16日 18:28 2019
date 101618282019
#自动设置时间(将向时间服务器显示系统的IP地址和相关网络信息)
emerge --ask net-misc/ntp
ntpd -q -g
#使用df命令查看分区挂载情况
df
#得知dev/sr0挂载到/mnt/cdrom,光盘镜像位置
#查看/mnt/cdrom目录
dir /mnt/cdrom
#找到stage3-amd64.tar.xz和portage.tar.bz2
#解压mnt/cdrom的stage3和portage
time tar xpvf /mnt/cdrom/stage3-amd64.tar.xz -C /mnt/gentoo
time tar xjpvf /mnt/cdrom/portage.tar.bz2 -C /mnt/gentoo/usr
#如果要手动下载stage压缩包
cd /mnt/gentoo
#图形浏览器
使用图形化网页浏览器从主网站下载小节复制stage文件URL,将链接粘贴到命令行中的 wget程序以下载stage tarball:
wget <PASTED_STAGE_URL>
#命令行浏览器
#使用links
links https://www.gentoo.org/downloads/mirrors/
#使用一个HTTP代理,在传入URL上加一个-http-proxy选项:
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
#访问releases/amd64/autobuilds/current-install-amd64-minimal/,选择以下项目,按 d 下载:
stage3-amd64-*.tar.xz
stage3-amd64-*.tar.xz.CONTENTS(包含stage压缩包内的所有文件的列表)
stage3-amd64-*.tar.xz.DIGESTS(包含用不同的算法校验的stage文件)
stage3-amd64-*.tar.xz.DIGESTS.asc(包含不同的stage文件的校验和,加密签名,由Gentoo项目提供)
#按 q 来关闭命令行浏览器
#校验
#使用openssl命令验证SHA512校验值:
openssl dgst -r -sha512 stage3-amd64-<release>.tar.?(bz2|xz)
#使用sha512sum命令验证SHA512校验值:
sha512sum stage3-amd64-<release>.tar.?(bz2|xz)
#验证Whirlpool校验值:
openssl dgst -r -whirlpool stage3-amd64-<release>.tar.?(bz2|xz)
#在ISO文件中验证加密签名的.DIGESTS.asc:
gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}
#解压stage压缩包
tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
#配置编译选项
#检查电脑核心数
cat /proc/cpuinfo | grep processor
#用nano编辑器在make.conf中加入 MAKEOPTS="-jN" ,注意N为CPU数目(CPU核心数)+1 ,完成按 Ctrl+X (保存 y )回车
nano -w /mnt/gentoo/etc/portage/make.conf
#可选:使用mirrorselect选择境像站点,移动光标按 空格键 选择China的镜像,Tab键切换OK和Cancel,回车确认
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
#配置Gentoo ebuild 软件仓库
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
#使用cat命令检查gentoo.conf
cat /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
#复制DNS信息
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
#挂载必要的文件系统
mount --types 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将根位置从/(在安装媒介里)更改成/mnt/gentoo/(在分区里)
chroot /mnt/gentoo /bin/bash
#变更
livecd / #
#使用source命令将一些设置(那些在/etc/profile中的)重新载入到内存中
source /etc/profile
#更改主提示符来帮助我们记住当前会话在一个chroot环境里面。
export PS1="(chroot) ${PS1}"
#变更
(chroot)livecd / #
#配置Portage
#从网站安装ebuild 数据库快照
emerge-webrsync
#阅读新闻条目
#对于news模块,最常用的有三个操作:
1、使用list显示一个可用新闻条目的预览。
2、使用read来阅读新闻条目。
3、使用purge将在新闻条目阅读后删除,并且不能再次阅读。
eselect news list
eselect news read
#更多关于新闻阅读器的信息可以通过其手册页查看:
man news.eselect
#可选:更新Portage ebuild 数据库
emerge --sync
#在慢速的终端上,比如一些framebuffer或者串口控制台,建议使用--quiet选项来加速这个进程:
emerge --sync --quiet
#选择正确的配置文件,注意*为默认项
eselect profile list
#选择配置文件(默认/Desktop是16,最小安装减少编译时间。/Desktop/Gnome是21,/Desktop/Plasma是23)
eselect profile set 16
#更新@world集合
#更新系统的@world set,以便可以构建系统。当系统应用了任何升级,或从任何profile构建stage3后,应用了变化的use标记时,请执行:
time emerge --ask --verbose --update --deep --newuse @world
#安装时如果提示USE changes,输入 y 回车,然后执行
etc-update
#然后输入-3 ,回车,输入 y 回车。执行
time emerge --ask --verbose --update --deep --newuse @world
#(默认约10分钟,gnome环境100多分钟,plasma环境400多分钟)
#配置USE变量
#检查当前活动的USE标记
emerge --ask --info | grep ^USE
#可用的USE标记的完整描述。
less /var/db/repos/gentoo/profiles/use.desc
#在less命令中,可以通过使用↑和↓键来滚动,并且可以按q退出。
#示例,支持DVD、ALSA,以及CD录制的基于KDE系统的USE设置:
nano -w /etc/portage/make.conf
USE="-gtk -gnome qt5 kde dvd alsa cdr"
#忽略所有默认的USE设置并完全由自己管理,需在make.conf中定义USE以-*开头:
USE="-* X acl alsa "
#时区
ls /usr/share/zoneinfo
#选择的时区是Asia/Shanghai
echo "Asia/Shanghai" > /etc/timezone
#重新配置sys-libs/timezone-data包
emerge --config sys-libs/timezone-data
#配置地区
nano -w /etc/locale.gen
#添加US和CN地区及附加字符格式,按Ctrl+X退出,按y保存确认
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK
zh_CN.UTF-8 UTF-8
#生成/etc/locale.gen文件中指定的所有地区
locale-gen
#通过eselect locale list可显示可用的目标
eselect locale list
Available targets for the LANG variable:
.
[5] en_US.utf8
.
[9] zh_CN.utf8
.
#通过eselect locale set VALUE可以设定正确的地区(建议安装完系统再改为中文,否则安装过程中有乱码)
eselect locale set 5
#查询、设置时间(必要)
date
WEB Oct 16 18:28:02 UTC 2019
#设置时间:10月16日 18:28 2019
date 101618282019
#自动设置时间(将向时间服务器显示系统的IP地址和相关网络信息)
time emerge --ask net-misc/ntp
ntpd -q -g
#重新加载环境
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
#安装源码
time emerge --ask sys-kernel/gentoo-sources
#(约3分钟)
#这将在/usr/src/中安装Linux内核源码,并有一个符号连接叫作linux将指向安装的内核源码
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 20 OCT 14 21:38 /usr/src/linux -> linux-4.19.72-gentoo
#为了不丢失特定于CPU的优化,将要求用户更新make.conf(以及可能的package.use)文件。
#安装cpuid2cpuflags(约14分钟)
time emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
cpuid2cpuflags >> /etc/portage/make.conf
nano -w /etc/portage/make.conf
#修改格式
CPU_FLAGS_X86="aes avx mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
#安装pciutils,用lspci命令查看PCI设备
emerge --ask sys-apps/pciutils
#默认:手动配置
emerge --ask sys-apps/pciutils
cd /usr/src/linux
make menuconfig
#以下仅供参考
# 启用devtmpfs支持
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
#Enabling SCSI disk support
Device Drivers --->
SCSI device support --->
<*> SCSI disk support
#选择所需要的文件系统
File systems --->
<*> Second extended fs support
<*> The Extended 3 (ext3) filesystem
<*> The Extended 4 (ext4) filesystem
<*> Reiserfs support
<*> JFS filesystem support
<*> XFS filesystem support
<*> Btrfs filesystem support
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
#选择PPPoE所需要的驱动
Pseudo Filesystems --->
[*] /proc file system support
[*] Tmpfs virtual memory file system support (former shm fs)
#激活SMP支持
rocessor type and features --->
[*] Symmetric multi-processing support
#激活USB输入设备的支持
HID support --->
-*- HID bus support
<*> Generic HID driver
[*] Battery level reporting for HID devices
USB HID support --->
<*> USB HID transport layer
[*] USB support --->
<*> xHCI HCD (USB 3.0) support
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
#Selecting processor types and features
Processor type and features --->
[ ] Machine Check / overheating reporting
[ ] Intel MCE Features
[ ] AMD MCE Features
Processor family (AMD-Opteron/Athlon64) --->
( ) Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
( ) Generic-x86-64
Executable file formats / Emulations --->
[*] IA32 Emulation
#Enable support for GPT
-*- Enable the block layer --->
Partition Types --->
[*] Advanced partition selection
[*] EFI GUID Partition support
#Enable support for UEFI
Processor type and features --->
[*] EFI runtime service support
[*] EFI stub support
[*] EFI mixed-mode support
Firmware Drivers --->
EFI (Extensible Firmware Interface) Support --->
<*> EFI Variable Support via sysfs
#Compiling and installing
make && make modules_install
make install
可选:生成一个initramfs
emerge --ask sys-kernel/genkernel
genkernel --install initramfs
#示例,启用LVM和软件RAID (mdadm) 的支持:
genkernel --lvm --mdadm --install initramfs
#initramfs将存储在/boot/
ls /boot/initramfs*
#使用genkernel自动配置(生手或虚拟机推荐)
time emerge --ask sys-kernel/genkernel
#安装时如果提示 USE changes,输入 y 回车,然后执行
etc-update
#然后输入-3 ,回车,输入 y 回车,然后执行(约5分钟)
time emerge --ask sys-kernel/genkernel
#查看文件系统标签和 UUID 由 LABEL 和 UUID 前缀标识
blkid
#编辑/etc/fstab系统的挂载点(fs可以用 UUID=* 来表示)
nano -w /etc/fstab
<fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda2 /boot/efi vfat noauto,noatime 1 2
/dev/sda3 none swap sw 0 0
UUID=* / ext4 noatime 0 1
#编译内核源码(约100多分钟,CPU100%)
time genkernel all
#记下内核和initrd名字作为编辑引导器配置文件的信息
ls /boot/kernel* /boot/initramfs*
/boot/initramfs-genkernel-x86_64-4.19.72-gentoo /boot/kernel-genkernel-x86_64-4.19.72-gentoo
#内核模块
#配置模块
#一些奇特硬件需要帮助来加载其驱动程序。
#可以在 /etc/modprobe.d/*.conf 文件中,为模块设置添加附加选项。
#用find命令查看所有可用模块,运行下面的。替换“<kernel version>”为刚刚编译的内核版本:
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
#举例,要自动加载3c59x.ko模块(3Com网卡家族的特定驱动),编辑/etc/modules-load.d/network.conf文件并在里面输入模块名字。实际的文件名对 loader 来说无关紧要。
mkdir -p /etc/modules-load.d
nano -w /etc/modules-load.d/network.conf
3c59x
#可选:安装固件(默认已经安装)
emerge --ask sys-kernel/linux-firmware
文件系统信息
关于 fstab
创建/etc/fstab文件
/etc/fstab文件使用一种特殊语法格式。每行都包含六个字段。这些字段之间由空白键(空格键,tab键,或者两者混合使用)分隔。每个字段都有自己的含意:
1.#第一个字段显示要挂载的特殊 block 设备或远程文件系统。 有几种设备标识符可用于特殊块设备节点,包括设备文件路径,文件系统标签,UUID,分区标签以及UUID。
2.第二个字段是分区挂载点,也就是分区应该挂载到的地方
3.第三个字段给出分区所用的文件系统
4.第四个字段给出的是挂载分区时mount命令所用的挂载选项。由于每个文件系统都有自己的挂载选项,我们建议你阅读mount手册(man mount)以获得所有挂载选项的列表。多个挂载选项之间是用逗号分隔的。
5.第五个字段是给dump使用的,用以决定这个分区是否需要dump。一般情况下,你可以把该字段设为0(零)。
第六个字段是给fsck使用的,用以决定系统非正常关机之后文件系统的检查顺序。根文件系统应该为1,而其它的应该为2(如果不需要文件系统自检的话可以设为0)。
nano -w /etc/fstab
文件系统标签和 UUID 由 LABEL 和 UUID 前缀标识,可以使用 blkid 命令查看
blkid
#网络信息
#设置主机名
nano -w /etc/conf.d/hostname
hostname="主机名"
#域名
nano -w /etc/conf.d/net
dns_domain_lo="homenetwork"
#如果你选择不设定域名,你可以去掉登录界面上的这条信息:“This is hostname.(none)”。你只需要修改/etc/issue ,把字符串.\O从该文件里删掉即可。
#NIS域
nano -w /etc/conf.d/net
nis_domain_lo="my-nisdomain"
#配置网络
#安装net-misc/netifrc
emerge --ask --noreplace net-misc/netifrc
#打开 /etc/conf.d/net
nano -w /etc/conf.d/net
#注意,以下举例中的网络标示enp0s3是通过ifconfig命令得到。
#静态IP定义
#设置 config_enp0s3 和 routes_enp0s3 输入IP地址信息和路由信息:
config_enp0s3="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_enp0s3="default via 192.168.0.1"
#要使用DHCP,定义 config_enp0s3:
config_enp0s3="dhcp"
#在启动时自动启用网络链接
#加这些到default运行级别
cd /etc/init.d
ln -s net.lo net.enp0s3
rc-update add net.enp0s3 default
cd /
#如果错误输入eth0,可以进行删除操作
cd /etc/init.d
ln -s -b net.lo net.eth0
rc-update del net.eth0 default
#hosts 文件
(如果不设置,StartX无法运行)
nano -w /etc/hosts
# 定义的是现在系统
IP 主机域名 主机名
127.0.0.1 tux.homenetwork tux localhost
# 定义你网络上的其它系统
IP 主机域名 主机名
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
#系统信息
#设置root密码
passwd
#配置引导和启动(默认)
#Gentoo(在使用OpenRC时)使用/etc/rc.conf配置系统的服务,启动和关闭。
nano -w /etc/rc.conf
#打开/etc/conf.d/keymaps 来处理键盘设置(默认)
nano -w /etc/conf.d/keymaps
#要特别注意keymap这个变量 。如果你选择了错误的KEYMAP,在你敲击键盘的时候会有奇怪的结果。
#时钟设置
#如果你机器上的时钟不用UTC,你需要在配置文件加上clock="local"。否则,你的时钟就有可能出现偏差。
nano -w /etc/conf.d/hwclock
#系统日志工具
emerge --ask app-admin/sysklogd
rc-update add sysklogd default
#可选:Cron守护进程
emerge --ask sys-process/cronie
rc-update add cronie default
#如果使用dcron或fcron,需要执行附加的初始化命令:
(chroot)livecd / # crontab /etc/crontab
#可选:文件索引
emerge --ask sys-apps/mlocate
#可选:远程访问
#要在安装后远程访问系统,请将sshdinit脚本添加到 default 运行级别:
# rc-update add sshd default
#如果需要终端访问(在远程服务器的情况下这是可能的),请在 /etc/inittab中取消注释控制台部分:(主机COM口)
nano -w /etc/inittab
# SERIAL CONSOLES,端口请自行修改
s0:12345:respawn:/sbin/agetty 115200 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 115200 ttyS1 vt100
#可选:文件系统工具
(识别Windows的NTFS分区要安装sys-fs/ntfs3g)
emerge --ask sys-fs/e2fsprogs
emerge --ask sys-fs/xfsprogs
emerge --ask sys-fs/reiserfsprogs
emerge --ask sys-fs/jfsutils
emerge --ask sys-fs/dosfstools
emerge --ask sys-fs/btrfs-progs
emerge --ask sys-fs/ntfs3g
#网络工具
#安装DHCP客户端
emerge --ask net-misc/dhcpcd
#可选:安装PPPoE客户端(非常漫长,不推荐)
time emerge --ask net-dialup/ppp
#可选:安装无线网络工具
time emerge --ask net-wireless/iw net-wireless/wpa_supplicant
#(默认约5分钟,桌面环境约100多分钟)
#选择引导器
#默认:GRUB2
#MBR用户
#当使用只支持MBR分区表的旧版BIOS系统时,无需进行其他配置即可安装GRUB:
emerge --ask --verbose sys-boot/grub:2
#UEFI用户
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
time emerge --ask sys-boot/grub:2
#(默认约6分钟,桌面环境约10多分钟)
#如果GRUB2在未先添加GRUB_PLATFORMS="efi-64"到make.conf时就已经emerge过,可以添加这一行(像上面显示那样)然后通过--update --newuse options to emerge:选项来重新计算 world package set :
emerge --ask --update --newuse --verbose sys-boot/grub:2
#Install
#通过grub-install命令安装GRUB2所需的文件到/boot/grub/目录
#使用BIOS时:
grub-install /dev/sda
#使用UEFI时:
#确保EFI系统分区在运行grub-install“之前”已经挂载。
#检查/boot/efi是否存在,没有就创建(不同于官方的/boot,是为了与WIN10共存)
dir /boot
mkdir -p /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi
#重要
如果grub_install返回类似的错误Could not prepare Boot variable: Read-only file system
,可能需要将efivars特殊挂载重新安装为读写才能成功:
mount -o remount,rw /sys/firmware/efi/efivars
#一些主板制造商似乎只支持EFI系统分区(ESP)中.EFI文件的 /efi/boot/目录。 GRUB安装程序可以使用 --removable选项自动执行此操作。 在运行以下命令之前验证是否已安装ESP。 假设ESP安装在/boot(如前所述),执行:
grub-install --target=x86_64-efi --efi-directory=/boot --removable
这将创建UEFI规范定义的默认目录,然后将 grubx64.efi 文件复制到由同一规范定义的“默认”EFI文件位置。
#注意:如果是安装win10 与gentoo 双系统,需要另外安装 os-prober 用以检测 win10 的引导:
emerge --ask sys-boot/os-prober
etc-update
#然后输入-3 ,回车,输入 y (必须输入y再回车),回车。
emerge --ask sys-boot/os-prober
os-prober
#再一次配置
#要生成最终的GRUB2配置,运行grub-mkconfig命令
grub-mkconfig -o /boot/grub/grub.cfg
#修复VritualBox的UEFI引导错误
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
#备选:LILO
#备选:efibootmgr
#备选: Syslinux
#重启系统
#退出chroot环境并unmount全部已持载分区
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
#当然,别忘了移除可引导CD,否则可能再次从CD启动,而不是新的Gentoo系统。
#当重启进全新安装的Gentoo环境,继续完成结束Gentoo安装。
reboot
#用户管理
#添加一个日常使用的用户
#在Unix/Linux系统中,用root进行工作是一件危险的事情,应该尽量避免。因此我们强烈推荐您为日常使用添加一个普通用户。
#用户所属的组定义了其可以执行的活动。下表中列出了许多您可能希望使用的重要组:
Group Description
audio 允许使用声音设备
cdrom 允许直接使用光驱设备
floppy 允许直接使用软驱
games 允许运行游戏
portage 能够访问portage受限资源。
usb 允许使用USB设备
video 允许使用视频采集设备和硬件加速
wheel 可以使用su.
#比如,创建一个叫作larry的wheel、users、audio和video组的成员用户,首先作为root登录(只有root能创建用户)并运行useradd:
Login:root
Password: (输入root 密码)
root # useradd -m -G users,wheel,audio,video -s /bin/bash larry
root # passwd larry
Password: (输入larry的密码)
Re-enter password: (重复输入密码)
#如果一个用户仍需要以root身份做一些任务,他们可以使用su -来临时得到root权限。另一种方式是使用sudo包,如果配置正确的话,非常安全。
#虚拟机备份
#建议Poweroff一次,再启动,确认引导正确。然后在Poweroff后对虚拟机生存快照备份。
=======================================================
修复引导
#用livecd启动修复VritualBox的UEFI引导错误(Grub2)
(前提是你已经按照官方教程安装好Gentoo,然后发现VirtualBox关机后无法UEFI启动,只显示UEFI Interactive Shell画面)
mount /dev/sda4 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi/EFI/boot
mount /dev/sda2 /mnt/gentoo/boot/efi
cp /mnt/gentoo/boot/efi/EFI/gentoo/grubx64.efi /mnt/gentoo/boot/efi/EFI/boot/bootx64.efi
reboot
#用livecd启动修复引导错误(Grub2)
disk -l
parted /dev/sda
print
quit
#得知boot分区是/dev/sda2,/分区是/dev/sda4
mount /dev/sda4 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
mount --types 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 /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
blkid
nano -w /etc/fstab
#确认fstab表正确
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory /boot
#注意:如果是安装win10 与gentoo 双系统,需要另外安装 os-prober 用以检测 win10 的引导:
emerge --ask sys-boot/os-prober
#安装时如果提示USE changes,输入 y 回车,然后执行
etc-update
#然后输入-3 ,回车,输入 y 回车,然后执行
emerge --ask sys-boot/os-prober
os-prober
grub-mkconfig -o /boot/grub/grub.cfg
#修复VritualBox的UEFI引导错误(Grub2)
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot
#系统内修复引导(Grub2)
disk -l
parted /dev/sda
print
quit
#得知boot分区是/dev/sda2
mkdir -p /boot/efi/EFI/gentoo
mount /dev/sda2 /boot/efi
blkid
nano -w /etc/fstab
#确认fstab表正确
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory /boot
grub-mkconfig -o /boot/grub/grub.cfg
#修复VritualBox的UEFI引导错误
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
reboot
=======================================================
安装Gentoo Linux+Plasma桌面环境
#参考
KDE https://wiki.gentoo.org/wiki/KDE/zh-cn#.E4.BC.9A.E8.AF.9D.E7.AE.A1.E7.90.86.E5.99.A8
X server https://wiki.gentoo.org/wiki/X_server
Xorg https://wiki.gentoo.org/wiki/Xorg/Guide/zh-cn
Consolekit https://wiki.gentoo.org/wiki/ConsoleKit
Eudev https://wiki.gentoo.org/wiki/Eudev
D-Bus https://wiki.gentoo.org/wiki/D-Bus
Polkit https://wiki.gentoo.org/wiki/Polkit
Udisks https://wiki.gentoo.org/wiki/Udisks
#准备
...
... 此段的过程参考非图形化的安装教程
...
#LiveDVD启动,无密码登录,打开Konsole,设置gentoo密码, 方便使用ssh方式进行安装
passwd
#获得root权限
su -
#或sudo -i
#启动sshd, 使用ssh方式进行安装(这样就可以复制粘贴了,否则你只能手动输入命令……)
/etc/init.d/sshd start
#使用终端连接虚拟机(例如Finalshell),用户gentoo
ssh -p 9022 [email protected]
...
... 此段的过程参考非图形化的安装教程
...
#挂载必要的文件系统
mount /dev/sda4 /mnt/gentoo
#与WIN10共存时,直接mount WIN10的efi分区
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
mount --types 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 /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
...
... 此段的过程参考非图形化的安装教程
...
...
#KDE
#KDE是一个自由软件社区,其提供了一组应用程序,包括流行的 Plasma 桌面环境。
#Gentoo对KDE项目的支持非常好,包括对KDE Frameworks 5,Plasma 5和Applications的全面支持,以及其他各种各样基于KDE的软件。
#配置
#Profile选择/desktop/plasma
eselect profile list
eselect profile set *
#更新@world集合(约478分钟)
time emerge --ask --verbose --update --deep --newuse @world
#安装时如果提示USE changes,输入 y 回车,然后执行
etc-update
#然后输入-3 ,回车,输入 y 回车。执行
time emerge --ask --verbose --update --deep --newuse @world
...
... 系统安装完成重启
... 新建新用户
... 此段的过程参考非图形化的安装教程
... PS:emerge加入--quiet简洁输出
...
#重启
reboot
#获得root权限
su -
#安装sudo
time emerge --ask app-admin/sudo
#使wheel组的成员能够执行的任何命令
nano -w /etc/sudoers
## Uncommet to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
#安装openssh(默认已安装)
time emerge --ask --changed-use net-misc/openssh
#使用终端连接虚拟机(例如Finalshell)
ssh -p 9022 新用户@127.0.0.1
#服务
#在接下来的章节里,按着安装步骤,这些服务将会默认自动选上,具体的取决于之前选择的profile。但在第一次启动KDE Plasma之前,还是需要将它们设置妥当。为了不会使用默认设置,建议在安装KDE Plasma或者KDE应用程序之前,通过emerge ‑‑oneshot先安装这些服务,以便Portage将它们考虑进去。
#会话管理器
#从下列中只选一个:
elogind: 从systemd项目中提取的单独的logind服务包,用于OpenRC或其他初始化系统。
systemd: 使用systemd提供的会话管理器,systemd用户不需要为此做更多的工作。
consolekit: Framework for defining and tracking users, login sessions, and seats. It is currently default for the desktop/plasma profile.
为了支持 Wayland,我们需要一个logind实现。Gentoo提供elogind作为systemd的替代。
#设备管理器
从下列中只选一个:
eudev: Gentoo的udev分支,旨在获得更好的兼容性。desktop/plasma profile默认使用eudev。
udev: 支持udev Linux动态和固定设备命名。
systemd: 使用systemd提供的设备管理器,systemd用户不需要为此做更多的工作。
#杂项
D-Bus: 使用D-Bus消息总线系统。
polkit: 启用polkit框架以获得控制全局服务的权限。
udisks: 启用对一些存储相关服务的支持。
#本教程中,会话管理器选择consolekit,设备管理器选择eudev,其他还有D-Bus、polkit、udisks。
#但即使不设置这些,也不影响进入Plasma桌面。
#添加consolekit、dbus、polkit和udisks到USE标记
nano -w /etc/portage/make.conf
USE="consolekit"
USE="dbus"
USE="policykit"
USE="udisks"
time emerge --ask --changed-use --deep @world
(约14分钟)
#安装D-Bus
emerge --ask ‑‑oneshot sys-apps/dbus
#启动D-Bus
/etc/init.d/dbus start
#添加为默认运行级别:(可选)
rc-update add dbus default
#安装polkit
#先决条件:D-Bus已经配置完成。
#确认
find / -name .config
nano -w /usr/src/linux-4.19.72-gentoo/.config
#按 Ctrl+W 查找到 CONFIG_FUTEX=y 这个选项。
#之前运行genkernel all的话,就会有这个选项。手动配置没有的话,请在Live CD下找到该文件编译,然后再重新编译一次,最后再把该文件加载到引导中去。
#没有的话,会导致CPU高负荷。
time emerge --ask ‑‑oneshot sys-auth/polkit
(约12分钟)
#配置polkit
#The actions files are in /usr/share/polkit-1/actions, the rules files are in /usr/share/polkit-1/rules.d and /etc/polkit-1/rules.d.
#Rules
#Rules redefine who's authorized for an action. The rules files begin with a number and are processed in lexical order. The first file with a matching rule is used. Own files should have a low number, like 10. The filenames have the .rules suffix.
#举例,让wheel群组的用户也可以使用管理员权限
mkdir -p /etc/polkit-1/rules.d
nano -w /etc/polkit-1/rules.d/10-admin.rules
polkit.addAdminRule(function(action, subject) {
return ["unix-group:wheel"];
});
#举例,允许用户larry可以挂载磁盘
nano -w /etc/polkit-1/rules.d/10-udisks.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount" &&
subject.user == "larry") {
return polkit.Result.YES;
}
});
#配置udisk
#先决条件:D-Bus和polkit已配置完成。
cd /usr/src/linux
make menuconfig
#udisks1
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
[*] USB support --->
<*> Support for Host-side USB
[*] USB runtime power management (autosuspend) and wakeup
File Systems -->
Native Language Support -->
<*> NLS UTF8
#udisks2
General setup --->
[*] Support for paging of anonymous memory (swap)
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
File Systems -->
Native Language Support -->
<*> NLS UTF8
Pseudo filesystems --->
-*- Tmpfs virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists
#安装eudev
time emerge --ask ‑‑oneshot sys-fs/eudev
#配置eudev
#RC的名字是udev,而不是eudev。它需要在sysinit运行级别中注册:
rc-update add udev sysinit
#提示:从syfs /udev-init-scripts版本29开始,udev-trigger也应该添加到sysinit运行级别。
#如果系统使用multilib,例如,有abi_x86_64(32)使用标志对旧的udev包是活动的,那么不要忘记更改它:(当然如果是32的,请把64改为32即可。)
nano -w /etc/protage/package.use
# sys-fs/udev abi_x86_64
sys-fs/eudev abi_x86_64
#为了保持经典的命名,可以在/etc/udev/rules.d中使用相同命名的空文件覆盖此规则d目录:
touch /etc/udev/rules.d/80-net-name-slot.rules
#使用新的“可预测的”命名,新的网络接口命名约定不一样,因此需要重新链接接口。使用/etc/init.d/net.lo作为需要添加的任何接口名称的链接目标。请确保将下面命令中的替换为系统中出现的以太网接口名称。通过运行ifconfig命令可以发现存在哪些接口:
ifconfig
#为/etc/init中的现有接口创建符号链接:
ln -s /etc/int.d/net.lo /etc/init.d/net/<界面名称>
ln -s /etc/conf.d/net.lo /etc/conf.d/net/<界面名称>
将脚本添加到默认运行级别
re-update add net.<界面名称> default
#配置ConsoleKit
#先决条件:D-Bus已经配置完成。
cd /usr/src/linux
make menuconfig
#Required options for ConsoleKit
General setup --->
[*] Auditing support
[*] Enable system-call auditing support
#X.Org server
https://wiki.gentoo.org/wiki/Xorg/Guide
#Intel显卡设置
https://wiki.gentoo.org/wiki/Intel#Kernel
#NVIDIA、AMD/ATI Radeon、AMDGPU显卡设置
https://wiki.gentoo.org/wiki/Xorg/Guide
#检测显卡信息
lspci | grep -i VGA
#检测输入设备信息
portageq envvar INPUT_DEVICES
#安装xorg-drivers
(约14分钟)
time emerge --ask x11-base/xorg-drivers
#安装xorg-server
(约7分钟)
time emerge --ask x11-base/xorg-server
#更新系统变量,更新profile配置文件
env-update
source /etc/profile
#尝试用startx运行 X server
https://wiki.gentoo.org/wiki/Xorg/Guide
#调整 X 设置
#设置屏幕分辨率
#多显示器
#配置键盘
#安装plasma-meta
(116约分钟)
time emerge --ask kde-plasma/plasma-meta
#小工具
#kde-plasma/kdeplasma-addons 提供了很多有用的小工具
time emerge --ask kde-plasma/kdeplasma-addons
#显示管理器
#无显示管理器
#系统托盘
#Pidgin
#KWallet 自动解锁
#SSH/GPG 密钥启动/关闭脚本
#使用root权限运行 GUI 应用
#KDE Applications
time emerge --ask kde-apps/kde-apps-meta
#本地化
Plasma-5 和应用程序的每个包都提供了本地化文件。可以在系统设置中启用本地化。
KDE PIM
KDE PIM 是一整套用于管理个人信息的应用程序,包括邮件,日历,联系人等。它有几个可选的运行时依赖来扩展其功能:
病毒检测:app-antivirus/clamav
垃圾邮件过滤:mail-filter/bogofilter 或 mail-filter/spamassassin
time emerge --ask app-antivirus/clamav
time emerge --ask mail-filter/bogofilter
或 time emerge --ask mail-filter/spamassassin
#安装kde-frameworks
(约29分钟)
time emerge --ask kde-frameworks/plasma
#更多KDE软件
最主要的 KDE 应用程序在 Porage 树的 kde-apps 和kde-misc 分类中。
#将sddm设置为默认的显示管理器
time emerge --ask x11-misc/sddm
rc-update add xdm default
nano -w /etc/conf.d/xdm
#DISPLAYMANAGER="xdm"
DISPLAYMANAGER="sddm"
##安装konsole或Xterm终端
time emerge --ask kde-apps/konsole
time emerge --ask x11-terms/xterm
#安装virtualbox附加组件(约20分钟)
time emerge --ask app-emulation/virtualbox-guest-additions
#字体
emerge --ask wqy-zenhei
emerge --ask wqy-microhei
#浏览器
#安装Chrome(约17分钟)
time emerge --ask www-client/google-chrome
#提示license Change,输入 y 回车。然后执行
etc-update
#然后输入-3 ,回车,输入 y 回车。执行
time emerge --ask www-client/google-chrome
#安装火狐浏览器
emerge --ask www-client/firefox-bin
#安装Opera
emerge --ask www-client/opera
#重启
reboot
#重启,开机grub菜单,按 e ,在以下段落中添加 single ,按 F10 boot
linux /kernel-genkernel...-gentoo single root=...
#登录Gentoo Linux(Plasma桌面环境)
#登录画面左上角Sessionx选择Plasma on xorg
#检查用户larry的video cards权限
getfacl /dev/dri/card0 | grep larry
user:larry:rw-
#将用户添加到video group:
gpasswd -a larry video
#PS:虚拟机网卡设置桥接模式,启动gentoo虚拟机,登录路由器知道gentoo虚拟机的IP。SSH IP登录gentoo虚拟机:
ssh IP
=======================================================