Next Up Previous Contents Index

E.9 系统管理

E.9.1 当我使用 usercfg 生成了用户后, (生成的用户)不能登录 .

usercfg 存在一个 bug , 就是当使用 usercfg 时, 输入的用户密码从不会被加密, 或者 只是在密码域中放一个星号 . 我们正在解决这个问题, 但是目前还未完成 .

点击输入域左边的按钮, 选择 'change' , 然后在输入域中输入两次密码(每一次都用回车结束) .

另外一个可供选择的方法是使用命令行的 passwd 程序 .

E.9.2 PAM 是什么 ? 为什么使用它 ?

PAM 是一个其他系统采用的标准, 例如 Solaris 2.6. 请参考 /urlhttp://www.redhat.com/linux-info/pam/ 以获得更多关于 PAM 的资料 .

E.9.3 我怎样在 Linux 系统商设置安全 shell(SSH) ?

根据美国政府颁布的限制法令, Red Hat Linux 不能发布 ssh. 不过你可以 在站点 ftp.replay.com 下载大量的 ssh 和 PGP .

E.9.4 为什么 Linux 只能发现我的计算机的部分内存 ?

Linux 不能发现全部内存的原因多种多样. 在某些 386 主机上, 你需要激活 'Limit memory to 16M'选项来编译内核.

在大多数系统中, 原因是BIOS在通知操作系统内存数量时存在限制, 即使你的 主板可以容纳更多的内存, 也是一样限制. 通常这种限制是 16M, 32M, 64M, 128M. 为了解决这个问题, 我们需要在启动时明确地告诉内核当前内存的数量, 通过参数 mem=< 实际内存数量> .

如下的例子中, 我们有一台 32M 内存的计算机, 但 Linux 只能发现 16M . 在 LILO 提示符下, 我们键入 :

LILO: linux mem=32M

计算机启动后, 我们可以使用 free 命令察看内核是否识别出更多的内存. 如果已经识别出, 我们需要在 /etc/lilo.conf 中加入一行, 重新运行 lilo 以让它永久改变. 下面是一个(/etc/lilo.conf的)例子.

boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.0.32
        label=linux
        root=/dev/sda1
        initrd=/boot/initrd-2.0.32.img
        read-only
        append="mem=32M"

在编辑文件(/etc/lilo.conf)后, 不要忘记运行 lilo .

E.9.5 我的奔腾或更好的主机有超过 64M 的内存, 但是它运行任何程序都很慢 . 当我使用参数 mem=64M 通知 Linux 只使用 64M 内存时, 它的速度提高了. 这是为什么 ? 我能解决这个问题吗 ?

这是一个有关(缓存)命中率和内存的问题. 一些主板在使用超过 64M 的内存时并不使用外部缓存. 这样系统速度会明显地慢下来, 不幸的是没有什么办法解决此问题. 其他可能情况是你的主板只有 256K 的缓存, 却有超过 64M 的内存. 这时你可以增加(主板的)缓存到512K, 甚至 1M, 也许问题 就可以解决了 .

E.9.6 我的系统是 Red Hat 5.0, 已经升级到勘误表中列出 的 ld.so RPM 包. 但是我使用 libc5 的应用程序依然产生 'seg fault'. 什么地方错了 ?

使 libc5 应用程序不能运行的问题关系到几个方面 .

E.9.7 当我运行 fstool, 我看到一条信息说 一个分区似乎已经删除了, 并询问我是否需要将它从 /etc/fstab 中移去.

fstool 程序不能同当前版本的 tcl 一起工作, 它不应该再被使用. 只是由于某些差错, 使它随本版本一起发行.

由于 fstool 也许已经破坏了你的 /etc/fstab , 所以首先修复它. fstool 经常改动的部分是 cdrom 和 swap. 这里是一个例子(你需要 修改分区以适应你的系统).

/dev/sda2            swap                swap  defaults      0 0
/dev/cdrom           /mnt/cdrom          iso9660 noauto,ro   0 0

