Recently in linux Category
不断的报出
4gb seg fixup, process pcscd (pid 1191), cs:ip 73:00292546
这样的错来。
解决方法,在domU中:
echo "hwcap 0 nosegneg" > /etc/ld.so.conf.d/nosegneg.conf
ldconfig
mv /lib/tls /lib/tls.disable
reboot
刚搞完的centos不能passwd,报错,狠死。。。还是大红牛,搞出如下命令来:
[root@localhost xen]# chroot /mnt/hd pwconv
[root@localhost xen]# chroot /mnt/hd passwd
Changing password for user root.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
哈哈。。。搞定了,强大的pwconv
用yum使用本地的repo进行安装时总是出错:
Setting up Group Process
Setting up repositories
Setting up repositories
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for setuptool to pack into transaction set.
media://1195929648.203590%231/CentOS/setuptool-1.19.2-1.el5.centos.x86_64.rpm: [Errno 4] IOError: <urlopen error unknown url type: media>
Trying other mirror.
Error: failed to retrieve CentOS/setuptool-1.19.2-1.el5.centos.x86_64.rpm from base
error was [Errno 4] IOError: <urlopen error unknown url type: media>
从这里发现media:xxx这样的东东不太对头,显然是xml中有了问题。所以来好好的从头搞。首先,我们需要重新建一下repo中的文件:
createrepo /home/soft/centos5.1
这样在repodata目录中就出现了
-rw-r--r-- 1 root root 3372868 Mar 4 14:26 filelists.xml.gz
-rw-r--r-- 1 root root 9451641 Mar 4 14:26 other.xml.gz
-rw-r--r-- 1 root root 1106208 Mar 4 14:26 primary.xml.gz
-rw-r--r-- 1 root root 1142 Mar 4 14:27 repomd.xml
这些文件。
在.olddata中存了原来的group的信息,所以我们将group的信息放过来:
cp /home/soft/centos5.1/.olddata/comps.xml /home/soft/centos5.1/repodata/
这样我们就有了group的说明。但是yum grouplist还是会显示没有group,哪是因为在repomd.xml中没有对comps.xml的引用说明。将以下内容加到repomd.xml中去,加到repomd域中:
<data type="group">
<location href="repodata/comps.xml"/>
<checksum type="sha">10b04b72722ee9ad6113c00740df75aa2b7168e6</checksum>
<timestamp>1195928547</timestamp>
</data>
这样你就可以使用这个repo了。
最后给出一个我自己使用的yum.conf:
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
exclude=*-debuginfo
gpgcheck=0
obsoletes=1
reposdir=/dev/null
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
[base]
#name=CentOS-$releasever - Media
name=CentOS-5.1 - Base
baseurl=file:///home/soft/centos5.1
enabled=1
[updates]
name=CentOS-5.1 - Updates
baseurl=file:///home/soft/centos5.1
enabled=1
安装好后,用root用户使用 vncpasswd 设置vnc server的密码。
在root用户的.vnc目录中修改xstart脚本,加入
gnome-session &
这样vnc连接上来会使用gnmome的桌面
修改 /etc/sysconfig/vncservers,在里面加入vncserver的启动监听,比如:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"
这样会在:1上用root起一个vncserver,它的桌面是1024x768的分辨率。
建立一个文件,使其成为guest所使用的磁盘:
mkdir /xen
dd if=/dev/zero of=/xen/hdcentos.img bs=1M count=6000
这样就在/xen中建立了一个6G左右的文件。
newfs下这个文件:
mke2fs -F -j /xen/hdcentos.img
将对应的文件挂到系统中来:
mount -o loop /xen/hdcentos.img /mnt/vm
为vm建立对应的设置
# mkdir /mnt/vm/dev
# /sbin/MAKEDEV -d /mnt/vm/dev -x console
# /sbin/MAKEDEV -d /mnt/vm/dev -x null
# /sbin/MAKEDEV -d /mnt/vm/dev -x zero
为vm准备对应的fstab文件
/dev/sda1 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
加臷proc
# mkdir /mnt/vm/proc
# mount -t proc none /mnt/vm/proc
安装操作系统:
yum --installroot=/mnt/vm -y groupinstall Base
配置网卡(/etc/sysconfig/network-scripts/ifcfg-eth0):
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
配置网络在启动时开始工作(/etc/sysconfig/network):
NETWORKING=yes
做一个在dom0上引导domU的initrd:
mkinitrd -v -f --fstab /mnt/vm/etc/fstab --with xenblk --with xennet --preload xenblk --preload xennet initrd-2.6.18-53.el5xen.vbird.img `uname -r`
最后,写上xen的配置文件(/etc/xen/hdcentos):
name = "hdcentos"
maxmem = 2048
memory = 2048
vcpus = 1
kernel = "/boot/vmlinuz-2.6.18-53.el5xen"
ramdisk = "/boot/initrd-2.6.18-53.el5xen.vbird.img"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ]
disk = [ "tap:aio:/xen/hdcentos.img,sda1,w" ]
vif = [ "bridge=xenbr0" ]
root = "/dev/sda1 ro "
下面你就可以启动你自己的虚拟domU了。
服务器已经越来越少使用光驱了,哪么我们需要使用更为灵活的方法来安装服务器。我自己最喜欢的方法就是使用一个软盘启动,再通过nfs或其它方法来安装。这里讲述如何建立一个通过USB盘来引导安装盘,通过网络进行安装的方法。
制作usb引导安装盘主要步骤如下:
* 取得一个SuSE Linux安装光盘,可以是DVD&CD版本,甚至可以是mini版本。我们需要它上面的引导和安装脚本
* 你需要一个Linux的环境,这个环境用于你进行后续的操作,当然,你必须有它的root权限
* 需要一个改进的[mksusebootdisk][mk]的脚本
* 需要一个支持USB-HDD引导的USB盘
* 为这个USB盘建立一个FAT32的引导分区
* 使用[mksusebootdisk][mk]脚本来将安装光盘中的相关内容转移到USB盘上去
[mk]: http://opensource.contentbakery.fi/suse/mksusebootdisk
在OpenSUSE中使用了2.6 kernel所支持的cpio initrd。我们需要手工更新这个initrd时需要一系列的操作。这里记录下来:
