2019-03-02 14:18:51 qq_22263683 阅读数 499

        本教程是记录电脑已有win10系统的情况下安装ubuntu18.04的过程。

硬件环境

        戴尔5675台式电脑

        16G内存 128GB固态硬盘+1T机械硬盘

UEFI启动+GPT分区

        桌面上右键点击我的电脑/计算机/这台电脑,选择”管理”—“磁盘管理”;右键“磁盘0”,在弹出的菜单中如果有灰色的“转换成MBR磁盘”,则电脑是UEFI启动的,并且磁盘是GPT分区。

        具体参考博客https://blog.csdn.net/li_qing_xue/article/details/79228867了解。

        注:如遇出错,电脑开机图标出现前狂按F2可以进入BIOS,其中有恢复默认设置的选项。

准备工作

  1. 关闭电脑的快速启动:在“设置”—“电源”,将“启用快速启动”取消。
  2. 关闭电脑的安全启动:开机前按F2进入BIOS,在boot选项中将Secure Boot选择为Disabled。
  3. 给机械硬盘分出了137G未分配空间。

制作U盘

        本人用一个8G的SD卡以及读卡器充当U盘,首先格式化。然后使用UItraISO写入事先下载好的ubuntu18.04.iso文件。

U盘启动

        电脑开机图标出现前狂按F12,选择U盘那一项,便可以进入ubuntu的安装。

安装ubuntu

        安装时断网。分配了2048MB给启动引导空间,选择用于“保留BIOS启动区域”;分配了16GB给交换空间,50GB给/根目录,剩余大约70GB给/home目录。

        具体参考博客https://blog.csdn.net/Jesse_Mx/article/details/61425361进行安装和配置。

2016-01-17 13:32:21 megaarthur 阅读数 8967

因为预装win8的系统都是UEFI+GPT的引导,所以用支持UEFI的Linuxmint 17.3与win8.1做双系统比较方便,并能方便的用rEFind做一个间接引导的界面,比较好看方便,遂写此文。

需要工具:

  • rufus-2.2:制作UEFI模式引导的U盘启动盘
  • winPE
  • DiskGenius:硬盘分区
  • Linuxmint 17.3
  • rEFind

介绍步骤前,最好先了解一下UEFI+GPT的原理,其实这里百度贴吧的一篇已经讲得蛮详细了, [ 这里 ]。

不过有点麻烦,我这里更简洁直接些,原理的介绍也直接引用它。

UEFI+GPT模式的启动原理,首先我们来回顾下BIOS引导MBR分区的流程,BIOS开机自检——》读取硬盘MBR分区的主引导记录—》控制权交给引导程序-》引导程序根据安装时候的配置读取各分区记录—》根据各分区已经有的系统情况,列出启动目录—》根据用户选择,启动选择的引导文件启动用户选择的系统。
现在我们来说说UEFI的情况,主板上的UEFI模块—》硬盘内的第一个fat分区,如果分区内有EFI这个文件目录,就根据EFI文件目录的引导文件加载各类型的驱动和引导文件,启动系统同时完成自检。(如果第一个fat分区没有EFI目录则选择第二个,如果第一块硬盘没有,择选择第二块,或者U盘以此类推)

第一步:用DiskGenius给Linux划分分区。可以看到,C盘之前的三个小盘,分别是WINRE(预装系统系统恢复用)、ESP(UEFI引导!)、MBR(主引导区,用来兼容BOIS+MBR模式),其中ESP是我们做双系统最重要的,存放所有系统的引导。最后一个分区为RECOVERY,也是厂商留的,不管它。可以看到我为Linux预先分好了分区8和9,分别作为swap和主分区。

第二步:用rufus-2.2软件制作UEFI模式引导的winpe和Linuxmint安装盘(这步很重要!)(UEFI模式引导的U盘必须是一个Fat32格式并包含Boot和EFI文件夹,来存放系统的引导文件,为.efi格式),按照图中选项设置,注意分区方案要选对,并在下面选择相应的ISO,点开始,制作完即可。(为什么这步重要,因为本人起初制作的不是UEFI启动的U盘,是MBR方式的,结果安装linux的过程中给ESP分区写的很乱,走了很大的弯路,最后好在有备份推导重来。。。)

第三步:也很重要,用winpe启动,(用U盘启动时,由于做的就是UEFI引导的,所以不用把BOIS中的Secure Boot关上,不用动就行,然后选择U盘启动时,U盘名字前是带有UEFI前缀的),备份ESP分区中的内容,这里图片只给一个简单目录,到时候全部备份就好了。主要就是EFI文件夹。
这里写图片描述

第四步:U盘启动,安装Linuxmint 17.3 。这个过程教程太多,就不上图了,值得注意的就是选择自定义安装模式,把swap分区按到之前分好的分区8,把分区9挂载到根目录上。然后不要忽略下面选择安装引导器的位置,这里就直接选择ESP分区!linux不会覆盖它,而是添加一个Ubuntu目录,专门用grub引导linux,装完Linux后再用winpe启动,看到的ESP分区目录结构就应该是这个样子。
这里写图片描述


安装好Linuxmint后,这时查看BIOS的自启动项,应该还是windows boot manager在第一个,就是说开机还是直接启动win8.1,其在ESP中的启动过程大概是:启动程序先找到Boot/bootx64.efi,接着被引导到EFI/Microsoft/bootmgfw.efi,再被引导读取EFI/Microsoft/BCD,然后再被引导到C盘中windows系统相关的引导程序……为了能够在开机时选择系统,需要用到rEFind(启动管理程序),为了不更改系统原有的启动顺序,即引导会先找Boot/bootx64.efi>>>EFI/Microsoft/bootmgfw.efi,我们用一个间接引导(rEFind)伪装成为bootmgfw.efi,伪装的间接引导被执行后,会提供一个界面供用户选择系统,根据选择的系统,间接引导再去执行对应系统的引导


第五步:rEFind。有了上面的介绍,就可以用winpe启动,去替换ESP分区中的引导文件了,首先下载rEFind,解压后,将根目录的refind文件夹取出,其他的这里用不着。refind文件夹中内容如下:(refind.conf是此时是没有的)
这里写图片描述

第六步:将refind文件夹考到ESP分区下的EFI文件下内,此时EFI文件夹内应有如下内容
这里写图片描述

第七步:为了将refind文件夹内的引导.efi文件伪装成Microsoft中的引导文件,我们将Microsoft文件夹重命名为win8.1(随便取),把refind文件夹重命名为Microsoft,并互相保持原有的目录结构,即在新Mircosoft文件下中新建Boot目录,将原来refind内的文件都考到新的Microsoft/Boot内,同时将win8.1/Boot中的文件全部考到win8.1根目录下,删除win8.1/Boot。最后!将新Microsoft/Boot中的refindx64.efi重命名为bootmgfw.efi,所有伪装完成!。此时ESP分区的目录结构为下图
这里写图片描述

最后一步:修改refind中的脚本文件。第七步做好后,这时系统在启动时就会启动假的Microsoft/Boot中的假的bootmgfw.efi引导,这个引导应该显示一个系统选择的界面,在用户选择完系统后根据选择的系统启动相应的引导。因此,这个界面应该显示哪些系统?按什么格式显示?用户选择后如何找到那个系统真正的引导?就都需要我们在脚本中确定。 下面打开Microsoft/Boot中的refind-conf-sample文件,另存为refind-conf文件,其部分内容如下图:
这里写图片描述
这里的每一块都对应一条语法的详细介绍和一个用法示例,讲的非常清楚,可以根据自己的喜好设定界面的壁纸,图标等等,功能很全面。这里贴上我所使用的:

timeout 20

hideui banner

scanfor external,manual

scan_all_linux_kernels true

menuentry Linux-mint {
    loader /EFI/ubuntu/grubx64.efi
    icon /EFI/Microsoft/Boot/icons/os_linuxmint.png
}

menuentry "Windows 8.1" {
    loader /EFI/Win8.1/bootmgfw.efi
    icon /EFI/Microsoft/Boot/icons/os_fatdog.png
}

意思大致是:
- 20s后键盘没反应,就进入默认系统引导
- 取消界面上方的banner条,原始内容是rEFind的logo,也可以自定义图像
- 搜索.efi的顺序为先外部,再找手动设置的,即最下面两段
- 搜索整个磁盘上的linux内核,若存在则直接加到选择菜单里
- 倒数第二段,Linux-mint为显示的选项的名称,loader指定Linuxmint的.efi引导文件位置,icon指定该选项显示的图标,(可以自定义)
- 最后一段,同上。
**

最后附上开机效果图:

**
这里写图片描述

**

PS:win8.1我专门给了个FatDog的图标:)

**

2019-10-22 17:49:42 qq_43149632 阅读数 90

20191010

 

目录

Gentoo Linux

下载

在VirtualBox里安装Gentoo Linux基本系统(amd64+UEFI引导+GPT分区)

#参考

#注意

#准备

#VirtualBox设置

#进入livecd,启动SSH

#分区、格式化、挂载

#配置网络

#设置时间,解压stage3-amd64.tar.xz和portage.tar.bz2

#配置编译选项

#配置Gentoo ebuild 软件仓库

#挂载必要的文件系统

#进入新环境

#配置Portage

#更新@world集合