现在, 使用 rpm 移去 fstool.

rpm -e fstool

请使用另一个类似功能的程序 cabaret. 它位于 /usr/sbin/cabaret, 可以从命令行运行.

E.9.8 我如何在 Linux 下配置 Jaz 驱动器 ?

关于在 Linux 下使用 Jaz 驱动器的文档在 cdrom 的目录 doc/HOWTO/mini/Jaz-Drive 下, 或者已经安装系统的目录 /usr/doc/HOWTO/mini/Jaz-Drive 下.

E.9.9 我如何使用我的并行口驱动zip驱动器 ?

你可以尝试如下步骤: 编辑 /etc/conf.modules, 加入如下的行

alias scsi_hostadapter ppa

如果你想向 ppa 驱动程序传递一些参数, 可以加入如下的行:

options ppa ppa=<参数设置>

如过你要获得更多信息, 请到 www.torque.net/paraport

E.9.10 我不能使用 IDE 接口的 zip 驱动器.

首先检查并确认驱动器中已经插入了一张盘. 同样, 确认你安装了第 4 分区而不是第 1 分区. 例如 hdc4 .假定它是第四分区的原因是 MAC SCSI 使用(zip的)分区为主分区.

E.9.11 我以前的一些应用程序的时间发生错误 .

一些 libc5 应用需要 /usr/lib/zoneinfo, 所以你或者使用 libc6 重新编译, 或者做一个符号连接, 这样它们皆可以正确工作.

        ln -s ../share/zoneinfo /usr/lib/zoneinfo

请参见 Red Hat 勘误表 (www.redhat.com/errata) , 以得到其他方法.

E.9.12 我已经安装了所有的更新程序, 但是我的程序依然得到错误的时间.

如果你已经安装了所有的更新程序, 但你的程序依然(时间)依然出错, 检查一下 /etc/sysconfig/clock 中的设置. 它们看起来大概像这样:

UTC=true
ARC=false

这说明你的 Linux 假设你的BIOS时钟是属于 UTC 或者 GMT 时区. 很有可能的是(BIOS)时钟设置为本地时区, 因此你需要修改 UTC 行为:

UTC=false

E.9.13 安装过程中, 我并没有被要求使用第二张光盘. 当我使用 X 程序 'glint' 时, 它说没有 'rpms', 但是我在目录中发现了大量的 'rpms'. 这时什么原因 ?

Red Hat Linux 中的第二张光盘中含有所有的开放源代码应用源程序. 通过这些源代码 rpms(SRPMS), 你可以重建所有这些应用.

glint 不能发现这些 SRPMS 的原因是它们并不存放于 RPM 数据库中. 这样若想知道 src.rpm 是否安装过或是否正在覆盖一个较早的版本几乎是不可能的. 因此你需要使用普通的 rpm 安装它们.

rpm -ivh < 文件名称 > 将源代码安装到 SRPM 维护者使用的目录中. 缺省的 src.rpms 包的安装目录(Red Hat)是
/usr/src/redhat .

重建和改进 rpms 已经超过了本解答的范围. 参考书 'Maximum RPM' 和 man pages 将是更好的资料.

E.9.14 Linux 识别出了我的 CDROM, 但是当我尝试安装它时, 却失败了, 我该怎么办 ?

如果你的系统安装是正确的话, 那么简单地键入 mount /mnt/cdrom 就应该可以工作了. 如果不是这样, 你必须编辑 /etc/fstab 文件. 这是一个 /etc/fstab 的例子:

/dev/hdc        /mnt/cdrom     iso9660 noauto,ro 0 0
CD-ROM device)  (directory)    (filesystem type and options)

为了发现 CD-ROM 设备, 键入 dmesg | less, 搜索关于你的 CDROM 的信息. 如果你不希望修改 /etc/fstab 而安装 CDROM:

        mount -t iso9660 /dev/hdc /mnt/cdrom

