最佳技术支持

作者:Various
可怕的 “LI” 问题

我在我的电脑中安装了第二块 IDE 硬盘,并在其上安装了 Mandrake Linux 8.0。现在当我重启时,我遇到了可怕的 “LI” 问题,即 LILO 只显示 LILO 提示符的前两个字母。我相信我的问题根源在于我将第二块硬盘作为从盘安装在了辅助 IDE 上。我的启动分区(挂载为 /)是 hdd6。

—Frederic Mora, fmora@attglobal.net

从 LILO 得到 “LI” 通常意味着第一阶段引导加载程序能够加载第二阶段引导加载程序,但未能执行它。这可能是由磁盘的物理配置不一致引起的,或者是因为您在没有运行 map installer 的情况下移动了 /boot/boot.b。实际上,您确实需要重新配置 /etc/lilo.conf 以描述系统上每个分区的位置(哪个磁盘)。因此,您需要从救援磁盘重启系统并进入 root 提示符,以便您可以编辑 lilo.conf 并将每个元素指向其物理位置(根据磁盘的识别方式:/dev/hdaX、/dev/hdbY、/dev/hddZ 等)。编辑 /etc/lilo.conf 后,运行 /sbin/lilo -v 将所有内容写入磁盘并重启。查看页面 www.fan.nb.ca/~aa126/troubleshoot-LILO.html 以获取有关 LILO 的更多信息。

—Felipe E. Barousse Boué, fbarousse@piensa.com

wu-ftp 不允许用户登录

我在公司登录 FTP 服务器时遇到了一些问题。我在服务器上安装了 wu-ftpd 和 anonyftp。访客帐户已创建,但所有用户都无法登录 FTP 服务器。我确定密码是正确的。

—Alan Lim, alan_lim@astro.com.my

检查 /var/log 中的日志文件,看看它们是否提供了任何信息。您可以将 -d 标志与 wu-ftpd 结合使用,以增加日志记录量。如果您自己编译了 FTP 守护程序,请检查它是否在 PAM 或 shadow 密码方面存在问题。它可能没有意识到在编译过程中这是必需的。请注意,在任何情况下,这都是一个巨大的安全风险。 wu-ftpd 未被设计为为普通用户登录执行 chroot() 函数,这意味着普通(非匿名)用户一旦登录就可以访问整个系统。您可能需要考虑同时解决这两个问题,方法是安装更安全的 FTP 守护程序,例如 ProFTPD 或 NcFTPD,并将它们配置为 chroot() 到用户的 home 目录。

—Chad Robinson, crobinson@rfgonline.com

Alan,请确保与这些用户一起使用的 shell 帐户已在 wu-ftp 配置中列出。否则,即使密码正确,它也会拒绝访问。

—Mario Neto, mneto@argo.com.br

我没有源代码,但我必须 make

我已经安装或尝试安装了几乎所有可用的发行版。我发现最好的安装是 Mandrake 7.0、7.1 和 7.2。我遇到的问题是,当我执行 configure 时,我无法安装源代码。系统要么给我一个语法错误,要么缺少某些文件。我已经阅读了所有的 read 文件,我有很多书,但我仍然找不到问题所在。

—Bill York, bill_york@pipeline.com

您应该能够使用 RPM 安装源文件(例如 Linux 内核源代码);只需挂载源 CD,cd 到包含源 RPM 的目录,然后使用

rpm -i kernel-source-file.rpm

应该就可以了。使用 RPM 安装(在 Mandrake 的情况下)相当容易,并且它还处理了对其他文件的大多数依赖项。如果您仍然收到错误,那么您可能需要在安装您尝试安装的实际文件之前安装其他一些东西。

—Felipe E. Barousse Boué, fbarousse@piensa.com

忽略 BOOTP 请求

我最近设置了一个 DHCP 服务器,当我监控端口时,我看到来自旧 VAX 系统的 BOOTP 请求,该系统从我们路由器另一侧的机器获取其启动信息。在我的 Linux 机器上是否有我可以关闭或配置以忽略这些请求的东西?

—Pat Derosa, pderosa@ap.org

BOOTP 请求实际上是否引起问题,或者它们仅仅是您日志文件中的烦恼?ISC DHCP 守护程序允许您使用 deny bootp 选项来忽略 BOOTP 客户端,但这可能无法阻止服务器记录请求。在这种情况下,您的选择可能有限。您可能不得不忍受该消息,除非您乐于在源代码中找到该行,将其注释掉并重新编译守护程序。

—Chad Robinson, crobinson@rfgonline.com

如果您没有 “allow unknown-clients”,您的 DHCP 服务器将不会为未通过 MAC 地址显式列出的机器提供服务。此外,如果您省略 dynamic-bootp,您的 DHCP 服务器将不会为 bootp 请求提供服务。

—Marc Merlin, marc_bts@valinux.com

从 Kickstart 添加服务

