最佳技术支持

作者:Various
奇怪的事情

当我安装 Mandrake 7.1 系统时,我对其进行了分区,以便将 /dev/hdb4 挂载到 /usr,将 /dev/hdb2/ 挂载到 /,将 /dev/hda1 挂载到 /boot。我的问题是,当我在卸载文件系统阶段重启或停止 Linux 时,我收到此错误:/usr: 设备繁忙。然后它就冻结在那里。当我再次启动系统时,它需要很长时间来检查 dev/hdb4。我想知道如何解决这个问题。—Charles Diaz-Alejandro,oguara@bellsouth.net

听起来一定是在系统降低运行级别时仍有进程在运行。如果该进程有任何文件打开或访问该分区,则 mount 可能不会成功。您可以尝试启动到单用户模式,然后查看您有多少进程以及具体是哪些进程。运行级别 1 应该只有极少的进程,因为当您切换运行级别时,它们会被终止——可能其中一个进程没有响应或无法正确终止。您可以在单用户模式下尝试的操作是以只读方式重新挂载 /usr 分区,命令为 mount -o remount,ro /usr。如果由于“繁忙”错误而失败,则尝试杀死一些编号较高的进程。您可能不想杀死编号非常低的进程。每次杀死后,尝试以只读方式重新挂载 /usr,直到成功为止。然后您就会知道哪个进程导致了挂起。这也可能是由于 amd 进程引起的。我见过 amd 和 nfs 引起类似的故障。一旦您知道是哪个进程,您就可以禁用该服务,或者至少朝着正确修复它的方向努力。—Andy Bradford,andyb@calderasystems.com

如果文件系统中的文件已打开,或者进程的当前工作目录位于该文件系统中,则系统不希望卸载该文件系统。大多数发行版会尝试在 umount 失败时以只读方式重新挂载文件系统,以避免在下次启动时进行文件系统检查。仅当分区中的文件打开以进行写入时,只读挂载才会失败。如果您的 mount 命令不是太旧,请将 umount 更改为 umount -r(手册上说:“如果卸载失败,请尝试以只读方式重新挂载。”)我无法判断您的 umount 失败的原因,但您可以尝试在关闭脚本中 umount 命令之前调用 “fuser” 来查找有罪的进程

fuser -m /usr; ps afx; sleep 10

(“ps” 有助于理解进程 ID 是什么)。有关详细信息,请参阅 man fuser。—Alessandro Rubini,rubini@linux.it

这可能是 Mandrake 中的一个次要错误造成的。一种找出原因的方法是在 /etc/rc.d/init.d/halt 的末尾之前添加以下内容

(fuser -vm /usr; ps auxww )| more
read a

(在 “# Now halt or reboot” 部分之前)。这通常需要您将 /usr/sbin/fuser 复制到 /sbin/fuser,以便它可以访问,但由于 /usr 没有被卸载,它仍然可以在 /usr 中访问。Fuser 应该会向您显示仍在使用 /usr 挂载点的进程列表,您可以查找它们的编号。然后,根据输出,您可以修改 halt 脚本以杀死这些进程(尽管 halt 脚本应该已经杀死了所有进程),或者询问 MandrakeSoft 为什么这些进程没有被杀死,并且您的分区没有被卸载。—Marc Merlin,marc_bts@valinux.com

“睡眠”模式

Linux 是否具有类似于 Windows 98 的“待机”模式?这将使我的计算机能够在未检测到活动时某种程度上断电并休眠。—Ronnie Bell,ronbell@cais.com

如果您的内核已编译 APM(我相信默认的 Red Hat 6.2 内核是这样),您可以如果您有 PC 机箱上的待机按钮,可以使用它,并将其配置为在您短按时将机器置于待机状态。从命令行,您也可以使用 apm -sapm -S 进行挂起和待机。—Marc Merlin,marc_bts@valinux.com

当没有工作要做时,内核会自动停止 CPU,使 CPU 进入低功耗模式(当有更多工作要做时,CPU 会重新激活;这对您来说是完全透明的)。您还可以在内核中配置 APM(高级电源管理)支持,假设您有一台带有 APM 兼容 BIOS 的笔记本电脑。为了更进一步节省电量,您可以告诉 X 服务器使用 DPMS(显示电源管理系统)在键盘/鼠标长时间不活动后关闭显示器。我使用以下命令执行此操作

xset +dpms
xset dpms 600 1800 3600

这会将显示器在 10 分钟(600 秒)后置于待机模式,在 30 分钟(1,800 秒)后进入挂起模式,并在 60 分钟(3,600 秒)后完全关闭。这些级别中的每一个都会增加节电量。调整数字以适应您的工作方式,但请注意,您的显卡和显示器必须支持 DPMS 才能使其工作——否则,不会发生任何特殊情况。作为 xset 命令的替代方法,您可以在 XF86Config 文件中启用 DPMS 支持;在 XF86Config 手册页中搜索 “power_saver” 以获取更多信息。最后,您可以使用 hdparm 命令来停止硬盘旋转。我个人不推荐这样做,仅仅是因为据报道,驱动器停止旋转和重新启动所造成的磨损与六小时的使用时间一样多,但如果您愿意,可以这样做(阅读 man hdparm 以获取详细信息)。我愿意为地球的利益做出一些牺牲,但牺牲我的 Linux 磁盘实在是太过分了。:-)—Scott Maxwell,maxwell@ScottMaxwell.orgi

