gentoo 安装笔记

来源:互联网 发布:手指脱皮 知乎 编辑:程序博客网 时间:2024/05/22 03:22

本此安装主要根据gentoo 官方wiki.用virtual box 安装.

1.从gentoo官方下载minimal 的livecd.

2.在virtual box中新建一个虚拟电脑,并加载gentoo minimal 的livecd.

3.启动虚拟电脑,在启动提示符下,用户可以按 F1 按键显示可用的内核.

内核描述gentoo默认内核,支持 K8 CPU (包括对 NUMA 的支持)和 EM64T CPUgentoo-nofb和 gentoo 一样,但是不支持帧缓冲(framebuffer)memtest86检测本地内存的错误我这里选择gentoo.

boot:gentoo 然后回车即可.

按 F2 按键显示可用的启动选项。我这里没有采用启动选项.

4.进入gentoo 的livecd 系统里面.


5.配置live cd gentoo的网络,因为安装过程需要用到网络.系统的接口名称可以和旧的eth0命名规则很不一样。近期的安装媒介可能显示常规网络接口名字像是eno0ens1enp5s0。查看ifconfig输出中找到有你本地网络相关的IP地址的接口。

如果网络没有自动配置,最简单的方式是运行net-setup脚本来设置:

root #net-setup eth0

net-setup将会询问关于网络环境的一些问题。当所有这些完成后,网络连接就应该工作。

也可以root #dhcpcd eth0来自动设置网络.

然后root #ping www.baidu.com测试网络通否.


6.给虚拟电脑的硬盘进行分区,用fdisk来进行分区,使用MBR,没有使用GPT.

分区文件系统大小描述/dev/sda1(引导器)2MBIOS引导分区/dev/sda2ext2(或者vfat)128M引导分区/dev/sda3(swap)512M及更高Swap分区/dev/sda4ext4剩余的磁盘根分区

7.创建文件系统.

root #mkfs.ext2 /dev/sda2  

root #mkfs.ext4 /dev/sda4 

root #mkswap /dev/sda3  

root #swapon /dev/sda3 

8.挂载文件系统。

root #mount /mnt/gentoo 

root #mkdir /mnt/gentoo/boot

root #mount /dev/sda2 /mnt/gentoo/boot

9. 安装stage3.

在安装Gentoo之前,确保日期和时间正确设置。一个错误配置的时钟可能在未来导致奇怪的结果!要验证当前的日期和时间,运行date

root #date
Fri Mar 29 16:21:18 UTC 2005
只要没差不太多就可以。

选择一个阶段tar包,如果你要安装x64的gentoo系统,如果你要兼容32位的程序,需要选择multilib的tar3包,如果你选择no-multilib的tar3包,那最后就不能兼容32位的程序了。由于我这是安装的x86的gentoo系统,就没有no-multilib 和 multilib 之分,就无所谓了。

下载阶段tar包,前往挂载根文件系统的Gentoo挂载点(很像/mnt/gentoo):

root #cd /mnt/gentoo 

根据不同的安装媒介,这里有一堆工具可用来下载一个阶段。这些工具之一就是links,一个非图形化、目录驱动的浏览器。要下载一个阶段,访问到Gentoo镜像列表形如:

root #links https://www.gentoo.org/downloads/mirrors/

在镜像列表中,选择一个附近镜像站,我选择的是163的镜像。访问releases/x86/autobuilds/。那里将显示所有可用stage文件。选择一个,然后按 D 下载。完成以后,按Q退出这个浏览器。在下载stage文件后,就可以验证所下载的stage包的完整性。我直接忽略了。

解开阶段tar包,现在,解压下载的stage到系统。我们使用 tar来进行:

root #tar xvjpf stage3-*.tar.bz2 --xattrs

官方wiki还要配置/mnt/gentoo/etc/portage/make.conf,我也直接忽略了,因为好像默认的就能用了。

10. 选择境像站点.gentoo提供一个叫作mirrorselect的好工具,它为用户选择所需镜像提供了一个很好的交换。只需要移动光标选择镜像并按Spacebar选择一个或多个镜像。

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

选择镜像的第二个重要步骤是通过/etc/portage/repos.conf/gentoo.conf文件来配置Gentoo的主仓库。

root #mkdir /mnt/gentoo/etc/portage/repos.conf

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

不用修改。

复制DNS信息,将live cd里面的dns信息复制到要安装的gentoo系统里面。