#配置USE变量

#时区

#配置地区

#查询、设置时间(必要)

#重新加载环境

#安装源码

#默认:手动配置

#使用genkernel自动配置(生手或虚拟机推荐)

#网络信息

#设置主机名

#域名

#配置网络

#hosts 文件

#系统信息

#设置root密码

#时钟设置

#系统日志工具

#可选:Cron守护进程

#可选:文件索引

#可选:远程访问

#可选:文件系统工具

#网络工具

#安装DHCP客户端

#可选:安装无线网络工具

#选择引导器

#默认:GRUB2

#重启系统

#用户管理

#虚拟机备份

修复引导

#用livecd启动修复VritualBox的UEFI引导错误(Grub2)

#用livecd启动修复引导错误(Grub2)

#系统内修复引导(Grub2)

安装Gentoo Linux+Plasma桌面环境

#参考

#准备

#KDE

#配置

#重启

#服务

#安装xorg-drivers

#安装xorg-server

#安装plasma-meta

#安装kde-frameworks

#重启

#登录Gentoo Linux(Plasma桌面环境)


==================================================

Gentoo Linux

Gentoo Linux

Gentoo source mirrors

Gentoo Packages

==================================================

下载

官方镜像(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 Linux 手册

根据Gentoo handbook安装——gentoo基本系统+UEFI引导

从零开始安装Gentoo

Gentoo安装手记

Ubuntu 16.04引导错误修复

VirtualBox在UEFI模式下无法正常引导

Deepin安装VirtualBox扩展包

Gentoo Linux KDE 环境安装1

Gentoo Linux KDE 环境安装2

【教程】Gentoo的安装

#注意

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.xzportage.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 root@127.0.0.1

#或者
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

Linux:Gentoo系统的安装笔记(一)

Linux:Gentoo系统的安装笔记(二)

Linux:Gentoo系统的安装笔记(三)

Linux:Gentoo系统的安装笔记(四)

Gentoo Linux KDE 环境安装1

Gentoo Linux KDE 环境安装2

 

#准备

...

... 此段的过程参考非图形化的安装教程

...

#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

#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

=======================================================

2019-06-13 12:14:25 cgm88s 阅读数 452

UEFI 与Linux

BIOS: 是系统开机后执行的第一个firmware程序, 它通常存储在主板的flash memory中,与系统存储无关。

UEFI:支持读取分区表,和文件系统。UEFI不会执行MBR中的任何代码。而是启动NVRAM中的boot entries.

UEFI标准强制要求支持 FAT12,FAT16,FAT32文件系统(详见UEFI 标准2.7, Section 13.3.1.1 ).  
但任何符合条件的供应商都可以选择添加对其它文件系统的支持,如 Apple Macs支持他们自己的HFS+文件系统.
UEFI实现中也支持用于光盘的ISO-9660。

UEFI启动 EFI应用,如:boot loader, boot managers, UEFI shell等。
这些应用通常作为文件存储在EFI系统分区中。每个供应商都可以将其文件存储在/EFI/vendor_name 目录中,
可以通过向NVRAM添加一个boot entry来启动应用,或者从UEFI shell 中启动应用。

参考:https://wiki.archlinux.org/index.php/Arch_boot_process#Firmware_types

EFI与 UEFI:

a,UEFI起始于Intel的 EFI 1.x 版。
b, 从2.0版本起,一个名为UEFI论坛的公司组织接管了其开发工作,并更名为Unified EFI(UEFI).
c,除非特别指明是EFI 1.x, EFI和UEFI均指代UEFI 2.x固件。
d,此标准的最新版本位于 http://uefi.org/specifications.

UEFI变量:EFI variables

UEFI定义了变量,操作系统通过它们可以与firmware进行交互:
1,UEFI 引导变量:Boot Variables. 只在早期系统启动时由引导加载程序和操作系统使用。
2,UEFI 运行时变量:Runtime services Variables. UEFI 运行时变量允许操作系统管理UEFI firmware的某些设置(如UEFI引导管理器) 或 UEFI Secure Boot协议的密钥。
获取变量列表efivar -l
linux中 efi variables 操作接口: 如图示linux中的efi variable操作接口

efibootmgr: 一个用户空间的用于修改EFI Boot Manager的工具。 可以创建,删除 boot entries, 修改启动顺序。
源码参考:https://github.com/rhboot/efibootmgr
详见:EFI Specification v1.02以上。http://www.uefi.org

efibootmgr 早期使用内核模块 efivars. 新的版本中使用核模块efivarfs.

efivars: 通过sysfs接口来实现对 EFI variables的管理。
会生成 /sys/firmware/efi/vars 目录,并在其下进行 EFI variable的管理。(只支持1024个byte长度的variable,不能兼容 EFI v1.0以上的长变量)

efivarfs: 从 linux 3.8 开始,内核中添加的一个新的文件系统.
efivarfs文件系统是为了解决在sysfs中使用entries来维护EFI variables的缺点.
旧的sysfs EFI variables 只技持1024 bytes, 这是EFI 0.99标准之前的限制。在新的标准中已经被删除。

现在,由于variables有可能大于一个page, sysfs对此不是最佳接口,可以通过efivarfs文件系统来created,deleted,modified Variables.

efivafs 通常如下mounted(由systemd自动挂载)
mount -t efivarfs none /sys/firmware/efi/efivars/

drivers/firmware/efi/Kconfig 下默认配置:
CONFIG_EFIVAR_FS=y
新版efibootmgr已使用/sys/firmware/efi/efivars/ 接口来操作UEFI运行时变量。

CONFIG_EFI_VARS=n // efivar sysfs 接口,应当禁用些选项来同时启用efivarfs和 sysfs-efivars所导致的潜在问题。efivars_sysfs_init()

EFI_VARS =n // efivars.o
EFI_VARS_PSTORE =y //会打开 EFI_VARS efi-pstore.o

efibootmgr: 作为 UEFI Boot Manager,它是与系统中EFI firmware交互的工具,用来创建/删除,修改 boot entries.

#efibootmgr -v   //列出当前boot entries  
bootCurrent: 0001  
Timeout: 3 seconds  
BootOrder: 0001,0004,0000,0002,0003,0005  
Boot0000* UiApp	FvVol(64074afe-340a-4be6-94ba-91b5b4d0f71e)/FvFile(462caa21-7614-4503-836e-8ab6f4662331)  
Boot0001* CentOS	HD(1,GPT,84e4a369-1ef4-4951-9123-d382d09b1796,0x800,0x64000)/File(\EFI\centos\shimaa64.efi)  
Boot0002* UEFI Misc Device	VenHw(f9b94ae2-8ba6-409b-9d56-b9b417f53cb3)N.....YM....R,Y.
Boot0003* UEFI Misc Device 2	VenHw(8047db4b-7e9c-4c0c-8ebc-dfbbaacace8f)N.....YM....R,Y.
Boot0004* UEFI QEMU QEMU HARDDISK 	/Pci(0x1,0x2)/Pci(0x0,0x0)/SCSI(0,0)N.....YM....R,Y.
Boot0005* EFI Internal Shell	FvVol(64074afe-340a-4be6-94ba-91b5b4d0f71e)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)

