赞
踩
20191010-20221006
By wdhuag
目录
在VirtualBox里安装Gentoo Linux基本系统(amd64+UEFI引导+GPT分区)
4、下载Minimal Installation CD,Hybrid ISO (LiveDVD),Stage 3,Portage
2、手动配置网络(如果net-setup或pppoe-setup都失败,需要手动加载合适的内核模块。)
解压stage3-amd64.tar.xz和portage.tar.bz2
3、使用source命令将一些设置(那些在/etc/profile中的)重新载入到内存中
4、更改主提示符来帮助我们记住当前会话在一个chroot环境里面。
1、添加US和CN地区及附加字符格式,按Ctrl+X退出,按y保存确认
3、通过eselect locale list可显示可用的目标
4、通过eselect locale set VALUE可以设定正确的地区
6、查看文件系统标签和 UUID 由 LABEL 和 UUID 前缀标识
3、打开/etc/conf.d/keymaps 来处理键盘设置(默认)
2、通过grub-install命令安装GRUB2所需的文件到/boot/grub/目录
1、建议Poweroff一次,再启动,确认引导正确。然后在Poweroff后对虚拟机生存快照备份。
1、用livecd启动修复VritualBox的UEFI引导错误(Grub2)
1、(可选)安装consolekit、eudev、D-Bus、polkit、udisks
官方镜像(amd64):(缓慢,迅雷下载)
Minimal Installation CD: http://distfiles.gentoo.org/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): https://gentoo.osuosl.org//releases/amd64/
Gentoo Packages:ZeroBounce - Email Validation Service and Deliverability Toolkit
国内镜像
Netease.com, Inc. Index of /gentoo/
Tsinghua University Index of /gentoo/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
国内镜像(amd64):(推荐,但可能不是最新,迅雷下载)
Minimal Installation CD: Index of /gentoo/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): Index of /gentoo/releases/amd64/
Gentoo Packages:http://mirrors.163.com/gentoo/releases/snapshots/current/
Gentoo Linux 手册(amd64):Gentoo Linux 手册:安装Gentoo - Gentoo Wiki
GNOME安装指南:GNOME/指南 - Gentoo Wiki
KDE安装指南:KDE - Gentoo Wiki
度盘:百度网盘 请输入提取码
提取码:ucx9
《根据Gentoo handbook安装——gentoo基本系统+UEFI引导》
1、重启之前,你发现已经耗费数个或数十个小时!(所以用虚拟机的好处是可以暂停和休眠)
2、安装教程中黑色图框里的命令一步一步执行,就可以完成Gentoo的最小安装(非图形化),其中包括可选部分。其他未明显标识的命令和描述作为扩展参考。
3、VirtualBox6.0在安装完Gentoo后,poweroff,再启动,只显示UEFI Interactive Shell画面,教程中有解决方法。
1.4GB内存(默认1GB安装过程够用)
2.32GB硬盘(默认8GB)
PS:
1、vdi文件是可以改名字的,但是改名字之前需要在 管理 -> 虚拟介质管理器,选中vdi文件,释放 -> 删除 -> 保留,vdi文件改名字后,在 虚拟介质管理器 注册,然后在虚拟机存储设置里重新挂载。
2、虚拟机 .vbox 文件导入,控制 -> 注册。
1.管理 -> 全局设定 -> 扩展,安装官方的Oracle_VM_VirtualBox_Extension_Pack
(Deepin下需要运行gksu-properties,将认证模式由su改为sudo)
1.常规 -> 系统 -> 主板,开启EFI; -> 主板,选择与实际相同的核心数。
2.常规 -> 显示,显存大小128M。
3.常规 -> 存储,控制器选中 使用主机输入输出(I/O)缓存;*.vdi磁盘如果是固态请选中 固态驱动器。
4.常规 -> 网络 -> 网卡1 -> 高级 -> 端口转发,配置本机转发端口号(例如9022)和虚拟机SSH端口号(默认为22)。
5.常规 -> USB设备,按实际硬件选择控制器。
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路径
1、启动Gentoo虚拟机,进入livecd
livecd ~ #
2、设置LiveCD的root密码, 方便使用ssh方式进行安装
passwd
3、启动sshd, 使用ssh方式进行安装(这样就可以复制粘贴了,否则你只能手动输入命令……)
/etc/init.d/sshd start
4、使用终端连接虚拟机(例如Finalshell)
ssh -p 9022 root@127.0.0.1
或者
ssh -p 9022 root@localhost
1、默认分区方案
分区 | 文件系统 | 大小 | 描述 |
---|---|---|---|
/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 |
2、用fisk命令查看磁盘挂载情况
fdisk -l
得知系统磁盘的分区:
Disk /dev/sda: 32GiB
3、用parted对/dev/sda磁盘进行分区
parted /dev/sda
4、变更
(parted)
5、查看分区情况
print
6、格式化整个磁盘为gpt分区格式(GUID Partition Table)
mklabel gpt
提示改变分区类型将会移除磁盘上的所有分区,磁盘上的所有数据也将丢失,输入 y 继续执行
7、启动分区分配2M,1号grub分区,设置bios_grub启动
- mkpart primary 1M 3M
- name 1 grub
- set 1 bios_grub on
8、引导分区分配128M,2号boot分区,设置boot启动(与WIN10共存时,不需要再创建EFI分区)
- mkpart primary 3M 131M
- name 2 boot
- set 2 boot on
9、交换分区分配512M(或取1倍的内存容量)
- mkpart primary 131M 643M
- name 3 swap
10、剩下空间分配给根分区
- mkpart primary 643M -1
- name 4 rootfs
11、检查分区情况并退出parted
- print
- quit
12、格式化分区(ESP分区为Fat32格式)(与WIN10共存时,不要mkdir格式化已有的EFI分区)
- mkfs.ext2 /dev/sda1
- mkfs.fat -F 32 /dev/sda2
- mkfs.ext4 /dev/sda4
13、格式化并启用swap
- mkswap /dev/sda3
- swapon /dev/sda3
14、进入parted检查分区情况并退出
- parted /dev/sda
- print
- quit
15、挂载分区
mount /dev/sda4 /mnt/gentoo
16、创建并挂载/boot/efi(不同于官方的/boot,是为了与WIN10共存)
- mkdir -p /mnt/gentoo/boot/efi
- mount /dev/sda2 /mnt/gentoo/boot/efi
A、查看网络标识(VirtualBox里是enp0s3)
ifconfig
B、配置网络(选择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>
A、找出内核模块提供网络
root # ls /lib/modules/`uname -r`/kernel/drivers/net
比如,要加载pcnet32模块
modprobe pcnet32
检查网卡,比如eth0
ifconfig
ifconfig eth0
列出系统中可用网络接口命名
ls /sys/class/net
B、使用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
要指派一个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
- 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
得知dev/sr0挂载到/mnt/cdrom,光盘镜像位置
dir /mnt/cdrom
找到stage3-amd64.tar.xz和portage.tar.bz2
- time tar xpvf /mnt/cdrom/stage3-amd64.tar.xz -C /mnt/gentoo
- time tar xjpvf /mnt/cdrom/portage.tar.bz2 -C /mnt/gentoo/usr
cd /mnt/gentoo
使用图形化网页浏览器从主网站下载小节复制stage文件URL,将链接粘贴到命令行中的 wget程序以下载stage tarball:
wget <PASTED_STAGE_URL>
A、使用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 来关闭命令行浏览器
B、校验
使用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,}
C、解压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
移动光标按 空格键 选择China的镜像,Tab键切换OK和Cancel,回车确认
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
- 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 /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
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
1、使用chroot将根位置从/(在安装媒介里)更改成/mnt/gentoo/(在分区里)
chroot /mnt/gentoo /bin/bash
livecd / #
source /etc/profile
export PS1="(chroot) ${PS1}"
(chroot)livecd / #
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 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多分钟)
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
echo "Asia/Shanghai" > /etc/timezone
emerge --config sys-libs/timezone-data
nano -w /etc/locale.gen
- en_US ISO-8859-1
- en_US.UTF-8 UTF-8
- zh_CN GBK
- zh_CN.UTF-8 UTF-8
locale-gen
eselect locale list
Available targets for the LANG variable:
.
[5] en_US.utf8
.
[9] zh_CN.utf8
.
建议安装完系统再改为中文,否则安装过程中有乱码
eselect locale set 5
- date
- WEB Oct 16 18:28:02 UTC 2019
1、设置时间:
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)文件。
(约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"
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*
time emerge --ask sys-kernel/genkernel
安装时如果提示 USE changes,输入 y 回车,然后执行
etc-update
然后输入-3 ,回车,输入 y 回车,然后执行(约5分钟)
time emerge --ask sys-kernel/genkernel
blkid
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
- 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从该文件里删掉即可。
- nano -w /etc/conf.d/net
- nis_domain_lo="my-nisdomain"
A、安装net-misc/netifrc
emerge --ask --noreplace net-misc/netifrc
B、打开 /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"
C、要使用DHCP,定义网络标示 :
config_enp0s3
config_enp0s3="dhcp"
D、在启动时自动启用网络链接
加这些到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
(如果不设置,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
passwd
Gentoo(在使用OpenRC时)使用/etc/rc.conf配置系统的服务,启动和关闭。
nano -w /etc/rc.conf
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
- 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
emerge --ask net-misc/dhcpcd
(非常漫长,不推荐)
time emerge --ask net-dialup/ppp
time emerge --ask net-wireless/iw net-wireless/wpa_supplicant
(默认约5分钟,桌面环境约100多分钟)
A、MBR用户
当使用只支持MBR分区表的旧版BIOS系统时,无需进行其他配置即可安装GRUB:
emerge --ask --verbose sys-boot/grub:2
B、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
A、使用BIOS时:
grub-install /dev/sda
B、使用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
- mkdir -p /boot/efi/EFI/boot
- cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
(可选)LILO
(可选)efibootmgr
(可选)Syslinux
- 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包,如果配置正确的话,非常安全。
(前提是你已经按照官方教程安装好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
2、用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
- 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
X server X server - Gentoo Wiki
Consolekit https://wiki.gentoo.org/wiki/ConsoleKit
Eudev eudev - Gentoo Wiki
D-Bus D-Bus - Gentoo Wiki
Polkit polkit - Gentoo Wiki
Udisks udisks - Gentoo Wiki
...
... 此段的过程参考非图形化的安装教程
...
LiveDVD启动,无密码登录,打开Konsole,设置gentoo密码, 方便使用ssh方式进行安装
passwd
获得root权限
su -
或sudo -i
启动sshd, 使用ssh方式进行安装(这样就可以复制粘贴了,否则你只能手动输入命令……)
/etc/init.d/sshd start
使用终端连接虚拟机(例如Finalshell),用户gentoo
ssh -p 9022 gentoo@127.0.0.1
...
... 此段的过程参考非图形化的安装教程
...
挂载必要的文件系统
- 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是一个自由软件社区,其提供了一组应用程序,包括流行的 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桌面。
A、添加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分钟)
B、安装D-Bus
emerge --ask ‑‑oneshot sys-apps/dbus
启动D-Bus
/etc/init.d/dbus start
添加为默认运行级别:(可选)
rc-update add dbus default
C、安装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;
}
});
D、配置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
E、安装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
F、配置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显卡设置
intel - Gentoo Wiki
NVIDIA、AMD/ATI Radeon、AMDGPU显卡设置
Xorg/Guide - Gentoo Wiki
检测显卡信息
lspci | grep -i VGA
检测输入设备信息
portageq envvar INPUT_DEVICES
(约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 设置
设置屏幕分辨率
多显示器
配置键盘
(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
(约29分钟)
time emerge --ask kde-frameworks/plasma
更多KDE软件
最主要的 KDE 应用程序在 Porage 树的 kde-apps 和kde-misc 分类中。
- 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=...
登录画面左上角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
END
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。