在编写我的 Red Hat 7.1 Kickstart 文件的安装后部分时,我想自动添加 ypserv 和 autofs 等服务。我该如何做?

—Sowmya, sowms@yahoo.com

chkconfig 将是执行此操作的方式。执行 chkconfig --help 并查看您可以使用的所有选项。例如,将 nfs 添加到在运行级别 3 自动启动,使用

chkconfig --level 3 nfs on

—Felipe E. Barousse Boué, fbarousse@piensa.com

邮件服务器速度慢

我们在检查邮件时,在服务器上解析请求时遇到很长的延迟。有时它是即时的(很少),有时它会超时(超过四分钟)。我们尝试了 “hosts, DNS” 和 “DNS, hosts” 的不同设置,假设它试图解析查询地址。当建立拨号连接时,它们会被分配一个 IP 地址和 DNS 服务器。

Internet (Squid) 没有问题,并且工作正常。似乎一旦建立连接检查邮件,下一个请求就是即时的。

—Kevin, kevin@atom.co.za

您可以使用 host mailserver 并检查延迟,看看是否是 DNS 问题。您可以使用 tcpdump 并监视往返于您的邮件服务器的流量,以查看延迟在哪里(假设它不是 DNS 问题)。

—Christopher Wingert, cwingert@qualcomm.com

您应该运行 tcpdump,或者如果您有 ethereal,则运行它并监听您的连接。这将使您了解 DNS 延迟是来自您这边还是可能来自邮件服务器那边。

—Marc Merlin, marc_bts@valinux.com

需要写入 Windows 分区

虽然我在 Linux 中挂载了我的三个 Windows 分区,但我只有以 root 身份登录时才有写入权限。我需要以自己的身份拥有写入权限,以便我可以运行 VMware。我已经尝试在以 root 身份登录时使用 chmod 更改这些分区的权限,但权限没有更改。

—Bill Freeto, wfreeto@earthlink.net

使用 uid 和 gid 挂载选项(您通常还需要 “quiet”)。vfat 分区的示例 fstab 条目如下所示

/dev/sda3      /drv/c          vfat
user,umask=002,uid=500,gid=500,quiet,low

更多信息可以在 mount 手册页中找到。

—Marc Merlin, marc_bts@valinux.com

磁盘空间已足够

有没有办法限制目录的大小?我想启动一个 Web 托管服务器,并将某些用户限制为 100MB。我该如何做?

—Jason Sidabras, sidabraj@msoe.edu

查看 Linux 的 quota 包。此应用程序的一部分驻留在内核中,必须编译到内核中或作为模块安装。另一部分是用户空间程序,用于处理实际的控制和通知方面。

—Chad Robinson, crobinson@rfgonline.com

查看 Quota mini-HOWTO:www.linuxdoc.org/HOWTO/mini/Quota.html

—Marc Merlin, marc_bts@valinux.com

2.4.2 内核崩溃!

我尝试将我的内核升级到 2.4.2。当我重启时,我遇到了内核崩溃。它说

root fs not mounted
cannot open root device "301" of 03:01
Please append a correct root = "boot option"
kernel panic vfs:
unable to mount root file system on 03:01.

我使用了与我的其他内核相同的设备 /dev/hda1,并且我执行了 rdev 以确保它是正确的。我还回到 make xconfig 并确保 ext2 已编译到内核中而不是作为模块。

—Michael Diaczyk, mdiaczyk@tampabay.rr.com

如果您没有以某种方式搞砸分区表或实际磁盘数据,您应该可以通过在启动时将参数传递给 LILO 来启动。在 LILO: 提示符下,尝试输入

linux root=/dev/hda1

一旦这起作用,编辑您的 /etc/fstab 以确保您的根 (即 /) 分区的条目是正确的。还要确保您的 /etc/lilo.conf 中的 root= 行指向正确的分区。

—Scott Maxwell, maxwell@ScottMaxwell.org

坏模块,坏,坏!

一个错误的模块是否有可能搞砸 /proc 文件,以至于没有人可以在不引起 oops 的情况下查看它们?如果模块在卸载时忘记释放中断,那么 /proc/interrupts 就会消失。如果它忘记释放 I/O 空间,那么 /proc/ioports 就会失效。如果它使用拼写错误的模块名称调用 unregister_chrdev(没人会这样做,对吧?),这会破坏 /proc/devices。当发生这类事情时,系统可以被拯救吗?还是重启是唯一的选择?

—Bill McConnaughey, mcconnau@biochem.wustl.edu

一个错误的模块有可能做任何事情——毕竟它作为内核的一部分运行。如果我看到像您报告的那样的问题,我会立即重启。从理论上讲,可以通过编写和安装另一个模块来修复问题,该模块撤消第一个模块造成的损坏,但这在实践中是不可能的,除非您碰巧确切地知道哪里出了问题——即使那样也不一定容易。

—Scott Maxwell, maxwell@ScottMaxwell.org

加载 Disqus 评论