快速业务通道

通过虚拟机调试linux 内核(续)

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-30

1. nfs验证

验证NAT模式下Guest机器是否能mount上Host机器的nfs

sudo mount 192.168.1.102:/home/qianjiang/pls temp/
mount: wrong fs type, bad option, bad superblock on 192.168.1.102:/home/qianjiang/pls,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so
原来是要安装nfs-common,还以为是NAT不支持NFS.
sudo apt-get nfs-common, 一般安装kernel把nfs编译成module.


2. 准备rootfs
来自于initrd.img
gzip -cd /boot/initrd.img | cpio -imd --quiet


3. add nfs to kernel command line

Kernel command line: BOOT_IMAGE=/boot/bzImage root=/dev/nfs nfsroot=192.168.1.102:/home/qianjiang/pls/root/pc-root ip=dhcp nfsrootdebug console=ttyS0,115200

. 一开始mount不上,发现要修改exportfs(NAT的缘故)

/home/qianjiang/pls *(rw,no_root_squash,no_all_squash,sync,nohide,no_subtree_check)
改成
/home/qianjiang/pls *(rw,insecure,sync,no_subtree_check)
主要是加insecure


4. 修改grub.cfg
为了避免每次都输入长长的command line,建立tftpboot/boot/grub/grub.cfg,包括下面的内容
menuentry ''Kernel debug'' --class ubuntu --class gnu-linux --class gnu --class os {
echo ''Loading Linux ...''
linux /boot/bzImage root=/dev/nfs rw nfsroot=192.168.1.102:/home/qianjiang/pls/root/pc-root ip=dhcp nfsrootdebug console=ttyS0,115200
}
或者把菜单框架去掉,并在一行加boot,就可以直接启动了

5.
. 应该是mount上了,但是显示下面的行,大概是rootfs有问题
[ 20.512132] nfs: server 192.168.1.106 not responding, still trying
网上看帖子,感觉是内核的问题,
http://permalink.gmane.org/gmane.linux.nfs/39841
修改fs/nfs/nfsroot.c
#define NFS_DEF_OPTIONS "vers=3,proto=tcp,mountproto=udp"
然后解决了这个问题,看来真不顺啊,整了都两天了才全部走通下来,不过收益挺大的.

6. 调试变得非常方便
开一个vim窗口修改内核代码,开一个minicom窗口查看调试信息,然后一个窗口输入类似下面的命令.

make && cp arch/x86/boot/bzImage ~/tftpboot/boot/ #编译

vboxmanage startvm "kernel-debug" #启动机器
或者
vboxmanage controlvm "kernel-debug" reset #复位机器

附. mount后的nfs文件系统没有写权限

在配置上加no_root_squash才搞定(/etc/exports).
rootnfs是以root权限登录nfs文件系统的,这是所不希望的,要有写权限的化就要声明no_root_squash.
一个很不错的nfs指南,下次再遇到nfs问题可以参考:
http://tldp.org/HOWTO/NFS-HOWTO/troubleshooting.html

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多
上一篇: NFS攻略下一篇: 初学linux的感受

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号