在virtualbox中安装gentoo-程序员宅基地

技术标签: 运维  

 【下载镜像】

使用的是64位的最小安装包gentoo_amd6_minimal_20121107.iso,同时需要下载stage3和portage的tar.bz2包
可以用ultraiso将stage3和portage放到到iso中,重新压制一个启动盘,
或者在virtualbox中设置两个光驱,然后mkdir /mnt/install; mount /dev/sr1 /dev/install,从中拷出tar.bz2文件
 
【分区】
fdisk  /dev/sda
建立三个分区,512M给/boot,2G用Swap,剩余60多G给根分区
因为virtualbox是动态分配空间,所以这里分的比较大也没关系,并且也减少了之后空间不够用的顾虑

mke2fs /dev/sda1
mke2fs -j /dev/sda3
mkswap /dev/sda2
 
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount  /dev/sda1 /mnt/gentoo/boot
swapon /dev/sda2
 
【配置网络】
ifconfig eth0 172.31.159.77 netmask 255.255.255.0
route add default gw 172.31.159.1
在/etc下建立resolv.conf,写入nameserver 202.102.154.3
测试wget  www.baidu.com 能否下载页面
 
也可以使用net-setup工具来设置更方便
或者在/etc/conf.d/net中写入,
  config_eth0=("172.31.136.77 netmask 255.255.255.0")
  routes_eth0=("default via 172.31.136.1")
并ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
最后用rc -s net.eth0 start即可
注意这样貌似只是完成了ifconfig同样的工作,所以还需要用route设置一下路由
 
【chroot】
将两个tar.bz2包拷贝到/mnt/gentoo中
tar jxf stage3*.tar.bz2
tar jxf portage*.tar.bz2 -C /mnt/gentoo/usr
 
cp -L /etc/conf.d/net /mnt/gentoo/etc/conf.d,复制网络信息
cp -L resolv.conf /mnt/gentoo/etc,保持dns信息
 
mount -t proc none /mnt/gentoo/proc
mount --bind /dev /mnt/gentoo/dev
上两句意在chroot后能继续访问系统信息和硬件资源
 
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1=##
 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,设置时区,用date看下,是否正确
nano /etc/locale.gen,写入en_US.UTF-8 UTF-8\n zh_CN.UTF-8 UTF-8
locale-gen基于locale.gen建立本地化支持,可以用locale -a看下支持否
 
【编译内核】
emerge --sync --quiet
eselect profile list
选择no-multiple的那个profile
配置portage使用的编译选项,用户编辑的配置文件/etc/make.conf,写入
CFLAGS="-march=k8 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"   #比你给该虚拟机分配的cpu核心数多1即可
再执行
mirrorselect -i -o >> /etc/make.conf
mirrorselect -i -o >> /etc/make.conf
 
下载gentoo源码,其实就是linux内核
emerge gentoo-sources
cd /usr/src/linux
make menuconfig配置内核选项
根据硬盘,网卡的类型吧相应的选项编译进内核,注意不是编译成模块
当然如果不知道,完全可以不修改,直接make,等启动时观察哪个硬件无法识别再重新编译
当然必须在确定可以启动后再去make mrproper,一般我都不清理,毕竟编一次要1~2个小时,:)
 
【安装内核和引导】
make module_install && make install
推荐使用grub引导
emerge grub-static 注意64位系统要使用grub-static,而不是gru
grep -v rootfs /proc/mounts > /etc/mtab,其实就是将chroot前的mount信息放到/etc/mtab中
grub-install /dev/sda
编辑/boot/grub/grub.conf,写入
root (hd0,0)
kernel /boot/vmlinuz-3.5.7-gentoo root=/dev/sda3
修改/etc/fstab,安装一开始分区时的情况设置。
 