root #cp -L /etc/resolv.conf /mnt/gentoo/etc/

11.挂载必要的文件系统

root #mount -t proc proc /mnt/gentoo/proc

root #mount --rbind /sys /mnt/gentoo/sys

root #mount --make-rslave /mnt/gentoo/sys

root #mount --rbind /dev /mnt/gentoo/dev

root #mount --make-rslave /mnt/gentoo/dev

--make-rslave操作是稍后安装systemd支持时所需要的。

12. 进入新环境

root #chroot /mnt/gentoo /bin/bash

root #source /etc/profile

root #export PS1="(chroot) $PS1"

13. 配置Portage。
安装Portage快照。一个用来告诉Portage哪些软件标题可用于安装、哪些配置文件可以由管理员选择等等的文件集合。建议使用emerge-webrsync。这将从Gentoo的一介镜像中得到最新的Portage快照(Gentoo每天发布一个基准)并安装到系统中。

root #emerge-webrsync

emerge-webrsync可能会报找不到/usr/portage/位置。这是预期内的并且不用担心——这个工具将会创建这个位置。

Portage可能会提示建议运行某些更新。这是因为在安装了一个新的Portage快照后,Portage发现了stage3文件中已经安装的某些软件有了更新的版本。现在可以安全的忽略它;当Gentoo安装完成后可以重新触发更新。

14. 选择正确的配置文件。

使用eselect,你能看到当前系统正在使用什么配置文件,现在来使用profile模块:

root #eselect profile list

Available profile symlink targets:  [1]   default/linux/x86/13.0 *  [2]   default/linux/x86/13.0/desktop  [3]   default/linux/x86/13.0/desktop/gnome  [4]   default/linux/x86/13.0/desktop/kde
可以键入以下命令为系统选择一个不同的配置文件:
root #eselect profile set 8
我选择的是 default/linux/x86/13.0/systemd

更新@world集合,gentoo默认是使用OpenRC as the default init system,由于我上一步选择了

default/linux/x86/13.0/systemd,就需要更新@world集合
root #emerge --ask --update --deep --newuse @world

官方wiki要配置USE变量,这里我使用默认的即可。

15. 设置时区

为系统选择时区。在/usr/share/zoneinfo/中查找可用的时区,然后写进/etc/timezone文件

root #ls /usr/share/zoneinfo

假设要选择的时区是Asia/Shanghai

root #echo "Asia/Shanghai" > /etc/timezone

root #emerge --config sys-libs/timezone-data

16. 配置地区。地区不只是指定系统应该使用的与系统进行交互的语言,同时也指定了字符串排序,日期和时间的显示等规则。系统应该支持的地区应该在/etc/locale.gen中提到。

root #nano -w /etc/locale.gen

输入以下内容:

en_US ISO-8859-1en_US.UTF-8 UTF-8zh_CN GBKzh_CN.UTF-8 UTF-8
下一步是运行locale-gen。它将生成/etc/locale.gen文件中指定的所有地区。

root #locale-gen

要验证所选择的地区当前可用,运行locale -a。等完成后,我们就来设定系统级别的区域设置。我们又一次使用eselect来做这件事,现在使用locale模块。通过eselect locale list可显示可用的目标:

root #eselect locale list

Available targets for the LANG variable:
  [1]   C
  [2]   en_US
  [3]   en_US.iso88591
  [4]   en_US.utf8
  [5]   POSIX
  [6]   zh_CN
  [7]   zh_CN.gbk
  [8]   zh_CN.utf8
  [ ]   (free form)

通过eselect locale set VALUE可以设定正确的地区:

root #eselect locale set 8

此时选择中文会出现乱码,我还是用的en_US.utf8。

备注:这中间好像有个地方让我使用“.空格/etc/profile”命令来更新什么东西。

17. 现在重新加载环境:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

18. 安装源码之一.选择一个合适的内核并使用emerge来安装它。官方wiki上的命令是:

root #emerge --ask sys-kernel/

经过我实践,这个好像官方已经修改了,这个命令提示sys-kernel找不到。使用下面的命令:

root #emerge --ask gentoo-sources

这将在/usr/src/中安装Linux内核源码,并有一个符号连接叫作linux将指向安装的内核源码:

root #ls -l /usr/src/linux

lrwxrwxrwx  1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo

19. 安装源码之二。现在进入内核源码目录并执行make menuconfig。这将启动一个菜单驱动的配置屏幕。

root #cd /usr/src/linux

