最近遇到挺多linux配置中的问题,将其汇总
1.Ubuntu开机出现:
piix4_smbus ****host smbus controller not enabled
解决方法:
执行:lsmod | grep i2c
root@localhost:/dev#lsmod | grep i2c
i2c_piix4 8143 0
root@localhost:/dev# vi /etc/modprobe.d/blacklist.conf
将i2c_piix4列入不加载模块列表,在blacklist.conf文件末尾添加:
blacklist i2c_piix4
重新生成引导文件/boot/initrd.img:
执行:update-initramfs -u -k all
然后重启系统即可。
原因:
主机CPU是64位的,但安装的ubuntu是32位的。
2.编译gcc出现:
error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
这是我在gcc-4.4版本下预安装低版本gcc-3.4.5时出现的现象;
解决方法:
编译时执行:
make “CFLAGS=-U_FORTIFY_SOURCE”
原因:
从gcc 4.0开始,添加了一些扩展的检查功能,如buffer overflow,ignoring return value等等,早在feroda core 4中,redhat就已经默认打开了gcc的这个扩展,并在此基础上编译了fc4的几乎所有软件;ubuntu直到8.10版本才使能这个功能;
但是这个功能打开之后会造成很多程序编译不过,比如gcc:(,解决方法就是在编译的时候禁止掉fortify扩展:
3.linux自动挂载共享文件夹(请完整看完本节):
当我在虚拟机中的Ubuntu中的/mnt/hgfs/文件夹中查看之前共享的文件夹时发现该共享的文件夹竟然不不见了。晕...仔细查看了网络连接状况,虚拟机和主机相互间都能ping通,并且重新设置更换了文件夹,并给该文件夹较大的访问权限,都不行,随后想,既然/mnt/hgfs没有共享的文件夹,随性就挂载一个,执行:
mount -t cifs -o username=YOUR_USERNAME,password=YOUR_PASSWORD //HOME_HOST_IP/share /mnt/hgfs/mnt
随后出现:CIFS VFS: cifs_mount failed w/return code = -22
经查资料原来是samba_client没有安装,执行:
apt-get install samba-client
如果你没有安装samba还需要安装:
apt-get install smaba
完后,再次执行上述挂载命令,共享文件夹恢复正常。
但上述操作只是临时的,重启后又恢复正常,需在/etc/fstab文件中添加如下行:
//HOME_HOST_IP/share /mnt/hgfs/mnt cifs username=YOUR_USERNAME,password=YOUR_PASSWORD,rw 0 0
据@Aenon,你也可以在~/.bashrc中添加
alias xxx='mount -t smbfs -o username=Administrator.password=*** //HOME_HOST_IP/share /mnt/hgfs/mnt'
这样当你需要挂载共享文件夹时执行xxx即可,不用每次开机都挂载。
卸载挂载文件夹:umount /mnt/hgfs/mnt/
执行:net share可以查看电脑主机共享的文件夹。
我已经在VM中设置了共享的文件夹,以前都是自动挂载,可以直接在/mnt/hgfs中看到的,不晓得现在是什么原因。
今天终于找到原因了,是由于VMtools的问题,将VMtools重新安装了一遍就ok了。无语呀。
进入VM菜单VM/Reinstall VMware tools..
之后会在/dev/cdrom1(具体可查看自己目录中的名称)中有该工具的安装包,将其挂载在/mnt/VMtools/目录下。
mount /dev/cdrom1 /mnt/VMtools
进入/mnt/VMtools可查看挂载的文件
将VMwareTools-9.2.3-1031360.tar.gz安装包拷贝到另外一个文件夹内(在挂载的地方是不能解压的)然后解压:
tar zxvf VMwareTools-9.2.3-1031360.tar.gz
进入:cd vmware-tools-distrib
执行:
./vmware-install.pl