Chinaunix首页 | 论坛 | 博客
  • 博客访问: 515126
  • 博文数量: 484
  • 博客积分: 10145
  • 博客等级: 上将
  • 技术积分: 5805
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 18:34
文章分类

全部博文(484)

文章存档

2011年(52)

2010年(107)

2009年(287)

2008年(38)

我的朋友

分类: LINUX

2009-09-09 09:11:37


前言:该文是转自,经本人编辑,加入了目录链接,使更便于阅读。

用了很长时间的linux,最喜欢的发行版就是slackware,现在一直都用这个了,用slackware 也遇到了不少问题,一些问题在这里找到了答案,还有一些问题在google或者其他地方,比如inuxquestions.org上面找到的答案,还有一 些,自己找的解决方法,另外一些,比如43-45个问题,是在学习工作的时候为了方便管理系统,而摸索出来的东西,在这里整理出来,如有不对的地方,请大 家指正。大部分解决方法来源于网上,积众人之智慧与经验,若有侵权之处,还请多多谅解。














































这是我的fstab的内容:

/dev/hda8 swap swap defaults 0 0

/dev/hda9 / ext3 defaults 1 1

/dev/hda5 /boot ext3 defaults 1 2

/dev/hda7 /mnt/win vfat defaults,iocharset=gb2312 1 0

启动后,/dev/hda7自动加载到/mnt/win。

如果不mount /dev/hda7, /mnt/win的权限是drwxr-xr-x,加载之后它自动变成drwxr–r–,即使root用chmod
也改不了,结果就是普通用户不能 cd /mnt/win了。我觉得应该有地方可以更改这种设置的,哪位兄弟指点一下?

改成这样就行了,关键就是那个umask参数:

/dev/hda7 /mnt/win vfat defaults,iocharset=gb2312,umask=022 1 0

这样mount之后,/mnt/win的权限就是drwxr-xr-x(即755),普通用户也能访问了。同理,如果umask=000,权限就
变成drwxrwxrwx(即777),任何人都可以为所欲为了

重新启动,进入slackware。

先运行xfree86setup,再运行xf86config/xf86cfg,测试。

/etc/rc.d/rc.modules

/etc/modules.conf

在rc.modules中,有很多的模块要我们来打开或者关闭,如果您想加开相应的模块,就直接把相应的行的前面的#号去掉
就行;同理,我们想关闭一个模块,就在前面加个#号注掉。

举例:比如我想打开对ntfs文件系统的支持,应该找到下面的一行

#/sbin/modprobe ntfs

然后把#号去掉,也行就是:

/sbin/modprobe ntfs

这样就好了,然后重启系统,进行mount等工作,这样ntfs格式的磁盘就一步到位的加载起来了。

当然也可以用全程命令来加载模块,不过这个是有针对性,也就是说,一重启系统,我们还要进行这样工作来加载模块。如果
是自动化的,还是修改/etc/rc.d/rc.modules 吧。

/sbin/modprobe ntfs

您也可以在/etc/modules.conf中加载模块,指定别名等,如果没有这个文件,您可以自己来创建;

试试在/etc/fstab里面这么写:

/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0

/etc/fstab里面加入的选项中,带上iocharset=gb2312参数:

/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro,iocharset=gb2312 0 0
或者运行命令mount -o iocharset=cp936 /dev/hda5 /mnt/mountpoint
(用mount的时候,iocharset=cp936,gb2312都可以)。

重新编译kernel,将APM启用,将多CPU支持关闭,就OK了。

在/etc/rc.d/rc.modules中找到apm将此行uncomment试一试。

我这样就可以正常poweroff slackware 9.0了:
vi /etc/rc.d/rc.modules

remove the # in line “# /sbin/apmd”

如果命令行状态的显示使用了framebuffer,则可以用 setfont fontname 这样的命令格式设置命令行状态下的字体。所有可用的字体都在 /usr/share/kbd/consolefonts/ 这个目录下面,用setfont命令可以即时转换。

如果想在启动时让选定的字体生效,可以在 /etc/rc.d/目录中添加一个 rc.font文件。假如我们想使用sd字体,则:

echo setfont sd > rc.font

chmod +x rc.font

下次启动时,系统就会自动在命令行加载sd字体了。