E.9.15 我将 Linux 安装在 IDE 硬盘上, 但无论怎样 我需要从软驱启动. 我怎样从安装软盘启动系统?

如果你在 IDE 硬盘上安装了 Linux, 你可以按照以下的步骤从启动软盘启动系统.

插入启动软盘, 重启计算机. 在 boot: 提示符下键入:

vmlinuz root=/dev/hdXY
  [例如: vmlinuz root=/dev/hdb5 ]

X 是你的 Linux 驱动器字母, Y 是 root(/) 所在的分区.

E.9.16 我的即插即用适配卡不能工作.

2.0.xx 系列内核不能直接支持即插即用(PNP)协议. 你需要关闭适配卡的 PNP 功能(通过跳线或者适配卡设置工具配置它). 你也可以改变你的启动方式, 使用 Loadlin.exe 从 Windows 中启动 (因为 windows可以配置 PNP 硬件设备).

最后一种办法, 尝试一下 isapnptools 程序. 首先, 键入:

pnpdump > /etc/isapnp.conf

它将产生一个配置文件, 你可以编辑并选择符合每一块卡的设置. 然后键入 isapnp /etc/isapnp.conf 启动这些设备.

可以到 /urlhttp://www.roestock.demon.co.uk/isapnptools/ 获得等多信息.

E.9.17 当系统启动后, 我看到一条信息说有未知的PCI硬件存在. 这说明了什么?

有几个原因可以引发错误信息 "unknown PCI device". 第一个可能的解释(基本上无害)是 PCI 对于 Linux 的问询所作的答复方式Linux不能理解, 不过 Linux 依然可以继续运行. 最可能的事情是系统在问询 PCI 总线时挂起, 不能继续运行.

由于内核中的一个硬件问题, RedHat 的维护人员在此部分不能达到你的期望值. 他们可以让你知道正在做什么, 也许想看一下(出问题的)你的硬件, 这样他们可以在未来 做得更好. 可以使用如下地址联系维护人员:

linux-pcisupport@cck.uni-kl.de

(联系时)请包括如下信息:

E.9.18 现在当我的计算机启动时, LILO 缺省设置是启动 Linux. 我希望(LILO)缺省启动其他操作系统. 我怎样做?

若想改变缺省启动的操作系统, 你需要需要修改文件 /etc/lilo.conf, 改变各个操作系统的顺序. 在下面的例子中, 我们演示了如何改变启动的顺序, 使 DOS 取代 Linux 成为缺省的操作系统.

pico /etc/lilo.conf

# 这里使原来的文件

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.0.31
        label=linux
        root=/dev/hda2
        read-only
other = /dev/hda1
        label = dos
        table = /dev/hda

# 下面是修改后的文件:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
other = /dev/hda1
        label = dos
        table = /dev/hda
image=/boot/vmlinuz-2.0.31
        label=linux
        root=/dev/hda2
        read-only

保存你的文件, 退出编辑器. 运行命令:

/sbin/lilo -v

修改后的 lilo 已经写到启动设备中. 在启动过程中, DOS 取代了 Linux 成为缺省启动的操作系统, 另外在启动时, 有 50 秒的延时, 同时提示你可以 选择启动 Linux.

E.9.19 无论什么原因, 我现在需要进入 rescue 模式 以编辑一个文件. 但是编辑器告诉我 'unknown window type'. 当我进入 rescue 模式时, 我怎样才可以编辑文件 ?

在选择了 rescue 模式并回答了几个问题后, 你会见到 root 提示符(#). 你需要像本例中一样安装 Linux 分区. 下面演示中的分区只是一个例子. 你可以根据你的系统修改他们(sda1,sdb1,hda5,等等).

mkdir /mnt
mount /dev/sdb1 /mnt
cd /mnt/etc
export TERMCAP=/mnt/etc/termcap
vi filename

或者, 如果你需要使用一个不同的编辑器, 例如 pico, 你也许需要 chroot /mnt.


Next Up Previous Contents Index