最佳技术支持
我正在安装系统,有一个3GB的硬盘。我不确定最佳的分区方式。有什么建议吗? —Jes, jes2@mindspring.com
您没有说明您计划如何使用这个磁盘,或者主机是什么类型的机器(服务器?工作站?)。就我个人而言,我通常这样分区:
/ (about 50Meg) /safe (same size) /var (half the space left) /usr (the other half)
然后我将 /home 链接到 /var/home,并将 /tmp 链接到 /var/tmp/tmp。 /safe 是我的根分区的副本,这样如果我的启动分区严重损坏,我可以使用 LILO 从 /safe 启动,并且它还为我提供了 /etc 中配置文件的副本。
添加更多分区可能很好,但是您添加的分区越多,其中一个分区空间不足的可能性就越大。例如,我认为将 /tmp 设置为单独的分区而不是链接到 /var 是一个愚蠢的想法,除非您愿意给它几百兆字节,甚至一个千兆字节的空间,因为某些程序可能会创建巨大的临时文件,如果您的 /tmp 分区太小,可能会以奇怪的方式失败。
/usr 也应该是只读的,这在 Debian 上运行良好,在 Red Hat 上也大部分可以(他们已经采纳了我的大部分错误报告)。在这两种情况下,您仍然需要在安装软件包之前将分区重新挂载为读/写模式。 —Marc Merlin, merlin@varesearch.com
我已经尝试从 Sams' Red Hat Linux 6 Unleashed 附带的 CD 安装了两次 Red Hat 6.0,但两次都遇到了相同的问题。安装过程进行顺利,完成后,我可以毫无问题地在控制台登录,我可以 telnet 出去,ping 等等,并且我可以从内部网络中的其他机器 ping 通它。但是,当我使用 telnet 登录到这台机器时,我收到 “telnet: unable to connect to remote host: Connection Refused” 的错误。当我尝试执行 finger 命令时,我得到相同的错误。当我使用 FTP 从 95 工作站连接到这台机器时,我收到 “Refused” 的错误。当我尝试执行 finger 命令时,我得到相同的错误。当我使用 FTP 从 95 工作站连接到这台机器时,我收到 “ftp:connect :10061” 的错误,当然,它无法连接。在这台机器上,IP 地址是 189.0.1.50,子网地址是 255.255.0.0。有趣的是,Apache 可以正常工作,并且我能够将 Samba 客户端连接到 Samba 服务器,所以 TCP/IP 似乎在工作,但只是一些服务。
我的 inetd.conf 文件中有以下几行:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd\ -l -a telnet stream tcp nowait root /usr/sbin/tcpd\ in.telnetd
再往下,我还取消了以下行的注释:
finger stream tcp nowait root /usr/sbin/tcpd\ in.fingerd
我已经使用 Red Hat 和其他 Linux 发行版两年多了,以前从未遇到过这样的问题。 —Charles Almond, charles@ovis.net
上周我为一个本地用户解答了一个类似的问题,他遇到了完全相同的问题。请确保您的 inetd 守护进程正在运行。如果守护进程不存在来读取文件,那么所有文件的更改都毫无意义。您可以执行 ps ax 并滚动浏览正在运行的进程列表,以确保它存在。 —Chad Robinson, chadr@brt.com
还有另一个可能的原因:连接被 tcpwrappers 拒绝。检查 /etc/hosts.allow, /etc/hosts.deny 和 /var/log/syslog。 —Marc Merlin, merlin@varesearch.com
我正在尝试连接到我的服务提供商。我让他们告诉我如何通过 linuxconf 按照他们的所有规范进行设置,并且根据他们的说法,设置是正确的。当我运行 ifup ppp0 时,我收到以下消息:
pppd 2.3.7 started by root uid0 device is locked by pid438 exit.
我如何解锁 ttyS1? —Kirk, webmaster@dcas.net
看起来有一个或曾经有一个先前的进程 (438) 正在运行,它已经或曾经锁定了 /dev/ttyS1 设备。我认为这是您的调制解调器连接的端口。以 root 身份登录,检查 438 进程是否仍在运行,使用 ps aux|grep 438;如果是,则使用 kill -HUP 438 终止或杀死它,并在 /var/lock 目录中检查是否有名称类似于 “LCK..ttyS1” 的文件,这是实际的锁定文件。删除它并重试。 —Felipe E. Barousse, fbarousse@piensa.com
还有一种可能性是,当您尝试拨号时,有两个程序正在尝试锁定设备。如果这种情况似乎正在发生(如果不存在锁定文件但 pppd 总是崩溃,则很可能是这种情况),请尝试删除 /etc/ppp/options 中任何包含 “lock” 的行。 —Steven Pritchard, steve@silug.org
我是一个使用 Caldera 2.2 Linux 系统的最终用户。我的问题是关于安装 RPM 格式的新软件以及可怕的依赖关系失败,原因是缺少或使用了错误版本的库。我通常使用 KDE kpackage 程序,但在命令行 rpm 中也遇到了同样的问题。让我举一个实际的例子:
Download program.rpm Run kpackage—reports: Unsatisfied dependencies libgdk-1.2.so.0 libgtk-1.2.so.0
但是,Caldera 2.2 系统有:
libgdk.so.1.0.5 libgtk.so.1.0.5
显然,我需要安装 GTK+ 库的更新。所以,我下载了 gtk+1.2.3,它提供了:
libgdk-1.2.so.0 libgtk-1.2.so.0
接下来,我下载软件包并使用 kpackage 安装。猜猜怎么着:这个软件包出现了 未满足的依赖关系
libc.so.6 (glibc2.1) libc.so.6 (glibc2.0)
为什么需要两个版本的库?
libm.so.6 (glibc2.1)
Caldera 2.2 具有 GLIBC 2.1-3,它提供了:
libc.so.6 libm.so.6
您如何解决这个问题?这个问题是普遍存在的,不仅仅是针对这一个程序。更重要的是,是否有 HOWTO 或 FAQ 或其他任何详细说明如何使用这些库——lic5、libc6 (2.0 和 2.1)、lisbstdc++ 和 egcs?除非这些信息对新手来说很容易获得,以便他们可以将新软件添加到他们的 Linux 系统中,否则他们将依赖于他们的发行版提供的软件。我将不胜感激您对此问题的解决方案。 —Don, dollberg@worldnet.att.net
看起来您拥有您需要的库,但是 Caldera 和您尝试安装的软件包(可能是在 Red Hat 上构建的)在依赖项名称上不一致。您可以尝试强制安装,使用:
rpm -i --nodeps package.rpm
另一种选择是下载 package.src.rpm 并重新构建它:
rpm --rebuild package.src.rpm
这将生成一个可以在您的系统上安装的 rpm 包。 —Marc Merlin, merlin@varesearch.com
我使用 Red Hat 5.1、5.2 和 6,但无法弹出我的 CD-ROM。我已经尝试过 umount,然后在 CD-ROM 上 eject。我也尝试过 umount,然后在 cdplayer 窗口中 eject。我也尝试过在挂载状态下弹出;但都无效。我的系统是 Compaq Deskpro 4000 pII CPU,3.2GB 硬盘,32MB RAM,IDE CD-ROM。 —Uriah Seagraves, useagraves@excite.com
当 CD-ROM 被挂载时,操作系统将发出一个锁定命令,阻止弹出功能运行。我怀疑您的 CD-ROM 实际上并没有被卸载。执行以下命令:
cat /proc/mounts
查看内核认为实际挂载了什么,以确保驱动器不在列表中。 —Chad Robinson, chadr@brt.com
eject 命令默认使用 cdrom 参数,检查您的 /dev 目录中是否有一个从 “cdrom” 到处理您的 CD-ROM 驱动器的实际设备的符号链接。在我的情况下,同样在 Red Hat 6.0 系统上,它是:
$ ls -l cdrom lrwxrwxrwx 1 root root 3 Aug 9 13:47 cdrom -> hdd
如果没有这样的链接,请通过键入以下命令创建它:
$ ln -s hdd cdrom
那样应该就可以工作了。实际上,您可以通过在 /dev 目录上创建链接来为 CD-ROM 设备指定任何名称,例如:
ln -s hdd compactdisc
然后稍后可以使用 eject compactdisc。由于您没有提及您的 CD-ROM 设备的具体品牌,并且看起来您已经在几个 Linux 版本下测试过它,请记住物理 CD-ROM 设备必须支持 eject 命令。另外,在您的系统上键入 man eject 并阅读更多关于 eject 命令的选项。 —Felipe E. Barousse, fbarousse@piensa.com
如何更改启动过程中项目的顺序?我正在笔记本电脑上运行 Red Hat,我想在初始化网络接口之前加载 PCMCIA 服务。现在,接口被初始化,eth0 失败,因为 PCMCIA 服务在启动过程的后期才加载。 —Jeff Blaha, jeffery.f.blaha@us.arthurandersen.com
如果您查看 /etc/rc.d/rc2.d 目录并键入 ls -la,您将看到一个文件列表(可能还有其他文件),这些文件以大写字母 S 开头,并且正是它们在启动过程中执行的顺序,以及一个以大写字母 K 开头的文件列表,这些文件是它们在关机或系统关闭过程中执行的顺序。顺序是字母数字的,由 S 或 K 后面的数字决定。如果您将 S45pcmcia 重命名为 S07pcmcia(即,重命名为比网络启动的数字更低的数字),则 PCMCIA 服务将在网络服务之前启动。这适用于 /etc/rc.d/ 下的 rc1.d、rc2.d 和 rc3.d 目录中的所有启动和关机脚本文件。修改这些文件的启动和关机顺序可能会损坏您的系统行为和/或其某些服务,因此请小心。 —Felipe E. Barousse, fbarousse@piensa.com
这应该是它的工作方式:以太网接口在加载 pcmcia 时配置,因此您看到的消息没有问题。但是,如果您需要更早启动 PCMCIA,您可以编辑 /etc/rc.d/init.d/pcmcia 并降低 chkconfig 行中的第二个数字。例如,将 chkconfig: 2345 45 96 更改为 chkconfig: 2345 9 96。然后键入:
chkconfig --del pcmcia; chkconfig --add pcmcia
/etc/rc.d/rc?.d/ 中的链接将被重新生成。这将更改 PCMCIA 启动的顺序。 —Marc Merlin, merlin@varesearch.com