OK, well you grab an existing one (preferably one of the larger ones like “scsinet.s”), put it on a floppy, and do this:

mount /dev/fd0 /mnt (this mounts it)

cat zImage > /mnt/vmlinuz (put the new kernel in place)

rdev -R /mnt/vmlinuz 0 (mount read-write)

rdev /mnt/vmlinuz /dev/fd0u1440 (use that drive, or /dev/fd0h1200)

rdev -r /mnt/vmlinuz 49152 (enable the ramdisk)

lilo -r /mnt (reinstall lilo)

umount /mnt (that’s it! you’re done! :^)

有个命令是 /sbin/makebootdisk,也可以制作启动盘

需要建立$HOME/.bashrc文件,并写入相应的内容。例如,这是我的.bashrc:

代码:
#

# initial bashrc

#

[ "$BASH" = "" ] && return

# source system wide aliases

if [ -f /etc/bashrc ]; then

source /etc/bashrc

fi

export PS1=’\u:\w\$ ‘

alias rm=’rm -i’

alias cp=’cp -i’

alias mv=’mv -i’

alias ..=’cd ..’

alias ll=’ls -l’

alias la=’ls -aF’

#alias ls=’ls -NF –show-control-chars’

## if you use color ls, comment out above line and uncomment below 2 lines.

LS_COLORS=’no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01\
:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:\
*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:\
*.deb=01;31:*.i386.rpm=01;31:*.src.rpm=01;30:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:\
*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.png=01;35:’ ; export LS_COLORS

alias ls=’ls –color=auto -NF –show-control-chars’

重新编译了内核,设置了acpi的支持并启动了acpid。按电源键,结果屏幕显示系统自动进入了关机程序,卸载完所有文件系统才断的电源,重新开机没有出现检查文件系统的现象,和正常关机一样

启动acpic该怎么启动?

你需要在 /etc/rc.d/rc.M 文件里面把有关rc.acpid的行前面的#去掉让它生效,还要看看是不是存在 /etc/rc.d/rc.acpid 这个文件且是可执行的。

acpi是取代apm的电源管理技术,二者取其一即可实现软关机。

任何版本都可以实现这一功能,内核支持acpi是重点,其次是有一个apcid的daemon,它会监视/proc/acpi/event,当按下电源按钮时会自动执行/etc/powerbtn.sh

> 其次是有一个apcid的daemon,它会监视/proc/acpi/event,当按下电源按钮时会自动执行/etc/powerbtn.sh

It depends on different distributions. For Slackware, it will execute

/etc/acpi/acpi_handler.sh instead. And the default acpi_handler.sh almost does nothing in Slackware. I’ve written a custom script for my laptop. You may download it and modify it as you want

如何配制服务?

(1).cd /etc/rc.d/

chmod更改权限即可,如关掉httpd服务: chmod -x rc.httpd

(2).vi /etc/inetd.conf,如关掉自带的proftpd服务,找到proftpd一行,注释掉即可。
(3).运行pkgtool=》setup=》services

自己的.bashrc在sw9.1下启动终端的时候似乎并没有被执行,必须手动source一把才可以,请问应该如何处理?

use ~/.bash_profile instead of ~/.bashrc

It’s OK.

如果我们想让用户环境变量的文件是.bashrc这个文件,改一下/etc/profile就行,然后再到用户家目录下创建.bashrc文件。内容也可以自己来添加在/etc/profile中,加上下面一段

#.bash_profile

#Get the aliases and function

if [ -f ~/.bashrc ];then

. ~/.bashrc

fi

#User specific environment and startup programs

PATH=”$PATH:/bin:/usr/bin:/usr/sbin:/sbin”

BASH_ENV=$HOME/.bash

USERNAME=”root”

export USERNAME BASH_ENV PATH

修改/etc/fonts/fonts.conf,加入如下字段:

14

8

f

14

8

f

cp /etc/gtk/gtkrc.zh_CN ~/.gtkrc

如果上面的命令不起作用,可以试试把.gtkrc中zh-cn 的部分改为zh_CN,(上下两个改一致,要么全大写,要么全小写)然后shutdow -r now 重新登入一次试试,反正我的是好了。

