热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Gentoolinux实用安装教程(UEFI+OpenRC+Xfce4+Lvm)----开源圣使原创

——「1」livecd连网#通常可自动连接,特殊网络环境不在本文讲解范围之内——「2」硬盘分区#此处仅为示例,具体分区方案依实际情况规划lsblk#查看磁盘概略信息,也可选

——「1」livecd连网 通常可自动连接,特殊网络环境不在本文讲解范围之内

——「2」硬盘分区 #此处仅为示例,具体分区方案依实际情况规划

lsblk #查看磁盘概略信息,也可选择用fdisk -l查看

NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda            8:0    0 119.2G  0 disk 
├─sda1         8:1    0   599M  0 part /boot/efi
└─sda2         8:2    0 118.7G  0 part /
sdb            8:16   0 931.5G  0 disk 
└─sdb1         8:17   0 931.5G  0 part 
  └─vgx-home 253:0    0   2.7T  0 lvm  /home
sdc            8:32   0 931.5G  0 disk 
└─sdc1         8:33   0 931.5G  0 part 
  └─vgx-home 253:0    0   2.7T  0 lvm  /home
sdd            8:48   0 931.5G  0 disk 
└─sdd1         8:49   0 931.5G  0 part 
  └─vgx-home 253:0    0   2.7T  0 lvm  /home


parted -a optimal /dev/sda -a optimal确保4k对齐

     mkpart ESP 0% 600M                                                        

     mkpart rootfs 600M 100%                                                   

     set 1 boot on #标记ESP分区          

     p

     align-check optimal ? #检测4k对齐,?指分区序号1/2/3...


mkfs.vfat -F 32 /dev/sda1 #ESP分区必须为fat32格式

mkfs.ext4 /dev/sda2


parted -a optimal /dev/sdb

     mkpart lvm 0% 100%

     p

     align-check optimal 1


lvm2磁盘操作:

     pvcreate /dev/sdb1 #新建物理卷

     vgcreate vg /dev/sdb1 #新建卷组并命名为vg

     lvcreate --size 2g --name swap vg #新建逻辑卷并命名为swap

     lvcreate --extends 100%FREE --name home vg #使用全部剩余空间,新建逻辑卷并命名为home

     vgchange --activate y #激活卷组

     ls /dev/vg #查看已创建的lvm分区


mkswap /dev/vg/swap

swapon /dev/vg/swap #激活swap分区

mkfs.ext4 /dev/vg/home


——「3」基本环境搭建:下载stage3并chroot

mount /dev/sda2 /mnt/gentoo

cd /mnt/gentoo/


links

http://www.gentoo.org/main/en/mirror.xml #选择网易镜像,到releases/amd64/autobuilds目录下载stage3,D下载Q结束


tar jxvfp stage3....tar.bz2


blkid | grep /dev/sda2 >> /mnt/gentoo/etc/fstab  #存储rootfs的PARTUUID,以备第6步操作中写入内核


mkdir -p /mnt/gentoo/boot/efi

mount /dev/sda1 /mnt/gentoo/boot/efi

mkdir -p /mnt/gentoo/boot/efi/gentoo/boot #EFI分区存放内核的目录

mount /dev/vg/home /mnt/gentoo/home

mount -t proc proc /mnt/gentoo/proc #chroot准备

mount --rbind /sys /mnt/gentoo/sys

mount --rbind /dev /mnt/gentoo/dev


mirrorselect -i -o >> ./etc/portage/make.conf #设置portagetree更新源

mirrorselect -i -r -o >> ./etc/portage/make.conf #设置snapshots更新源

cp -L /etc/resolv.conf ./etc #nameserver data #复制域名服务器信息


chroot /mnt/gentoo /bin/bash

source /etc/profile

export PS1="[chroot]$PS1" #可选操作,仅为提示功能


emerge-webrsync #更新快照

emerge --sync --quiet #更新portagetree

eselect profile list #选择mirror具体目录

eselect profile set ? #可选择纯64位安装


——「4」编译参数设置