您应该使用 apmd 软件包,该软件包可从 Red Hat 的发行版中获得。当然,“apmd” 守护进程应该在启动时启动(尝试 “setup” 或 “linuxconf” 以将其添加到系统服务)。—Pierre Ficheux,pficheux@com1.fr

我是谁?

我正在 Dell 机器上运行 Red Hat 6.1,并通过 Telocity 访问 DSL 互联网。在获得 Telocity 服务之前,我的计算机始终认为自己只是 “localhost.localdomain”。(例如,我的 bash 提示符会显示 “[jenny@localhost tmp]$ ”)。这似乎很糟糕,但没有引起任何问题。在 Telocity 进入我的生活后,它主要认为自己是 dsl-216-227-xxx-xxx.telocity.com。我不是很确定,但我认为我的提示符也相应地改变了。但是,在最近一次重启后,我们又回到了 “localhost.localdomain”,并且某些使用服务器名称的许可证管理软件不再工作。许可证是在 DSL 阶段设置的。我已经让他们再次工作了,但我担心有一天我的机器会回到 dsl-blah-blah-blah,我将不得不再次修复所有这些。我的计算机的真实身份在哪里?在启动过程的哪个点或在运行的系统上决定了这一点?我如何才能完全消除其中一个身份?/etc/hosts 的作用是什么?我可以同时拥有这两种身份并将其都放在那里吗?如果可以,dsl-blah-blah-blah 的 IP 地址是否需要是环回地址 127.0.0.1,还是我从 Telocity 获得的 IP 地址?记录一下,uname -n 的输出(至少今天)是 localhost.localdomain。这是我的 /etc/hosts 文件

[root@localhost splus]#  cat /etc/hosts 172.16.87.2
windoze.localdomain  windoze 127.0.0.1  localhost.localdomain
localhost

非常感谢!—Jennifer Bryan,jennybryan@telocity.com

Red Hat 将机器名称保存在三个位置:/etc/HOSTNAME(很大程度上被忽略;它是为了与 Slackware 兼容)、/etc/sysconfig/network(HOSTNAME 和 DOMAINNAME)或 /etc/hosts。您可以使用 shell 提示符中的 hostname 更改机器的主机名

moremagic:~# hostname foo
moremagic:~# hostname
foo
moremagic:~# bash
foo:~# exit
exit
moremagic:~# hostname moremagic.merlins.org
moremagic:~# hostname
moremagic.merlins.org

—Marc Merlin,marc_bts@valinux.com

实际上,当以太网接口关闭时(即系统未连接到网络),您的机器是 “localhost.localdomain”。一旦 eth0 接口启动,您的系统名称就是 “dsl-216-227-xxx-xxx.telocity.com”。根据问题的描述,我认为您没有使用固定的 IP 地址,因此您的 IP(以及您的名称)将在每次重启系统时更改。如果您的许可证是为静态 IP 地址配置的,则只有当您的动态地址与许可证地址匹配时,它才会工作。我对您的许可证管理器了解不多,但也许可以使用为许可证管理器中定义的地址配置的 Linux “dummy” 网络驱动程序。以下是我的系统上 dummy0 配置的示例(假设 192.168.3.3 是许可证管理器使用的静态地址)

ifconfig dummy0 192.168.3.3 up
route route add 192.168.3.3 dummy0

如果连接到 Internet,您的系统将同时响应动态 DSL IP 地址和静态 dummy IP 地址。如果未连接,系统将仅响应许可证管理器使用的 dummy IP 地址。另一种解决方案是从您的 ISP 获取静态 DSL IP 地址。它更昂贵,但每次都有效。我不认为 /etc/hosts 可以在动态 IP 的情况下帮助您。该文件对于添加您不想添加到 DNS 的主机名+地址或名称别名很有用。—Pierre Ficheux,pficheux@com1.fr

软盘问题