不过我今天已经又把slackware重装了,原因是机器上原来为windows 2003,不够快,为的换成win 2000,MBR被覆盖拉,用slackware光盘reconfigure了一下,重装了一次lilo,

然后各项功能都还能用,只是速度变得奇慢,不知什么原因。

现在重装后又快了,mplayer按上面的方法也弄好了。

用户目录下建立 .gtkrc-2.0

内容为:

style “user-font”

{

font_name=”simsun 12″

}

widget_class “*” style “user-font”

可以自己改,重启程序,不知道这样可以了吗?

btw: 前提有simsun字体,听自nbxmedia兄。

install cce:

./configure –disable-vga –disable-fb && make install

run xfs when init your system:

add the following line to /etc/rc.d/rc.local:

/usr/X11R6/bin/xfs -daemon

先把slackware自带apache给删了,以后下载apache的源代码,

./configure –prefix=”用户的文件夹”…

进入单用户模式

lilo: linux single

grub: a 在命令行后加入single

#umount /dev/hdb8

/dev/hdb8: Device is busy!

#lsof /dev/hdb8

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

sh 778 fama cwd DIR 3,72 4096 161411 /mnt/hdb8/MIT

方法一:运行pkgtool命令,在菜单选择View
方法二:查看/var/log/packages/目录,比如查看是否安装有fcitx:
ls /var/log/packages|grep fcitx,如果找到了则表示已经安装。

用笔记本电脑到处跑,经常需要netconfig在dhcp和指定ip中来回切换,

redhat里可以用ifdown eth0; ifup eth0让新设置生效

slackware:ifconfig eth0 (up|down)

在 /etc/hotplug/blacklist 这个文件最后面(注意是最后面)加入单独一行,内容就是:

8139cp

or remove module 8139cp from /lib/modules/..

第一种方法(使用新编译的内核制作启动盘):
#mount /dev/fd0 /mnt (this mounts it)

#cat zImage > /mnt/vmlinuz (put the new kernel in place)

#rdev -R /mnt/vmlinuz 0 (mount read-write)

#rdev /mnt/vmlinuz /dev/fd0u1440 (use that drive, or /dev/fd0h1200)

#rdev -r /mnt/vmlinuz 49152 (enable the ramdisk)

#lilo -r /mnt (reinstall lilo)

#umount /mnt (that’s it! you’ve done! :^)

第二种更简单的方法: /sbin/makebootdisk

检查一下你安装了第一张光盘y目录里面的bsd-games包了吗?
可以使用 ls /var/log/packages/|grep bsd-game 来检查是否已经安装,
如果安装过了,请检查文件/etc/profile.d/bsd-games-login-fortune.csh
或者 /etc/profile.d/bsd-games-login-fortune.sh是否存在,如果有一个或者两个都存在,
那么以后登陆的时候,就会有名言了。
如果没有上面的两个文件,或者仍然没有名言,你可以文件/etc/profile 或 /etc/csh.login或/etc/rc.d/rc.local中加上下面的一行:
fortune


对于这个问题,先提一点,大体分两种方法,一种设置对所有用户有效,另一种是对单个用户的设置。
如果用户目录下设置了要启动的x,那么要启动的x是用户自己设置的,而不是启动对于所有用户的x。
方法(1).运行xwmconfig配置(对于所有用户有效)。
方法(2).用户目录下面建立.xinitrc文件(对于单个用户有效):
#!/bin/sh
fvwm2
运行startx就可以启动fvwm2了,如果你的/etc/X11/xinit/xinitrc中设置的是gnome启动,
这个时候你又要启动到gnome,可以mv .xinitrc xinitrc,startx这样就启动gnome了。
方法(3).修改/etc/X11/xinit/目录里面的xinitrc链接的指向来选择桌面(对所有用户有效)。


运行下面的命令:
mysql_install_db
chown -R mysql.mysql /var/lib/mysql
以后就这样启动mysqld服务了:
#mysqld_safe &
or:
#mysqld_safe –user=mysql 2> /dev/null &

把上面两个命令的任意一个放到/etc/rc.d/rc.local后面,或者放到/etc/rc.d/rc.M里面就可以以后每次开机启动mysql的服务了。

