一、前言
我想在自己的Macbook上搞套开发环境,但比如Mysql之类的软件不想安装在Macbook的系统里,于是就想虚拟一个系统作为服务器。Gentoo官方的文档已经非常详细,信息量巨大,如果你肯专研,那么可以从中学习到很多Linux和Gentoo的知识,单单只说安装,整个过程并没有那么复杂,如果你的网速还可以,安装Gentoo大约不到2小时,我也是反复安装才成功的。
二、准备
1. 在Oracle VirtualBox网站下载虚拟机:VirtualBox
2. 如果你宿主系统是Windows,你最好有个SSH Client,比如SecureCRT或者Putty。
3. 在Gentoo网站下载(版本可能会更新,事先下载好):
a. install-x86-minimal-20120131.iso
b. stage3-i686-20120131.tar.bz2
c. portage-20120130.tar.bz2
三、虚拟电脑设置
1. 假设你已经为Gentoo新建好了虚拟电脑,进入虚拟电脑的设置窗口;
2. “storage”选项卡,增加一个IDE控制器,选择你下载的Minimal ISO;
3. “网络”选项卡,保持Adapter1的设置不动保证你的虚拟电脑可以共享你的机器网络,增加一个Adapter2,连接方式选择“Bridged Adapter”,保证虚拟电脑和你的机器在一个网段里,这样你可以SSH到虚拟电脑。
四、配置安装环境
1. 设置网络
按照之前的步骤,我们其实设置了两个网卡——eth0, eth1,查看一下,如果配置不正确,命令可能告诉你网卡不存在。
#ifconfig eth0 && ifconfig eth1
现在让网卡工作起来:
#dhcpcd eth0 && dhcpcd eth1
这个时候应该能ping通www.88181.com了, 并且从命令的输出可以看到虚拟电脑的IP(192.168.xxx.yyy),SSH Client通过这个IP访问虚拟电脑。
现在给root设置一个密码,
#passwd
现在可以通过SSH Client来访问虚拟机了。以下的操作都可以在ssh client里完成,你可以最小化虚拟机了。
分区(fdisk)
#fdisk /dev/sda
接下来是和fdisk进行交互了,请参考Gentoo官方手册,这里只列出基本步骤。
1. 创建一个用来挂载 /boot 的启动分区;
2. 创建一个用来swap分区;
3. 创建一个挂载 / 的系统分区
2. 创建文件系统
sda3为ext3,挂载/mnt/gentoo
#mkfs.ext3 /dev/sda3
#mount /dev/sda3 /mnt/gentoo
sda1为ext2,用于挂载boot
#mkfs.ext2 /dev/sda1
#mkdir /mnt/gentoo/boot
#mount /dev/sda1 /mnt/gentoo/boot
创建交换区
#mkswap /dev/sda2 && swapon /dev/sda2
3. 安装包
#cd /mnt/gentoo
stage3 tarball是一个含有最小Gentoo环境的压缩包,我用迅雷先下载好了,通过scp或者sftp上传到虚拟电脑即可,上传好了解压。
#tar xvjf stage3-i686-20120131.tar.bz2
portage 是gentoo的软件包管理工具,最主要的命令emerge。先前已经下载好了,上传到虚拟电脑解压出来。
#tar xvjf portage-20120130.tar.bz2
4. 安装源
这有点像Ubuntu装好之后要先设置软件源,这里也差不多,mirrorselect是个类似窗口一样的交互界面,选择大陆的镜像,我选择的是网易的。
#mirrorselect –i -o >> /mnt/gentoo/etc/make.cnf
再挑一个SYNC服务器,用来更新Portage。
#mirrorselect –i -o -r >> /mnt/gentoo/ect/make.cnf
拷贝resolv.cnf
#cp -L /ect/resolv.conf /mnt/gentoo/etc/
5. 挂载proc和dev
#mount -t proc none /mnt/gentoo/proc
#mount —rbind /dev /mnt/gentoo/dev
五、安装Gentoo
1. 进入安装环境
搞定一切,可以进入新环境了。
#chroot /mnt/gentoo /bin/bash
#env-update
#source /etc/profile
#export PS1=”(chroot) $PS1”
现在可以使用emerge命令了,先更行一下。
#emerge –sync
完了之后可以先安装几个软件玩一玩,也方便下面的安装。
没有vim,先搜索一下Vim,找到有这个软件安装之,顺便把less也安装一下。
#emerge –search vim
#emerge vim && emerge less
选择profile,你可以理解为选择安装Gentoo的用途,虚拟机做服务器,所以选的是server,先看一下提供那些预设的profile,记住你选择的编号。
#eselect profile list
#eselect profile set 5
2. 下载内核
现在可以来整内核了,很简单就是用emerge安装gentoo-sources:
#emerge gentoo-sources
这个过程比较长??不过总算结束了。这步结束之后,最后一行会显示内核的版本号,你可以把它记下来。
#cd /usr/src/linux
3. 配置硬件
#make menuconfig
接下来这个会让你一头雾水,靠,我怎么可能能把自己的机器搞得这么清楚?好吧,如果你是个硬件专家,这玩意儿肯定难不倒你,而我在虚拟机里,我该怎么选?所以我直接退出了。
4. 编译和安装内核
#make && make modules_install
这也是个漫长的过程??完成之后,拷贝内核镜像到/boot,<>内的是之前你看到的版本号,你可以不这么命名,这里命名实际上是随意的,最好规范点吧,以后升级内核的时候也容易辨认,不过不管你改成了什么,记住它,到后面配置启动时有用。
#cp arch/i386/boot/bzImage /boot/kernel-<x.xx.xx>-gentoo-r1
6. 配置分区
#vim /etc/fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1
none /dev/pts devpts defaults 0 0
7. 修改hostname
#vim /etc/conf.d/hostname
这个 hostname不能是localhost,否则mysql启动不了。
8. 配置网络
#vim /etc/conf.d/net
因为虚拟电脑有两个网卡,都通过dhcp连接网络。
config_eth0=”dhcp”
config_eth1=“dhcp”
然后设置网络自动启动
#cd /etc/init.d
#ln -s net.lo net.eth0 && ln -s net.lo net.eth1
#rc-update add net.eth0 default && rc-update add net.eth1 default
改下root密码
#passwd
9. 必要的软件
日志工具
#emerge syslog-ng
#rc-update add syslog-ng default
定时任务工具
#emerge vixie-cron
#rc-update add vixie-cron default
文件索引
#emerge mlocate
ssh服务自动启动
#rc-update add sshd default
dhcpcd服务
#emerge dhcpcd
10. 配置bootloader
完成了这个,你就可以进入Gentoo了。
先安装grub
#emerge grub
编辑grub配置文件
#vim /boot/grub/grub.conf
如下(和版本有关的自己替换一下):
title Gentoo Linux 3.1.15-r1
root (hd0,0)
kernel /boot/kernel-3.1.15-gentoo-r1 root=/dev/sda3
以上/boot/kernel-<x.x.xx>-gentoo-r1这段就是内核镜像更名之后的名字,修改好之后,执行grub:
#grub –no-floppy
grub>root (hd0, 0)
grub>setup (hd0)
grub>quit
现在,执行关机
#shutdown -h now
六、结束
重新设置一下虚拟电脑,把之前设置的ISO启动盘去掉,然后启动虚拟电脑,祝你好运!