qemu安装gentoo

30 篇文章 0 订阅
nat参考官方
http://wiki.qemu.org/Documentation/Networking/NAT#Overview


vnc如果闪退
VNC是个不错的工具,今天掏出VNC Viewer来连接一台N久没登陆的服务器看看,输入密码连上后直接闪退,可能是ColourLevel的问题。

依次点Option-->Advanced-->Expert找到ColourLevel,默认值是pal8,修改为rgb222或full。


centos7带qemu
centos6.5没有
需要
yum install autoconf automake libtool glib2-devel bison bison-devel flex flex-devel
yum install bridge-utils iptables dnsmasq
yum install vnc tigervnc-server
gentoo的下载地址
wget http://mirrors.163.com/gentoo/releases/amd64/20140826/livedvd-amd64-multilib-20140826.iso


gentoo的安装能学到很多东西,
原理是,先启动iso启动盘,
把stage3 作为文件系统,port包解压到/usr
然后chroot,重新配置网络等,编译内核,重启用非iso模式启动

qemu可以使用-kernel和-initrd及-append方式,需要把kerneldisk和romdisk考出来
如果正确安装了grup,也可以不指定这两个参数直接指定img文件
具体如下:
vmware参考

http://blog.csdn.net/mikayong/article/details/6446244

qemu安装如下:
创建磁盘


qemu-img create -f qcow2 gentoo.img 6G
启动qemu ,以cdrom的方式启动,用tap的模式启动网络

view plaincopy to clipboardprint?

# cat /etc/qemu-ifup
#!/bin/sh
/sbin/ifconfig $1 192.168.0.11

[code="java"]# ifconfig
tap0 Link encap:Ethernet HWaddr CA:D1:45:E0:92:7F
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::c8d1:45ff:fee0:927f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [/code]
这样主机这样设置后才可以上网


echo 1 > /proc/sys/net/ipv4/ip_forward  
/etc/sysconfig/network脚本中添加 FORWARD_IPV4="YES"
iptables -A FORWARD -s 192.168.0.110/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.110/24 -j SNAT --to 10.217.12.244
cat /etc/resolv.conf

启动qemu

chmod 744 /etc/qemu-ifup
yum install bridge-utils
qemu-system-i386 -hda gentoo.img -boot order=d -cdrom install-x86-minimal-20140415.iso -m 512 -net nic,model=virtio,macaddr=00:16:3e:22:22:22 -net tap -vnc 10.217.12.200:1 &  
vncviewer

10.217.12.200:1

[color=red]快速进入后在boot的时候回车哦,要不启动不起来[/color]
进入虚拟机设置ip
ifconfig 不管是

view plaincopy to clipboardprint?

ifconfig eth0 192.168.0.110 netmask 255.255.255.0
route add default gw 192.168.0.11
cat /etc/resolv.conf
nameserver 8.8.8.8

ping www.163.com



设置密码,启动ssh
passwd root
/etc/init.d/sshd start

现在可以通过ssh登录了
ssh root@192.168.0.110
进入虚拟机后,磁盘操作

view plaincopy to clipboardprint?
  
livecd ~ # fdisk -l
Disk /dev/sda: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 by

fdisk /dev/sda
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-12582911, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-12582911, default 12582911):
Using default value 12582911
Partition 1 of type Linux and of size 6 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

再fdisk -l 出现了 /dev/sda1


mke2fs -j /dev/sda1  
mount /dev/sda1 /mnt/gentoo
df -lhT
cd /mnt/gentoo

切换回主机:

scp stage3-i686-20140415.tar.bz2 portage-20140509.tar.bz2 root@192.168.0.110:/mnt/gentoo

从官网下载的两个文件系统和包scp到gentoo系统
切换回gentoo:

view plaincopy to clipboardprint?

tar xvf stage3-i686-20140415.tar.bz2  
tar xvf portage-20140509.tar.bz2 -C /mnt/gentoo/usr

rm stage3-i686-20140415.tar.bz2 portage-20140509.tar.bz2

vi /mnt/gentoo/etc/portage/make.conf
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
GENTOO_MIRRORS="http://mirrors.163.com/gentoo/"
SYNC="rsync://mirrors.163.com/gentoo-portage"
MAKEOPT="-j2"
USE="bindist"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
~

cat /etc/conf.d/net
config_eth0=( "dhcp" )


163的有的时候可能不好使

livecd gentoo # cat /mnt/gentoo/etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
#GENTOO_MIRRORS="http://mirrors.163.com/gentoo/"
#SYNC="rsync://mirrors.163.com/gentoo-portage"
GENTOO_MIRRORS="ftp://linux.ntcu.net/dists/gentoo/ http://www.zentek-international.com/mirrors/gentoo/ http://gentoo.ccccom.com http://mirror.tucdemonic.org/gentoo/ http://gentoo.math.bme.hu http://gentoo.inode.at/ http://gentoo.mirrors.pair.com/"
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
#SYNC="rsync://rsync.gentoo.org/gentoo-portage"
#SYNC="rsync://rsync.gentoo.org/gentoo-portage"
MAKEOPT="-j2"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="bindist"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
livecd gentoo #