从上面 efibootmgr 的输出看,当前的启动项是 Boot0001, 而启动的程序是:/EFI/centos/shimaa64.efi
EFI系统分区文件

UEFI启动流程:

UEFI启动流程

传统的BIOS启动流程:

传统BIOS启动流程

shim: 通常用于对 bootloader(grub2)进行安全检查。

shim: shim是一个简单的EFI应用程序,在运行时会尝试通过标准EFI LoadImage()和StartImage()调用来打开并执行另一个应用程序。
如果这些失败(因为在使能 Secure Boot 时会对二进制文件进行检查,有可能二进制应用没有适当的密钥签名),则它将根据内置证书验证二进制文件。
如果成功,并且二进制或签名密钥未列入黑名单,则shim将重定位并执行二进制文件。
源码仓库https://github.com/rhboot/shim

MokManager: 用来操作管理 Machine Owner Key (MOK)这一类 key的程序。MOK一般是用户自己创建并使用的key,用来启动自定义的kernel。MOKs保存在NVRAM中。MokManager源码也在shim源码仓库中。
参考http://www.rodsbooks.com/refind/secureboot.html

创建自己的key来创建运行自定义kernelhttps://en.opensuse.org/openSUSE:UEFI#Booting_a_custom_kernel

使用UEFI Secure Boot案例参考:https://www.aioboot.com/en/secure-boot/

2019-04-13 19:15:48 qq_38643642 阅读数 431
                            关于win10uefi和linux双系统中删除linux的问题。

       如果你曾经安装了Windows和linux的双系统,你删除了linux后发现Windows也进不去了,这是因为引导丢了。

当然你也可能看到过一些方法去修复,比如mbrfix,结果都没有用。请你参照下面这种办法。
mbrfix没用是因为你的分区是uefi,你需要使用easyuefi这个工具。
下载后打开,进入后选择启动项,然后删除你要删除的linux引导。然后再删除linux盘就可以了。
软件已上传至我的资源,请移步下载。

启动方式:UEFI引导分区:GPT在上述

博文 来自: wangxiaoqiang888

linux分区方案

阅读数 324

没有更多推荐了,返回首页