情形(1)没有出现引导界面是因为lilo没有安装或者没有安装成功,这样的话,你可以跳到第29个问题。
情形(2)还有另外一种情况是你把lilo装在了root分区,也就是slackware系统所在的分区,而没有装在硬盘的MBR上,这样引导系统的时候,也不会出现lilo的,那么你可以进入dos,运行loadlin,具体方法参见问题30.

slackware默认安装的时候,lilo的配置文件,也就是/etc/lilo.conf文件可能有问题,
你安装完后,如果lilo没有安装上,可以回到字符界面,vi /etc/lilo.conf来编辑这个文件,
把里面不需要(或者不正确)的行注释掉,缺的行加上,然后运行lilo.

我确信系统已经安装完成了,可是进不了系统,如何从dos引导系统?
在slackware安装光盘或者iso文件里面,找到vmlinuz(或者bzImage),loadlin.exe,拷贝到C:盘,
进入dos之后,直接在c盘下面运行下面的命令:
#loadlin vmlinuz root=/dev/hdaxx
vmlinuz表示你要装入的内核,root指定你的linux根分区(root分区),hda表示第一块硬盘。
(比如我的系统就用#loadlin vmlinuz root=/dev/hdb10,hdb表示我的第二块硬盘,10表示我的slackware 的root分区在hdb11,一般情况下一个硬盘,就用hda,而不是hdb。)
这之后,你进入系统后,可以修改/etc/lilo.conf文件,把里面的
“boot = /dev/hdxx”一行改成这样:boot = /dev/hda
这里的hda表示你的第一块硬盘的MBR(主引导分区)。当然一般情况下我们都用一块硬盘。
然后运行lilo,这样就把lilo装到了MBR里面了。

因为你的/etc/lilo.conf文件中的vga设置了某些特定值,设置了某些特定值之后,启动的时候都提示要选择display mode.你可以试着改一下lilo.conf里面的vga (我的改成800*600,32k的时候就有提示,其他值就没有提示).具体想要知道是什么原因,你可以去问slackware的开发人员试试.

注意查看下面的信息:
1. what’s your graphics card?
2. what’s the message in /var/log/XFree86.0.log
3. what’s the message in ~/.xsession-errors?

一般来说,如果xfree有显卡的驱动,就不要使用framebuffer。大多数黑屏都是这个原
因。如果实在想要高分辨率的console,可以用SVGA代替,速度快很多。
vi /etc/X11/XF86Config
change “general vesa” to yours.

每次登陆的时候都提示”you have mail”,我用mail命令却收不到邮件,请问为什么?
因为用户目录下的Mailbox文件中有邮件,或者存在/var/spool/mail/yourname这个文件:
1)可能在Mailbox文件中,
可使用mail -f Mailbox,
2),可能在目录/var/spool/mail/中,比如root用户是/var/spool/mail/root文件,
可以使用mail -f /var/spool/mail/root查看邮件,如果没有,你可以删除这个文件,
这样以后就不会每次登陆的时候有”You have mail”的提示了。

检查一下你的/etc/proftpd.conf文件,看看配置有没有问题,检查一下/etc/passwd文件,看看ftp用户的目录是否存在, 并且权限已经赋予给了用户ftp,另外如果你以standalone状态运行,那么文件/etc/inetd.conf中的proftpd一行是否已经注 释掉。
具体可参考下面的命令(ftp登陆目录是/var/ftp):

mkdir /var/ftp
mkdir /var/ftp/incoming
chown -R ftp.ftp /var/ftp
#remember to comment the line ‘ftp’ in /etc/ftpusers
#remember to change the nobody line like this in /etc/passwd file:
# nobody:x:99:99:nobody:/:
# and the ftp line like this:
# ftp:x:14:50::/var/ftp:
# /var/ftp is the root directory of anonymous ftp users

首先,请检查需要安装的文件已经安装。另外,请升级gdm到gdm-2.4.4.5(同时需要卸载以前的旧版本gdm),如果还有问题,你可以试试重新编译内核。

patch给源文件打补丁,一般在源文件的上一目录执行patch命令。
如qmail安装时打补丁(/usr/local/src/qmail-1.03是qmail的安装目录):
#
#cd /usr/local/src/
#tar zxvf /tmp/qmail1.03.tar.gz
#patch -p0
#cd qmail-1.03
然后就可以安装软件了。