nano -w /etc/portage/make.conf

     CFLAGS="-march=native -o2 -pipe"

     MAKEOPTS="-j9" #CPU线程数+1

     USE="默认项 ssse3 sse4 avx avx2” #查看/proc/cpuinfo核对

     USE=“-gnome -kde -minimal -qt4 dbus jpeg lock session startup-notification thunar X" #xfce4桌面环境需要

     USE=”gtk xvmc” #nvidia专有驱动需要

     ACCEPT_LICENSE="-* @FREE" #仅使用自由软件

     ACCEPT_KEYWORDS="amd64" #仅使用稳定版,添加 ~ 指兼纳不稳定版本

     PORTAGE_ELOG_CLASSES="info warn error log qa"

     PORTAGE_ELOG_SYSTEM="save"

     VIDEO_CARDS="nvidia" #intel显卡为”intel”

     INPUT_DEVICES="evdev"

     LINGUAS="zh_CN zh_TW" #中文设置


——「5」本地化设置

echo "Asia/Shanghai" > /etc/timezone

emerge --config sys-libs/timezone-data


nano /etc/locale.gen

     zh_CN.UTF8 UTF8

     us_US.UTF8 UTF8


locale-gen

locale -a

eselect locale list

eselect locale set ?

env-update && source /etc/profile


——「6」选择内核项&编译

lspci #查看硬件型号,需先安装pciutils

lsmod #查看livecd目前有效的硬件驱动模块,供参考


emerge gentoo-sources #下载内核源码

ls -l /usr/src/linux #确认linux内核

cd /usr/src/linux


make menuconfig #内核功能选择

##添加特殊驱动、GPT&EFI支持

##精简文件系统、无关驱动、非intel相关项等

##root目录写进内核

       Processor type and features --->

       [*]Built-in kernel command line

     root=/dev/sda2root=PARTUUID=...#用blkid命令查看PARTUUID(特别注意:非UUID


##x11-base/xorg-server需要的选项:

Device Drivers --->

  Graphics support --->

    Support for frame buffer devices --->

## (Disable all drivers, including VGA, Intel, nVidia, and ATI)

## (Further down, enable basic console support. KMS uses this.)

    Console display driver support --->

      <*>  Framebuffer Console Support

##intel显卡(x11-base/xorg-server)

Device Drivers --->

  Graphics support --->

    /dev/agpgart (AGP Support) --->

    <*>  Intel 440LX/BX/GX, I8xx and E7x05 chipset support

    Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->

    <*>  Intel 8xx/9xx/G3x/G4x/HD Graphics


##nvidia专有驱动(x11-base/xorg-server)

[*] Enable loadable module support --->

Processor type and features --->

    [*] MTRR (Memory Type Range Register) support

Device Drivers --->

    Graphics support --->

        Frame buffer Devices --->

            <*> Support for frame buffer devices --->

            <>   nVidia Framebuffer Support  disable

            <>   nVidia Riva support  disable

make && make modules_install

cp /usr/src/linux/arch/x86_64/boot/bzimage /boot/efi/gentoo/boot/bootx64.efi

——「7」网络设置&fstab

设置有线网络:

     nano /etc/conf.d/hostname #hostname="kyss"   

     nano /etc/conf.d/net #config_neo1="dhcp"

     cd /etc/init.d     

     ln -s net.lo net.eno1        #eno1为示例,用ifconfig查看网卡具体名称

     rc-update add net.eno1 default     

     emerge dhcpcd  #安装dhcp客户端     


nano -w /etc/fstab

     /dev/sda1 /boot/efi     vfat       defaults,discard                               0 2

     /dev/sda2 /             ext4       defaults,noatime,errors=remount-ro,discard     0 1

     /dev/vg/swap none          swap       noatime,discard                                0 0

     /dev/vg/home /home         ext4 defaults,noatime,errors=remount-ro             0 2


passwd root#为root设置密码


——「8」设置系统启动菜单

emerge efibootmgr

exit

cd

umount -l /mnt/gentoo/dev{/shm,/pts,}

umount /mnt/gentoo{/boot,/proc,/sys,}

reboot


modprobe efivars #必须切换至UEFI环境,选择/dev/sda2为root目录

efibootmgr -c -d /dev/sda -p 1 -L Gentoo -l "\gentoo\boot\bootx64.efi"


emerge lvm2 #目标主机安装lvm2

rc-update add lvm boot #添加至boot运行级,确保逻辑卷开机挂载


——「9」安装xorg&xfce4

rm stage3....tar.bz2

useradd -m -G users,wheel,audio,video,usb /bin/bash fh

passwd fh


##xorg&xfce安装详情见gentoo-wiki:

##https://wiki.gentoo.org/wiki/Xorg/Configuration#Installing_Xorg

