最近遇到挺多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