好的,我认为这很愚蠢,但我找不到任何关于它的信息。我的软盘今天之前一直工作正常;现在当我单击它或尝试挂载它或尝试访问其上的文件,或格式化它或将文件放在其上时,我收到一条错误消息,内容为 “mount: can't mount, dev/fd0 has wrong major or minor number”。这是怎么回事?我该如何修复它?—Sean Lafreniere,sblafren@easystreet.com

以下是 Red Hat 上 /dev/fd0 的正确权限和主/次编号

brw-------   1 root   floppy   2,  0 May  5  1998 /dev/fd0

如果它们不匹配,您可以使用 mknod /dev/fd0 b 2 0 重新创建它们。—Marc Merlin,marc_bts@valinux.com

系统锁定

鼠标是否可能导致系统锁定?当我在 X 会话中并使用鼠标时(我尝试过 Microsoft Intellimouse 和 Logitech First Mouse),有时我的系统会锁定,我甚至无法强制退出会话。我尝试过的鼠标功能正常,并且我尝试在 PS/2 和串行端口中使用它们,同时使用通用和特定驱动程序。这种锁定仅在使用鼠标时发生,但它不会立即发生——它可能在使用五分钟或使用 45 分钟后发生。似乎没有规律。Red Hat 的技术人员一无所知,我变得非常绝望。任何帮助将不胜感激。—Mike,shirleymg@netscape.net

考虑到 PS/2 鼠标使用中断 12,除非您有使用该中断的 ISA 卡,否则任何有自尊的主板都不应将中断 12 分配给其他任何设备,因此这可能不是鼠标冲突。不一定是鼠标的问题;很可能只是您的 X 服务器或您的显卡。尝试查看升级 X 是否有效,如果仍然没有帮助,请尝试将显卡更换为另一种类型。—Marc Merlin,marc_bts@valinux.com

如果这种情况仅在使用 PS/2 鼠标时发生,那么可能是由于某些版本的内核驱动程序中存在问题。PS/2 鼠标由键盘控制器管理,因此如果您丢失一个,您将同时丢失两者。尝试升级到您正在使用的内核版本的最新版本。由于您报告了任何类型的鼠标都存在问题,因此我认为这与鼠标活动无关。请尝试在锁定发生时求助于 “Magic SysRq” 功能来打印一些系统信息。使用 Magic SysRq 功能,您还应该能够杀死 X;如果不能,您应该在文本模式下重现该问题。如果无法提取任何信息,则系统已硬锁定,这看起来更像是硬件问题而不是软件问题。可能是处理器因过热或其他类似原因而关闭。—Alessandro Rubini,rubini@linux.it

基于文本的安装

如何在基于文本的模式下使用 Corel 1.1 进行安装?或者,换句话说:我正在尝试在笔记本电脑上安装 Corel 1.1。由于 Corel 从一开始就是基于 GUI 的,因此我在安装过程中会得到无法读取的屏幕。我能够在笔记本电脑上安装 Red Hat 6.2,因为我能够在安装过程中将其置于文本模式。关于 Linux 笔记本电脑安装有什么明智之言吗?—Ed,Ed.Werzyn@POBox.com

我认为 Corel 需要符合 Vesa 2.0 标准的显卡才能安装,并且不提供文本模式安装。如果您仍然真的想安装 Corel,您可以将其安装到另一台机器上,从 NFS+网络+pcmcia 启动软盘或 CD 启动(http://www.toms.net/rb/ 例如),然后将您已安装的发行版通过 NFS 复制到您的笔记本电脑。—Marc Merlin,marc_bts@valinux.com

隐形打字

大家好,我似乎遇到一个小问题。当我从 X 或退出窗口管理器时,按下 ctrl-alt F1-F6,我看到的控制台是空白的;我在该控制台上键入的所有内容都是盲写的。每当我进入 X 并返回到控制台时,都会发生这种情况。我可以发出 reset 命令,我将恢复控制台,但只要我返回 X 然后返回,它就会再次变黑(或不显示字体/文本)。我已经编辑了 /etc/inittab,使 alt + 向上箭头发出 reset 命令,但这是一种变通方法,非常烦人。有人知道实际搞砸了什么以及如何修复吗?我最近编译了 X 4.01,并且一直很好,直到我在一天左右后重启以进行内核编译。我以前见过这个问题,所以这不是 X 4.01 特有的问题。我猜这是一个 “我搞砸了某些东西” 的问题。我没有运行 SVGAtextmode,控制台上的字体也没有乱码,它们只是变黑了。—Steve Udell,hettar@home.com

如果您没有在 80x25 的文本模式下运行,请尝试这样做。某些视频驱动程序无法很好地恢复非默认文本模式,更不用说处理 VesaFB(带有企鹅启动徽标的图形文本控制台)了。—Marc Merlin,marc_bts@valinux.com

加载 Disqus 评论