##http://wiki.gentoo.org/wiki/Xfce/HOWTO


emerge -pv xorg-drivers #查看相关信息

echo "x11-base/xorg-server udev" >> /etc/portage/package.use

emerge --ask xorg-server  #根据提示添加额外USE

env-update && source /etc/profile

##若为nvidia显卡,需要的额外操作:

##nvidia-xconfig

##eselect opengl set nvidia

##eselect opencl set nvidia


emerge --ask xfce4-meta #根据提示添加额外USE

env-update && source /etc/profile

emerge --ask x11-terms/xfce4-terminal

echo XSESSION="Xfce4" > /etc/env.d/90xsession

chown -R fh:fh /home/fh change ownership of all in fh directory back

startx


emerge --ask

xfce4-battery-plugin

xfce4-sensors-plugin

xfce4-power-manager

xfce4-mixer #调节音量

xfce4-taskmanager

mplayer

firefox

app-admin/syslog-ng

sys-process/cronie

sys-apps/mlocate


rc-update add syslog-ng default

rc-update add cronie default

rc-update add sshd default



推荐阅读
  • 本文档详细介绍了在Linux系统中执行基本管理任务所需的关键命令,包括获取管理员权限、文件操作、服务控制等。 ... [详细]
  • 作为一名Docker初学者,我已经成功创建了一个基于Alpine Linux 3.4的Docker镜像,该镜像安装了MySQL、Apache和PHP及其相关扩展。本文将探讨如何确保MySQL数据在Docker容器重启后仍能被保留。 ... [详细]
  • 解锁加密ZIP文件的高级技巧
    在日常工作中,经常会遇到需要访问被加密的ZIP文件的情况。当你没有密码时,这可能会成为一个难题。本文将指导你如何安全有效地处理这类问题,包括使用特定工具和技术来尝试恢复或移除密码。 ... [详细]
  • 本文介绍了如何在Linode服务器上以root用户身份安装Xubuntu,并解决尝试启动图形界面时遇到的'无屏幕找到'错误。 ... [详细]
  • 本文档详细介绍了2017年8月31日关于MySQL数据库备份与恢复的教学内容,包括MySQL日志功能、备份策略、备份工具及实战演练。 ... [详细]
  • 本文介绍了ADB(Android Debug Bridge)的基本概念、安装方法、环境配置、连接真机步骤以及常用命令和高级技巧。ADB是一个强大的工具,适用于Android设备的开发和调试。 ... [详细]
  • Zookeeper面试常见问题解析
    本文详细介绍了Zookeeper中的ZAB协议、节点类型、ACL权限控制机制、角色分工、工作状态、Watch机制、常用客户端、分布式锁实现、默认通信框架以及消息广播和领导选举的流程。 ... [详细]
  • 本文详细解析了muduo库中的Socket封装及字节序转换功能。主要涉及`Endian.h`和`SocketsOps.h`两个头文件,以及`Socket.h`和`InetAddress.h`类的实现。 ... [详细]
  • 本文详细介绍了如何在Python环境中配置与Oracle数据库的连接,包括必要的软件安装和环境变量设置等步骤,旨在为初学者提供清晰的操作指南。 ... [详细]
  • Linux环境下Redmine快速搭建指南
    本文将详细介绍如何在Linux操作系统中使用Bitnami Redmine安装包快速搭建Redmine项目管理平台,帮助读者轻松完成环境配置。 ... [详细]
  • 本文详细介绍了如何通过修改Lua源码或使用动态链接库(DLL)的方式实现Lua与C++之间的高级交互,包括如何编译Lua源码、添加自定义API以及在C++中加载和调用Lua脚本。 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了ThinkPHP框架的基本概念及其主要特性。作为一款遵循Apache许可证的开源框架,ThinkPHP不仅支持多种平台和Web服务器,还提供了丰富的功能以适应不同的开发需求。 ... [详细]
  • 解决腾讯社区开放平台.NET SDK在Linux下的兼容性问题
    本文探讨了腾讯社区开放平台.NET SDK在Linux系统(如CentOS)中遇到的QzoneException异常,并提供了通过安装根证书等方法解决该问题的具体步骤。 ... [详细]
  • Linux环境下生成指定范围随机数的方法
    本文详细介绍了如何在Linux系统中利用内置功能生成不同范围内的随机数,包括基本的使用方法和一些高级技巧。 ... [详细]
author-avatar
我想飞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有