【重启】
开始享受吧
PS:其实还需要修改root密码,由于忘记,结果又去加载了一次livecd,去修改密码,:(
 

转载于:https://www.cnblogs.com/fangzichou/archive/2012/12/12/2814647.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ditu5203/article/details/101627752

智能推荐

配置静态ip:cd:/etc/sysconfig/:no such file or directory_ubuntu里配置网关在 /etc/network/interfaces ;没这个文件夹-程序员宅基地

文章浏览阅读2.9k次。ubuntu里配置网关在 /etc/network/interfaces ;没这个文件夹~_ubuntu里配置网关在 /etc/network/interfaces ;没这个文件夹

警务大数据项目实战_第1关:通过jdbc存储字段信息-程序员宅基地

文章浏览阅读1.7k次,点赞11次,收藏4次。头歌——警务大数据项目实现代码_第1关:通过jdbc存储字段信息

【Excel VBA】自动调整列宽和行高_vba autofit-程序员宅基地

文章浏览阅读1.8w次,点赞8次,收藏44次。纲举目张自动调整列宽和行高说明代码code解析自动调整列宽和行高说明平常使用Excel的时候,会通过“自动调整列宽”和“自动调整行高”功能,自动调整列宽和行高以适应显示需求。在VBA中如何通过代码实现呢?代码codeCells.EntireColumn.AutoFit '所有单元格列宽自动调整Cells.EntireRow.AutoFit '所有单元格行高自动调整Columns(1).EntireColumn.AutoFit '仅针对第1列进行列宽自动调整Rows(1).EntireRow_vba autofit

【Unity笔记】Lua基础语法_unity lua语法-程序员宅基地

文章浏览阅读404次。Lua基础,语法_unity lua语法

Ubuntu系统中/usr/share/applications/目录下都是.desktop文件没有快捷方式_ubuntu23usr/share/applications没有软件图比阿斯哦-程序员宅基地

Ubuntu系统中,/usr/share/applications/目录下的.desktop文件并不是图形的快捷方式。解决方法是在终端修改.desktop文件的权限,然后将其复制到桌面,并允许运行。

信息安全:认证技术原理与应用._认证技术的应用-程序员宅基地

文章浏览阅读894次,点赞2次,收藏10次。认证机制是网络安全的基础性保护措施,是实施访问控制的前提,认证是一个实体向另外一个实体证明其所声称的身份的过程。在认证过程中,需要被证实的实体是声称者,负责检查确认声称者的实体是验证者。_认证技术的应用

随便推点

Java的toString和String.valueOf-程序员宅基地

文章浏览阅读191次。2、不同点:当对象为null时,使用toString会报错,而使用String.valueOf会返回字符串"null"1、共同点:toString和String.valueOf都可以将对象转换为字符串。

Python Django链接数据库的几种方式以及SQLite和MySQL之间的区别_django连接数据库的两种方式-程序员宅基地

文章浏览阅读711次。在Python的Django Web开发中,连接数据库是非常重要的一步。本文将介绍Django链接数据库的三种常用方式,并深入探讨SQLite和MySQL之间的区别。_django连接数据库的两种方式

Testflight无法接入App Store connect,对testflight上架的应用会造成什么影响?_ios appstore 安装包如何与testflight 安装包共存-程序员宅基地

文章浏览阅读5.9k次。感觉进入8月份以来,苹果也进入了多事之秋。不仅是App Store被下架,testflight也频频出问题,很多人反馈出现了Testflight无法接入App Store connect的问题,我们之前也介绍了Testflight无法访问的解决办法合集。但是很多iOS开发者肯定还是会担心,会对在testflight上架的应用造成什么影响吗?答案是不会的,开发者大可不必担心。这次的问题是testflight的问题,与在testflight上已经上架的应用无关,只要用户之前已经从testflight_ios appstore 安装包如何与testflight 安装包共存

MyBatis-Plus代码自动生成_mybatis 3.5.3 自动生成-程序员宅基地

文章浏览阅读531次。这是一段使用 MyBatis-Plus 自动生成代码的示例代码。MyBatis-Plus 是一个优秀的 ORM 框架,它在 MyBatis 的基础上进行了扩展和增强,提供了更加便捷、高效的数据库操作方式。在实际开发中,我们通常需要编写大量的 CRUD 操作代码,使用 MyBatis-Plus 可以帮助我们快速生成这些代码,提高开发效率。_mybatis 3.5.3 自动生成

svn: 无法使用外部编辑器取得日志信息;请尝试设定 $SVN_EDITOR 环境变数(Z)_svn ci 无法使用外部编辑器-程序员宅基地

文章浏览阅读410次。转自:http://digdeeply.org/archives/08112102.htmlsvn: 提交失败(细节见下):svn: 无法使用外部编辑器取得日志信息;请尝试设定 $SVN_EDITOR 环境变数,或是使用 --message (-m) 或 --file (-F) 选项svn: 没有一个 SVN_EDITOR,VISUAL 或 EDITOR 环境变数被设定,执行时期的_svn ci 无法使用外部编辑器

strstr函数(用来比较两个字符串大包含关系)的实现原理_strstr函数直接比较字符串-程序员宅基地

文章浏览阅读269次。#define _CRT_SECURE_NO_WARNINGD 1#include <stdio.h>#include <string.h>#include <assert.h>int my_strstr(const char* arr1, const char* arr2) { assert(arr1 && arr2); while (*arr1) { if (*arr1 == *arr2 && *arr1 != '\0._strstr函数直接比较字符串