当前位置:首页 > 虚拟化FAQ与知识库
mountd 976/udp rquotad 966/tcp rquotad 966/udp nlockmgr 33993/tcp nlockmgr 33993/udp 保存并退出。
3、重启下nfs服务。 service nfs restart 4、在防火墙中开放这5个端口 编辑iptables配置文件 vim /etc/sysconfig/iptables 添加如下行:
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 33993 -j ACCEPT 5、保存退出并重启iptables service iptables restart 方法二:
1、rpcinfo -p | awk '{print $3 \
2、rpcinfo -p | awk '{print $3 \-m \
3、将打印出的除第一行外的内容添加到/etc/sysconfig/iptables
26.远程模式下退出全屏方法;
1、rdesktop
ctrl+alt+enter
2、spice shift + F11 3、VirtualBox 4、QEMU 5、virt-viewer
知识库
1.cpio格式 initrd 的解压与压缩
initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前,boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd 的情况下,内核启动被分成了两个阶段,第一阶段先执行 initrd 文件系统中的\linuxrc\,完成加载驱动模块等任务,第二阶段才会执行真正的根文件系统中的 /sbin/init, Linux2.6既支持cpio-initrd,也支持image-initrd,但是cpio-initrd有着更大的优势,在使用中我们应该优先考虑使用cpio格式的initrd.
Initrd 的主要用途
linux 发行版必须适应各种不同的硬件架构,将所有的驱动编译进内核是不现实的,initrd 技术是解决该问题的关键技术。Linux 发行版在内核中只编译了基本的硬件驱动,在安装过程中通过检测系统硬件,生成包含安装系统硬件驱动的 initrd,是一种即可行又灵活的解决方案。
1.解压 initrd
# file initrd.`uname –r`.img (察看格式,不同的linux操作系统,这个文件格式也有不同,这个文件格式可能是cpio 也可能是ext2) 如果是cpio格式 :
# mkdir /mnt/tmp # cd /mnt/tmp
# cpio -idmv
#cd /lib/modules/`uname -r`
#mkinitrd /tmp/initrd.`uname -r`.img `uname -r` #cd /tmp
#mv initrd.`uname –r`.img initrd.`uname –r`.img.gz(initrd使用gzip压缩,如果不改名字的话,后面无法解压缩) #gunzip initrd.`uname -r`.img.gz
2.2 cpio
#假设当前目录位于准备好的initrd文件系统的根目录下 第一种方式,老的-c选项,用的是ascii码备份方式. bash# find . | cpio -c -o > ../initrd.img bash# gzip ../initrd.img
第二种方式,新的.已经测试可用的方式. #cd /root/busybox-1.15.3/rootfs9260 #find . | cpio -H newc -o > ../initrd_cpio.img #cd ../ #cp initrd_cpio.img initrd_cpio_bk.img -f #gzip initrd_cpio.img -f #/home/u-boot-1.1.5/tools/mkimage -A arm -T ramdisk -C none -O linux -a 0x600000 -e 0x600000 -d initrd_cpio.img.gz /home/ramdisk.uboot #ls /home/ramdisk.uboot -al 上面cpio命令的 -H 选项指定打包文件的具体格式,要生成initramfs,只能用newc 格式,如果使用其他格式, 内核会打出这样的出错信息:Unpacking initramfs...<0> kernel panic - not syncing: no cpio magic 或者出现:Unpacking initramfs...<0>Kernel panic - not syncing: bad gzip magic numbers。 如果采用了-c旧的ascii码备份方式,则内核会按照ramdisk的方式加载根文件系统。 如果你在编译内核时选上了RAM block device support (在device drivers -> block devices里), 也可以启动成功,但这就失去了cpio-initrd的意义了!。 再就是注意cpio-initrd的初始进程是 “/init”,ramdisk方式初始进程是\。 另外如果采用cramfs格式的根文件系统,也需在编译内核时选上RAM block device support。
2.3 gen_init_cpio
获取 gen_init_cpio,工具 ,gen_init_cpio是编译内核时得到的,
在内核源代码的 usr 目录下,我们可以通过 以下步骤获取它,进入内核源代码 执行 : # make menuconfig # make usr/
这样即编译好gen_init_cpio,
gen_initramfs_list.sh 在内核源代码的 script 目录下, 将这两个 文件 copy 到 /tmp 目录下,/tmp/initrd 为 解压好的 initrd 目录,执行以下命令 制作initrd :
#制作initrd :
# gen_initramfs_list.sh initrd/ > filelist # gen_init_cpio filelist >initrd.img # gzip initrd.img
# mv initrd.img initrd-'uname –r’.img
只有用这个方式压缩的initrd ,在Linux系统重启的时候才能 一正确的文件格式 boot 起来,也可以用
这种方式修改安装光盘的initrd文件 然后 进行系统安装。
3. 如何在 initrd 中添加新的驱动,以 ahci.ko 为例
3.1 gen_init_cpio
# cp initrd-‘uname –r‘.img /tmp/initrd;cd /tmp/initrd #cpio –ivdum < initrd-‘uname –r’.img; # mv initrd-‘uname –r’.img ../ #cd /tmp/initrd
#vim init加上一行 insmod /lib/ahci.ko #cp ahci.ko lib/ #cd /tmp
# gen_initramfs_list.sh initrd/ > filelist # gen_init_cpio filelist >initrd.img # gzip initrd.img
# mv initrd.img initrd-‘uname –r’.img
至此,新的initrd文件initrd-‘uname –r’.img中就包含了ahci的驱动程序了 ,这种方式是最简单有效的。
3.2 mkinitrd
(1) Add “alias scsi_hostadapter ahci” at /etc/modprobe.conf
(2) copy ahci.ko to “/lib/module/$(kernel-version)”/kernel/drivers/scsi” (3) mkinitrd initrd.img ‘uname -r’
至此,新的initrd文件initrd-‘uname –r’.img中就包含了ahci的驱动程序了 .
#释放cpio格式的initrd: mv initrd.img imitrd.img.gz gunzip initrd.img.gz cpio -i --make-directories < initrd.img #释放centos6.2系统的initramfs.img
共分享92篇相关文档