root #make menuconfig

-------------------------------------------------------------------------------------------------------------

KERNEL 启用devtmpfs支持
Device Drivers --->  Generic Driver Options --->    [*] Maintain a devtmpfs filesystem to mount at /dev    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs
KERNEL 选择所需要的文件系统
File systems --->(Select one or more of the following options as needed by your system)  <*> Second extended fs support  <*> Ext3 journalling file system support  <*> The Extended 4 (ext4) filesystem  <*> FUSE filesystem support  ...  Pseudo Filesystems --->    [*] /proc file system support    [*] Virtual memory file system support (former shm fs)

KERNEL 激活SMP支持
Processor type and features  --->  [*] Symmetric multi-processing support

KERNEL VMware需要添加的配置
Device Drivers --->  Network device support --->
     Ethernet driver support(NEW)-->
        <*> AMD PCnet32 PCI support
  SCSI device support-->
     <*>SCSI disk support
     SCSI low-level drivers-->
        <*>BusLogic SCI support
  Fusion MPT device support-->
       所有的
KERNEL 其他
Gentoo linux ---> 
support for init systems, system and services manageers --->
      [*] systemd
Device Drivers --->  
  USB support-->
     <*>USB Mass Storage support
  Input device support--->
     [*] Mice --->      <*> PS/2 mouse

然后开始编译:

root #make && make modules_install

root #make install

这将复制内核镜像到/boot/,一起的还有System.map文件和内核配置文件。

20. 生成一个initramfs.

在某些情况中需要建立一个initramfs——一个基于内存的初始化文件系统。最觉的原因是当重要的文件系统位置(如/usr//var/)在分离的分区。通过一个initramfs,这些分区可以使用initramfs里面的工具来完成挂载。如果没有initramfs的,存在着巨大的风险,系统将无法正常开机,因为这是负责安装的文件系统工具需要驻留在这些文件系统的信息。 initramfs中的一个将在必要的文件拉进它的内核启动之后使用的档案,但控制被移交前转移到初始化工具。在initramfs的脚本,然后将确保分区正确地安装在系统继续启动之前。

要安装一个initramfs,首先安装sys-kernel/genkernel,然后用它生成一个initramfs:

root #emerge --ask sys-kernel/genkernel

root #genkernel --lvm --mdadm --install initramfs

在上面的命令,我们启用initramfs对LVM和软件raid(mdadm)的支持

initramfs将存储在/boot/。结果文件可以简单的通过列出以initramfs开头的文件来找到:

root #ls /boot/initramfs*

21. 配置/etc/fstab文件:

root #nano -w /etc/fstab

上面的命令会打开一个编辑器,删除里面所有的东西, 输入以下内容,然后按Ctrl + O 和回车保存, 按Ctrl + X 退出编辑器
/dev/sda2   /boot        ext2    defaults,noatime     1 2 
/dev/sda3   none        swap    sw                          0 0 
/dev/sda4   /               ext4    noatime                   0 1

22. 其他配置。

root #nano -w /etc/conf.d/hostname

# 设置主机名变量,选择主机名
hostname="gentoo"

---------------------------------------------------------------------------

root #passwd root

上面的命令设置root密码

23. 安装系统工具

System logger

root #emerge --ask app-admin/sysklogd

root #rc-update add sysklogd default

-------------------------------------------------------------------

Cron daemon

root #emerge --ask sys-process/cronie

root #rc-update add cronie default

root #crontab /etc/crontab

---------------------------------------------------------------------------

File indexing

root #emerge --ask sys-apps/mlocate

------------------------------------------------------------------

Remote access

root #rc-update add sshd default

---------------------------------------------------------------------------------

Filesystem tools

root #emerge --ask sys-fs/e2fsprogs

----------------------------------------------------------

DHCP client

root #emerge --ask net-misc/dhcpcd

24. 配置系统引导程序Bootloader。

root #emerge --ask sys-boot/grub:2

root #grub2-install /dev/sda

root #grub-mkconfig -o /boot/grub/grub.cfg

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.5-gentoo
Found initrd image: /boot/initramfs-genkernel-x86-3.16.5-gentoo
done

上面第三个命令官方wiki显示是grub2-mkconfig,但是经我实践,这个命令现在修改成grub-mkconfig

25. 重启系统.当然,别忘了移除可引导CD,否则可能再次从CD启动,而不是新的Gentoo系统。


0 0
原创粉丝点击