chroot:
网络的dns
比如
vi /mnt/gentoo/etc/resolv.conf
nameserver 8.8.8.8
挂载进程系统
mount -t proc none /mnt/gentoo/proc
mount --rbind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot)$PS1"
passwd
passwd root
emerge --sync --quiet
eselect news read all
eselect profile list


如果需要修改,默认不需要修改
eselect profile set 2
emerge vim
vim /etc/locale.gen
把en_US.UTF-8打开
locale-gen
设置时区
cp /mnt/gentoo/usr/share/zoneinfo/Asia/Shanghai /mnt/gentoo/etc/localtime

编译内核


emerge gentoo-sources
emerge genkernel
genkernel all
编译grub


emerge grub
grub2-install --no-floppy /dev/sda
grub2-mkconfig -o /boot/grub/grub.cfg
网络
重启用非iso模式进入后


modprobe pcnet32  
touch /etc/udev/rules.d/80-net-name-slot.rules
ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
/etc/init.d/net.eth0 restart

/etc/init.d/sshd start

/etc/resolv.conf 如果用dhcp就不用配置
网络配置参考

http://blog.csdn.net/leeagle/article/details/6875825

http://hi.baidu.com/ygmpkk2/item/8cbaf9112c7d490db88a1a59

http://tieba.baidu.com/p/2477683069

网络相关的补充

genkernel all
之后在/boot下面多了三个文件,两个文件最重要
kernel-genkernel-x86-3.12.13-gentoo

initramfs-genkernel-x86-3.12.13-gentoo
可以把这两个文件考出来,用qemu -kernel -initrd的方式启动
例如

kenerl方式和硬盘方式

view plaincopy to clipboardprint?

qemu-system-i386 -kernel kernel-genkernel-x86-3.12.13-gentoo -initrd initramfs-genkernel-x86-3.12.13-gentoo -hda gentoo.img -boot order=c -m 512 -append "root=/dev/sda1 panic=1 net.ifnames=0" -net nic,model=virtio,macaddr=00:16:3e:22:22:22 -net tap -vnc 106.187.44.20:2 &  

-append是kernel的选项,配合-kernel使用 ,具体参考grub的配置思考
root=/dev/sda1是系统的目录,
比较livecd和硬盘版,
livecd的boot是启动分区,前面有*,硬盘版没这么配置,所以需要加这个参数,否则不好使
看http://wenku.baidu.com/link?url=lWJ-4Oan9LhNLI3YFw14aA42CQG2HrDdRMkU6v57xrURk3lYjKhyDfle92zhcX6lahhTc6omhY2ojIOMDg6-MT4YA16k6yxWlZRsJ19ukIC
这个受到的启发

或者设置完grub之后


qemu-system-i386 -hda gentoo.img -boot order=c -m 512 -net nic,model=pcnet,macaddr=00:16:3e:22:22:22 -net tap -vnc 106.187.44.20:2 &  
注意-net nic,modle= 后面有几种方式有的gentoo的硬盘版可能没装全,这里是virtio和pcnet


网络排查网卡驱动问题:

在livecd下启动
网络连接,
查看网卡驱动

lspci
看到
用的网卡virtio
lsmod|grep virtio
有三个virtio_net virtio_pci virtio_ring等
但是在gentoo安装完的就没有,
eselect news read all
后说config_net没有配置神马的

在服务器上


qemu-system-i386 -net nic,model=?
查看支持的网卡类型
看到pcnet

启动的时候改成


qemu-system-i386 -hda gentoo.img -boot order=c -m 512 -net nic,model=pcnet,macaddr=00:16:3e:22:22:22 -net tap -vnc 106.187.44.20:2 &

所以进入硬盘版本 网络用pcnet32 模块
进入server


lsmod|grep pcnet
如果没有就
modeprobe pcnet32

ln -s /etc/init.d/net.lo /etc/init.d/net.enp0s3
./net.enp0s3 start
ifconfig等参考上面
有时候连接成net.eth0不好使
即使touch /lib/udev/...80什么什么的也不好使,就用这个吧

设置开机启动后就设置好ip和ssh
在这里添加脚本

ip_ssh.sh

view plaincopy to clipboardprint?
cat /etc/local.d<br>  
#!/bin/sh<br>
/bin/ifconfig 192.168.0.110 netmask 255.255.255.0<br>
/bin/route add default gw 192.168.0.11<br>
/usr/sbin/sshd start<p></p>
<pre name="code" class="c++"><p>附录:<br>
关于linux的引导,参考</p>
<p>http://www.ibm.com/developerworks/cn/linux/l-linuxboot/</p>
<p>http://www.geekfan.net/8663/</p>
<p><img src="http://www.tuidaoba.com/wp-content/uploads/2014/05/boot.gif" alt="boot"></p>

</pre>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值