(我们传输邮件的时候,有时需要把二进制文件转换成普通的文本文件)
步骤1.压缩二进制文件为.Z压缩文件(比如压缩文件abc):
compress -v abc
带上v选项,将会显示压缩比率信息,如果压缩比率太小,那么压缩将不会进行。
如果压缩成功,新产生的abc.Z文件将替换原来的文件。
步骤2.将.Z二进制文件进行编码:
uuencode abc.Z abc.uue
uuencode这个明令需要两个参数,一个参数是输入的文件,另一个是编码后的
文件名,这个明令默认的输出是屏幕。可以将结果保存到abc.uue文件:
uuencode abc.Z abc.uue > abc.uue
现在你得到的这个abc.uue就是一个文本文件,可以用more 查看内容。

# 在加载优盘或加载ntfs分区之前需要运行
modprobe usb-storage;
modprobe ntfs;
insmod替代modeprobe也可以
#或者去掉文件/etc/rc.d/rc.modules中含ntfs,usb-storage两行中的#也可以
mount -t ntfs -o ro /dev/hda7 harddisk # 加载ntfs分区硬盘
mount -t vfat -o iocharset=gb2312 /dev/sda1 udisk #加载优盘,支持中文

xf86config可以用来配置x windows的各个参数,里面可以配置显示模式,显示模式配置之后,分辨率会自己调整。你需要设置好 HorizSync 和 VertRefresh,这两个参数也可以通过直接修改/etc/X11/XF86Config文件来修改,设置这两个参数的时候,请务必参考显示器的说 明书,找到厂家指定的值,请注意,如果这两个参数设置超过显示器可以承受的值,那么很有可能会烧坏显示器!!!

可能因为声卡没有设置正确,或者系统的声音处于最小状态,你可以通过alsaconf来设置声卡,通过alsamixer来设置声音。

系统在加载一些模块的时候,在/lib/modules/version(version是你的内核版本)的目录中,
没有找到相应的模块,你可以把出现错误的模块的名字,比如i810_rng加到文件/etc/hotplug/blacklist的最后面(注意,是最后面),这样以后再启动系统的时候,系统就不会再试图加载这个模块了。
一般情况下,问题都可以解决。

vi /etc/resolv.conf文件中加上nameserver,比如我的/etc/resolv.conf文件的内容:
nameserver 202.115.32.39
nameserver 202.115.32.224
….
每行为一个nameserver,就是我们所说的DNS服务器。

比如我要找blacklist文件,可是我不能确定这个文件在哪个目录,那么可以使用
locate blacklist来快速查找文件名中包含blacklist的文件的位置。
要使locate能够查找最新的(安装系统后建立的)文件,我们需要常常运行updatedb命令。
更具体的信息可以man locate,man updatedb查看。

#比如我要找blacklist文件的位置:
find / -name ‘blacklist’
再如,#查找当前目录的tina目录下面以b开头的文件名,并且对每一个找到的文件名使用ls -i 命令:
find ./tina -name ‘b*’ -exec ls -i {} \;

#查找所有文件,并搜索文件内容,找出内容中含有keyboard的文件名及出现keyboard的行.
find / -name ‘*’ -exec grep keyboard {} –with-filename \;
# 或者用-H选项,跟–with-filename等效
(注意,这个命令查找整个系统,如果你的硬盘比较大,文本文件比较多,可能运行起来很慢,请耐心等待)

#查找指定目录/etc下所有内容中有Keyboard字符串的文件,并显示文件名(grep -H),忽略大小写(grep -i),以彩色显示出大小写完全匹配的部分.且标记出找到的行在文件中的行数(grep -n)
#每一个找到的目标串之间以–分隔,
find /etc -name ‘*’ -exec grep -i -n –color keyboard {} -H \;

Lock screen is disabled under the root user…you cant lock your screen or
have a screensaver…
try another user.
在gnome里面以root登陆锁不了屏幕,其他用户都可以锁。在kde,fwvm等window里面root是可以锁住屏幕的。

阅读(373) | 评论(0) | 转发(0) |
0

上一篇:Linux必学的网络操作命令 zz

下一篇:LVM zz

给主人留下些什么吧!~~