shadkong 发表于 2005-10-25 14:04:16

Slackware 的 FAQ(非官方中译本)

欢迎转载,转载请保留译者信息,谢谢!:^)
========================================

这些都是人们经常问我的问题。希望它们在这里得到解答后不会再次被问到。

很多问题是很老的而且过时,但是我把它们留在这里是因为他们可能会给一些人提供解决相似问题的思路。同时,你也会发现其中的一些从其措辞来看不像是问题,而更像是尖叫着抱怨。嘿,我想要准确的描述。:^)

Q1:装完之后,我的以太网卡、CD-ROM 驱动器和/或其它我认为 Linux 能够支持的硬件不能工作。为什么?
Q2:无软驱安装本操作系统是否可能?
Q3:现在软盘上的 N 系列不合适,我该如何为我的膝上型电脑取得网络支持?
Q4:为什么我的索尼 CDU-31/33a 不再能被 Linux 检测到了?以前可以的!
Q5:内核不能识别一个与 Soundblaster 16 IDE 相连的 CD-ROM!
Q6:我用 RAWRITE 做的磁盘无法启动!
Q7:我能够很好的安装,但是装完的系统不能启动!
Q8:为什么我在 Slackware 下被告知“网络不可达”?
Q9:$%#@! 为什么我的 UltraStor SCSI 不能被检测到?在 DOS 下可以的!
Q10:如果 NFS 安装的安装菜单不能工作,我如何在开始安装之前动手设置网络?
Q11:我的 IBM Thinkpad 不能正确地把跟磁盘加载到 ramdisk,所以我不能安装 Linux。我该怎么办?
Q12:我的大(> 1/2 G) IDE 驱动器报告说多于16个头,因此 Linux 无法在上面安装。我该怎么办?
Q13:我怎么用我新采用的内核作一张 Slackware 引导盘?
Q14:我的退格键在X 下表现怪异?我如何修复它?
Q15:我构建了一个新内核。现在我该如何用这个新的 bzImage 文件替换已存在的内核?
Q16:为什么我不能从 elvis (vi) 中剪切粘贴到一个 xterm?
Q17:为什么我的总线鼠标不工作?内核、选择、X 服务器以及 text-mouse 都说“没有该设备。”
Q18:我看到我的 SoundBlaster/松下 CD-ROM 在引导时被检测到,但我不能从中安装或加载它。怎么办?
Q19:我用的是 UMSDOS 并且想让 Windows 与 Linux 使用同一个交换空间。应该怎么做?
Q20:安装盘上的 root 密码是什么?
Q21:Slackware Linux 发行版在我的机上装好后我怎么添加和删除软件?
Q22:我不知道 setup/pkgtool/installpkg 把哪些文件放到那里?
Q23:我把我的分区设置成为 "Linux native" 但是 Slackware 仍然无法检测到它们!我该怎么办?
Q24:我有一台 (PS/1 || Valuepoint || Thinkpad),由于 fdisk 不能认出我的硬盘而无法安装。我该怎么办?
Q25:为什么我的 /etc/issue 和 /etc/motd 总是在开机是重设置它们自身?
Q26:Emacs 卸载核心,提示说缺少库,或者没有 X 支持!
Q27:为什么我编译东西时提示 'signal 11: internal compiler error' 就死了?
Q28:我该如何改变(处理) ls 的颜色?
Q29:我用 "startx" 启动 X 而且它也工作了,但是我无法切换到虚拟终端。为什么?
Q30:为什么我无法在 X 里用新的 ghostscript?
Q31:所有东西都不能工作了!该怎么办?
Q32:我如何用一个自制的内核做一张引导盘?
Q33:当我刚刚装完 Slackware 的时候,系统可以发现我的 CD-ROM。但是但我尝试用 LILO或引导盘引导后系统就不再能找到 CD-ROM 驱动器了!怎么修复它?
Q34:我能用一个串口上的终端来安装吗?
Q35:“总线错误”是什么意思?

Q1:装完之后,我的以太网卡、CD-ROM 驱动器和/或其它我认为 Linux 能够支持的硬件不能工作。为什么?

A:也许你正在运行的内核不包含这些支持。为解决这个问题,你得安装一个包含这些支持的内核。那可能是 CD-ROM 上 /kernel 目录下的某个合适的内核,或者你可以自己为你的机器编译一个内核。这并不会很难──请看下面关于编译新内核的说明。

Q2:无软驱安装本操作系统是否可能?

A:是的!而且它一点儿也不难。

(注:第一次接触本方法的时候请看 rootdisks/install.zip)

首先,你将需要一个 DOS 分区。安装 Loadlin 到某个目录,比如 C:\LOADLIN (一个可用的ZIP 格式的 Loadlin 包位于 kernels/ 目录下)。你把 Loadlin 装上之后,需要复制一个 Linux 内核及一个 Slackware 安装器映像到 C:\LOADLIN 目录下。我们接下来就来描述这个过程:

你可以在 CD 上的 kernels/ 目录下找到许多内核。那些子目录有着和 Slackware 引导盘一样的名称,并包含了用于制作引导盘的内核。你可能需要参考 bootdisks 目录下的 README 文件来决定哪个内核将会在你的系统上运行得最好。一旦你选中了某个内核(zImage 或者 bzImage),把它复制到 C:\LOCALIN 目录下。然后,从 isolinux 目录下抓取安装器映像(叫做 “initrd.img”)并将该文件复制到你的 Loadlin 目录下。

现在,为了启动安装进程你得启动 DOS。如果你在运行 Windows95,在开始菜单里有个重新启动电脑进入到 MS-DOS 模式的选项。(注:如果你错过了以前你开机后可以自动进入 DOS 而要进 Windows 则需要键入 “win” 的好日子,很容易就可以把 Windows95 修正过来,让它再次那样子工作。编辑 C:\MSDOS.SYS 文件,把 BootGUI=1 改成 BootGUI=0)

启动了 DOS 之后,转到 Loadlin 目录并使用一个如下的命令来开始安装根磁盘:

loadlin zimage rw root=/dev/ram initrd=initrd.img loadramdisk=1

通常安装程序会从引导盘复制内核,因此当你使用这个方法的时候,你必须略过那个菜单,同样,也要略过制作引导盘的菜单。同时,略过 LILO 菜单也是明智的。因为 /vmlinuz 未必是你想要的。你最好的赌注是使用 Loadlin,因为是它把你带到这里来。编辑 LINUX.BAT 文件指向你的 Linux 根分区。

Q3:现在软盘上的 N 系列不合适,我该如何为我的膝上型电脑取得网络支持?

A:首先把 A 系列装上。然后,把 N 系列中的 tcpip.tgz 包放到一张软盘上。如果你的内核不包括网络支持,则把 netmods.tgz (网络内核模块)包放到另一张软盘上。如果你需要 PPP,则把 PPP包也放上。然后,(重启之后,不是从安装软盘重启)运行 “pkgtool”。选择 “install packages from floppy disks” 这一选项,安装 tcpip.tgz netmods.tgz 及 ppp.tgz 包。然后运行 netconfig 来设置你的网络,运行 pppsetup 来设置 PPP,编辑 /etc/rc.d/rc.modules 来为你的以太网卡加载支持。当你重启后,机器就有了网络能力了,而你则可以开始从网络上添加更多的软件。

Q4:为什么我的索尼 CDU-31/33a 不再能被 Linux 检测到了?以前可以的!

A:以下摘自源代码:

************************************************
警告 - 所有的自动检测已经被从驱动中移除。你必须通过在启动时或者在 lilo.conf 里设定 LILO 来配置 CDU31A。在我的 lilo.conf 里有如下一行:

append=”cdu31a=0x1f88,0,PAS”

第一个数字是这块卡的输入/输出基本地址。第二个数字是中断(0表示没有)。如果在 Pro-Audio spectrum 上则第三个应该是 “PAS”,否则就没有。
************************************************

你也可以在 Loadlin 中使用以下选项:

C:\LOADLIN\LOADLIN C:\LINUX\VMLINUZ root=/dev/hda1 cdu31a=0x1f88,0,PAS

或者,在引导盘 LILO: 提示符后使用以下选项,例如:

LILO: ramdisk cdu31a=0x1f88,0,PAS

LILO: mount root=/dev/sda1 cdu31a=0x1f88,0,PAS ro

Q5:内核不能识别一个与 Soundblaster 16 IDE 相连的 CD-ROM!

A:首先,确认你正在使用适当的内核──这种情况下需要的是 IDE/ATAPI CD-ROM 类型,而非 SBPCD 类型。然后,如果问题还是没有解决,那么使用第二个 IDE 通道(IRQ 15 0x170),并且确认驱动器被设置为主驱动器(背后的跳线)而非从属驱动器(通常这是默认选项)。

Q6:我用 RAWRITE 做的磁盘无法启动!

A:首先,检查你是否使用了大小正确的映像。如果你在1.2 MB 的软盘上使用1.44 MB 软盘的映像(或者反之亦然),你可能会看到“LI” 的信息,同时引导程序会挂起。

另一个可能是 BIOS 的问题──一位用户曾经向我报告 RAWRITE 在他的机器上失败除非他先在一张 MS-DOS 软盘上做“dir a:“。很明显这是由于 BIOS 不恰当地把地址 0000:0526 (扇区数)初始化做11 h 而不是12 h。在设备上用“dir” 可以修正该值。在本案中受影响的机器使用 Unicore Software 的“Mr. BIOS”。

Q7:我能够很好的安装,但是装完的系统不能启动!

A:Slackware 使用精简的内核来进行安装──换句话说,这些内核仅包含控制完成安装所需设备的驱动。如果你没有安装引导盘的内核,也许应该安装(比如说) bare.i IDE 引导盘,但是却从 A 系列中装了 SCSI 内核到硬盘。由于这个内核内建了许多 SCSI 驱动,如果有一块不常见的硬件或一个非标准的端口/IRQ 不能被内核正确识别的话,这将会导致引导时挂起。如果发生此事,你得尝试一个不同的内核。首先,使用在安装过程中正常工作的引导盘来启动你的系统。为了做到这一点,引导这张盘并在 LILO 提示符处输入如下命令:

mount root=/dev/sda2

(以上假设 /dev/sda2 是你的 Linux 根分区,否则使用你系统上适当的设备名)

一旦你的系统运行起来之后,安装或者编译一个不同的内核。

编译内核的说明可以在你的内核源代码目录下找到(如果你安装了内核源代码就会有的)。内核源代码通常可以在 /usr/src/linux 下找到。

简单说来,构建一个新内核的方法如下:

cd /usr/src/linux

make config (然而回答你所需要回答的问题)

make dep ; make clean ; make zImage

如果 zImage 构建成功,请看关于如何通过 LILO 或者 Loadlin 安装它的说明,或者做一张引导盘。

一旦你完成之后,你可以希望通过 cd'ing 到 /usr/src/linux 来整理它并再次做 'make clean'。

祝你好运!如果你能解决这个问题,那么你在你向一个 Linux 高手转变的道路上表现得非常好。

Q8:为什么我在 Slackware 下被告知“网络不可达”?

A:这有几种可能性。对大多数用户而言,在机箱外面的一切都运作良好。但是,如果你遇到了这个问题,这里有两个办法你可以尝试:

1、把 /etc/rc.d/rc.inet/ 里的 ifconfig 调用中的广播地址和子网掩码的参数(及其变量)对调。确认你没有尝试设定你自己的 IP 地址──你不该那么做。

2、确认 /etc/networks 被恰当地设置。

3、你也许想尝试 'netconfig' 脚本。

它并不完美,但工作却干得漂亮。

4、确认你所用的内核支持你的硬件。Slackware 提供的大多数内核包括一个 /boot/config 文件,你可以查看编译选项。

Q9:$%#@! 为什么我的 UltraStor SCSI 不能被检测到?在 DOS 下可以的!

A:把输入/输出地址设置成 0x340 而非 0x330。

遇到有硬件不能工作,一个好的规则就是在器上玩弄 IRQ 和输入/输出设置并观察有什么发生。比如你的系统启动了并能运行,而 CD-ROM 或者磁带或者其它类似东西,你总是可以在 /usr/src/linux/drivers... 下驱动程序源代码里找一找。真的,这不会令你上当的!通常,源代码里包含了重要的文档,比如该类设备默认的 IRQ 设置,以及在 /dev 里主要的入口数目。你也可以尝试另一张引导盘看看是否有效。

Q10:如果 NFS 安装的安装菜单不能工作,我如何在开始安装之前动手设置网络?

A:如果你的 Linux 及其在 /etc/exports 里的 hosts 中被列出(但并非整个网络),在开始安装之前,你可能需要做下列事情。通常只是当 NFS 服务器与你的 Linux 机器处于不同的子网掩码时才需要这么做:

# Setup the loopback device:
ifconfig lo 127.0.0.1
route add -net 127.0.0.0
# Setup the network:
ifconfig eth0 1.2.3.4 # 1.2.3.4 是我的机器的 IP 地址。
route add -net 1.2.3.0
route add default gw 1.2.3.1 # 在这个例子中,我们的 NFS 服务器 ip 地址为
# 1.2.31.4 且属于不同的网络。

Q11:我的 IBM Thinkpad 不能正确地把跟磁盘加载到 ramdisk,所以我不能安装 Linux。我该怎么办?

A:某些旧的 Thinkpad 的磁盘转换扇区的工作有点不同。这可以通过在引导时指定 "floppy=thinkpad" 来解决:

boot: ramdisk floppy=thinkpad

……在引导盘的 LILO 提示符处。

Q12:我的大(> 1/2 G) IDE 驱动器报告说多于16个头,因此 Linux 无法在上面安装。我该怎么办?

A:查看 /docs/mini/Large-IDE 文件,有关于如何解决这个问题的说明。(感谢 Bob DiMarco 把此问题报告给我,也感谢 Prtrick LoPresti 第一个编译信息)

注:较新的内核 (> 1.1.40) 将会自动为你完成此一翻译,因此多余的工作是不必要的。

Q13:我怎么用我新采用的内核作一张 Slackware 引导盘?
A:好,你选中一个已存在的内核(宁可找个大点的如 "scsinet.s"),把它放到一张软盘上,然后这么做:

mount /dev/fd0 /mnt (加载它)
cat zImage > /mnt/vmlinuz (令新内核就位)
rdev -R /mnt/vmlinuz 0 (加载为可读写)
rdev /mnt/vmlinuz /dev/fd0u1440 (使用这个驱动器,或者 /dev/fd0h1200)
rdev -r /mnt/vmlinuz 49152 (令 ramdisk 可用)
lilo -r /mnt (重装 lilo)
umount /mnt (好了!你成功了!:^)

Q14:我的退格键在X 下表现怪异?我如何修复它?
A:我尚未真正见过此一问题。但我偶尔听到它。你也许可以尝试在 /usr/X11/lib/X11/xinit 下或者 $HOME 下的 .Xmodmap 里加入:

keycode 22=BackSpace

Q15:我构建了一个新内核。现在我该如何用这个新的 bzImage 文件替换已存在的内核?

A:首先,你必须准备新的内核。如果你正在使用 UMSDOS,你会希望你的系统引导成可读写。否则,你将希望它被引导成只读以便你的文件系统得到安全的检查。所以,这么做:

rdev -R bzImage 0

对于其它文件系统:

rdev -R bzImage 1

然后,你需要设置根分区。比如说,如果你的 Linux 根分区是 /dev/hda2,你需要这么做:

rdev bzImage /dev/hda2

然后,如果你喜欢可以设置显示模式。以下例子是设置成80x25普通终端模式:

rdev bzImage -1

其它模式包括:-3 = 提示符,-2 = 扩展 VGA。如果你使用 LILO 而且想试试扩展图象模式,那么你就要把 /etc/lilo.conf 里强制成为普通模式的那一行删去。接下来,你要安装内核。如果你从软盘引导,你可以简单地把一张格式化过的软盘插入软驱,然后这样写入 bzImage:

cat bzImage > /dev/fd0

如果你使用 lilo,你得把 bzImage 复制到你的 lilo.conf 希望它所在的位置(也许是 /vmlinuz)并重装 lilo。如果你用 Slackware 的 liloconf 脚本这同样会奏效的。(这是 setup 使用的脚本)

cp bzImage /vmlinuz ; lilo

你得先备份你原来的 /vmlinuz。

如果你使用 Loadlin,把内核复制到 Loadlin 可见的 DOS 分区(如过你使用 UMSDOS,就不必这么做)。然后像这样从 DOS 启动 Linux:

c:\loadlin\loadlin.exe c:\linux\vmlinuz root=/dev/hda2

那会有效的。

Q16:为什么我不能从 elvis (vi) 中剪切粘贴到一个 xterm?

A:最近的 elvis 用鼠标来代替游标位置。如果你想剪切粘贴,那么请在你使用鼠标的同时按住左 shift 键。

Q17:为什么我的总线鼠标不工作?内核、选择、X 服务器以及 text-mouse 都说“没有该设备。”

A:伴随 Slackware 一起发布的内核都没有包含总线鼠标的驱动。近来我尝试把它们包括进来但是却有严重的驱动程序冲突──所以如果它们无法与其它驱动共存的话最好还是把它们留在外面。要我提供包括全部总线鼠标驱动的各个版本的预编译内核显然是不合理的。我只有一台386。;^)

(我开玩笑的,在1999年3月份的时候,我正用着一台 P2-450)

解决方案是从内核模块中加载你的鼠标支持。编译 /etc/rc.d/rc.modules,取消你的鼠标行前面的注释:

# Mouse support:
# /sbin/modprobe atixlmouse
# /sbin/modprobe busmouse
# /sbin/modprobe msbusmouse

(为了取消一个 shell 脚本的注释行,你可以用一个文本编辑器删掉该行开始处的 '#')

Q18:我看到我的 SoundBlaster/松下 CD-ROM 在引导时被检测到,但我不能从中安装或加载它。怎么办?

A:尝试把驱动器号设置为0.安装盘希望这样。在驱动器的背后应该会有用来设置它的跳线──把它移到 leftmost 的位置。

Q19:我用的是 UMSDOS 并且想让 Windows 与 Linux 使用同一个交换空间。应该怎么做?

A:如果你想让 Linux-UMSDOS 与 Windows 共享交换文件,你可以这么做:

1、创建一个 NNNN 千字节的永久交换文件。
2、在 /etc/rc.d/rc.local 里加入如下行:

rm -f /DOS/windows/spart.par <---用来镇压下次启动时 Windows 的抱怨!
mkswap /DOS/386spart.par NNNN
sync
swapon /DOS/386spart.par

3、在 /etc/rc.d/rc.0 文件里加入 "swapof"。

Q20:安装盘上的 root 密码是什么?

A:没有 root 密码。如果你被要求输入,通常是因为你用来安装的内存不够。

为了解决这个问题,查看你的 CMOS 设置并确认没有打开 ROM 屏蔽。ROM 屏蔽浪费内存且不会提高 Linux 的性能。同时确保你所用的是能够使用的最小的引导盘。比如说,你不是从 NFS 安装到 SCSI 驱动器你不必使用 "scsinet"。使用小一点的东西── 如果可以的话就用 "bare" 磁盘。有人误以为如果它们想在安装完成后使用网络的话就要使用带网络驱动的引导盘。不是这样的!引导盘上包含的东西与你在安装后所能使用的东西没有任何冲突──几乎在所有的情况下你都不需要在安装后的系统上运行与你进行安装时相同的内核。

Q21:Slackware Linux 发行版在我的机上装好后我怎么添加和删除软件?

A:为了删除软件包,输入 "pkgtool" 然后根据提示来做。 pkgtool 也可以让你从当前目录中添加软件包。

更好的安装软件方法是用 "setup" 脚本。当你完成了初次安装之后,setup 把它自己的一个副本放到你的 /sbin 目录下以便将来再用。如果你确实愿意的话,你也可以通过引导盘或者安装盘来添加软件。

如果是通过 NFS 来给一个运行中的系统添加软件的话,你最好手动加载分区并使用 setup 的 'install from a mounted directory' 的功能。还有一些命令行工具可以让你创建、添加和删除软件包。你可以看 manpages: installpkg(8), removepkg(8), makepkg(8), explodepkg(8)。下面是如何用 installpkg 来安装软件包的一个简单例子:

instalpkg package.tgz

Q22:我不知道 setup/pkgtool/installpkg 把哪些文件放到那里?

A:查看 /var/adm/packages。

类似的,你可以在 /var/adm/scripts 里找到每个包的安装脚本。

Q23:我把我的分区设置成为 "Linux native" 但是 Slackware 仍然无法检测到它们!我该怎么办?

A:这个问题比较少见,我还不清楚是什么引起的。

[ 我发现这与 IBM PS/1, Thinkpad 及类似机器上的检测不到硬盘的问题不同。如果你有这些机器的话,fdisk 会产生问题,在下面会提到 :^) ]

通过以下方法你仍然可以进行安装:

1、通过一张引导盘启动 text.gz。
2、为 Linux 创建并格式化分区。
3、把目标分区挂载到 /mnt 下。
4、键入 "setup -target_mounted"
5、参照安装说明的余下部分进行安装。
6、键入 "vi /mnt/etc/fstab" 并输入一个适当的 fstab。
以我的 fstab 文件内容为例:

/dev/hdb2 swap swap defaults
/dev/hda2 / ext2 defaults
/dev/hda3 /usr xiafs defaults
/dev/hda1 /dos msdos defaults
/dev/hdb1 /os2 msdos defaults
none /proc proc defaults

下面略做说明:第一部分是所需要挂载的分区,第二部分是指定它应被挂载到哪里,第三部分是文件系统,最后一个部分是使用选项。除非你是 Linux 专家,否则把它设置为 "defaults"。

其它需要知道的事情:

确认你在把其它分区挂到根分区下之前已列出根分区。
加入 /proc 这样一行,否则 "ps", "w" 等将无效。
在最后插入一个空行是个好主意,因为曾经有人向我报告说最后一行列出的分区不能被加载。

7、当你创建并保存此文件后,你就可以按 ctrl-alt-delet 来重启了。

Q24:我有一台 (PS/1 || Valuepoint || Thinkpad),由于 fdisk 不能认出我的硬盘而无法安装。我该怎么办?

A:你需要在引导盘的提示符处输入你的硬盘参数。你也可以通过在第一个参数后使用第二个 hd= 参数来指定第二个 IDE 驱动器的几何性质。

在你启动了引导盘之后,你会发现有更多的在 LILO 提示符出传递你的硬盘参数到内核使之能够被识别的格式信息。

如果你希望 LILO 能工作,你得编辑 lilo.conf 文件,加入一行类似于 hd= flag。把如下一行加入到该文件的开头处:

append="hd=cyl,hds,secs"

"cyl", "hds",及 "secs" 分别是该驱动器上 cylinders,sectors,及 heads 的数值。

如果你有两个 IDE 驱动器,(像这样)指定它们:

append="hd=967,13,31 hd=944,14,40"

Q25:为什么我的 /etc/issue 和 /etc/motd 总是在开机是重设置它们自身?

A:是 /etc/rc.d/rc.S 在你开机后测得你当前正在运行的内核后设置它们──除非在登入处显示的内核版本不再是当前版本了。

如果你想自己来写 /etc/issue 和 /etc/motd,你可以注释掉 /etc/rc.d/rc.S 中的这部分。

Q26:Emacs 卸载核心,提示说缺少库,或者没有 X 支持!
A:GNU Emacs 系列包括一个你可以选择的带 X11 支持的或不带 X11 支持的版本。确认你的机器上有一个正确的二进制文件。

包含 X11 的二进制文件将被作为第一张光盘上某个软件包的一部分被安装,它是否会被安装取决于你是否需要 X11 支持。如果你不需要 X11 支持,安装最后一张盘上 Emacs 系列中的 "emac_nox.tgz" 就可以了。

Q27:为什么我编译东西时提示 'signal 11: internal compiler error' 就死了?

A:这有99%的可能是暗示了硬件问题。这通常可以通过在 CMOS 设置中加大等第状态的数值来解决。这几乎总是可以通过关闭 RAM 缓存来解决,虽然这也许是当它导致明显减慢时你最后的依靠。

另一个常见的原因是过热,尤其是在 CPU 超频的情况下。我已有几台机有这毛病好多年了,特别是在重负之下。如果 signal 11 的问题通常发生在机器运行了一阵之后,它应该就是跟温度有关。试一下打开机箱运行机器。如果这不起作用,就瞄准主板上的某个风扇。(我曾经用这个方法在一些使用 hot-running SCSI 硬盘的机器上,在其整个生命周期中如此运行)一个高质量的 CPU 风扇也会帮大忙的。如果你只有一个低功率的风扇/散热器的话,考虑把它换成 TennMax (http://www.TennMax.com)。用这中风扇...??????饶J绞刮业????P2-450 变得非常稳定)

想了解更多关于 signal 11 问题的原因及对策,请参看 http://www.bitwizard.nl/sig11/ 上 Signal 11 FAQ 的最新版本。

其法文译本可在如下地址找到:http://www.linux-france.com/article/sig11fr

Q28:我该如何改变(处理) ls 的颜色?

A:阅读 man 页,及 /etc/DIR_COLORS 文档。你可以通过任何你喜欢的方法来设置颜色,或者把它们全部都关闭。同时,你也可以复制 /etc/DIR_COLORS 到你的家目录,命名为 '.dir_colors' 通过逐个设定用户从而覆盖全局默认设置。

Q29:我用 "startx" 启动 X 而且它也工作了,但是我无法切换到虚拟终端。为什么?

A:在 Linux 文件模式下,你可以用 Alt-F1 到 Alt-F8 来切换虚拟终端。在 X 下,你得用 Ctrl-Alt-F1 到 Ctrl-Alt-F8。
另一组有用的秘密组合键是RightShift-PgUp/PgDown 来切换。(从零到若干几页是一个随机数字,取决于你的显示文本缓冲内存状态)

Q30:为什么我无法在 X 里用新的 ghostscript?

A:请确认 XAP1 盘上的 gs_x11.tgz 已被正确安装。

Q31:所有东西都不能工作了!该怎么办?

A:如果你看上去遇到了灾难性的失败(!),请检查 ftp.slackware.com 上 /pub/slackware 下的 FILE_LIST 文件与你硬盘内容的不同之处并确认你没有漏掉什么文件。

我也注意到了大多数关于 kernel panics 和系统挂起的问题报告来自只有4 MB 内存的人。如果你正属于这种情况,那么我建议你花点钱再加上4 MB。我用8 MB 的内存从来没有崩溃过。(除非我真的非常倒霉)
如果你不想那么做,浏览你的 /etc/rc.d/rc.* 文件并去除所有你不用的守护进程,像 crond, lpd 或者 selection。

如果你加了4 MB之后被警告说 "virtual memory exceeded in new',确认在运行 setup 前设置并激活了一个交换分区。如果你实在很难增加内存,你可以用 'editroot' 引导一张根磁盘来代替某个常用的引导内核。这会把软盘加载到根驱动器,你得从其它驱动器或者硬盘启动器进行安装。你或许也无法创建任何类型的引导盘,所以你必须安装 LILO 并冒一个险。我只建议不能用交换文件的人用此方法。

Q32:我如何用一个自制的内核做一张引导盘?

A:查看 ./kernels 子目录。你会在哪里发现关于如何做的全部说明。

Q33:当我刚刚装完 Slackware 的时候,系统可以发现我的 CD-ROM。但是但我尝试用 LILO或引导盘引导后系统就不再能找到 CD-ROM 驱动器了!怎么修复它?

A:问题的原因可能是你使用了包含你的 CD-ROM 驱动器支持的引导盘,但是你没有安装一个包含该支持的内核。

如果你准备尝试编译一个内核,你可以通过编译一个自制的内核(参看关于编译 Linux 内核的段落)从而很容易地解决问题,或者你也可以把 CD-ROM 的驱动作为内核模块来加载。你可以通过编辑 /etc/rc.d/rc.modules 文件在下次启动时为你的 CD-ROM 驱动器装载模块。

以下是该文件中装载 CD-ROM 驱动器模块的段落:

# These modules add CD-ROM drive support. Most of these drivers will probe
# for the I/O address and IRQ of the drive automatically if the parameters
# to configure them are omitted. Typically the I/O address will be specified
# in hexadecimal, e.g.: cm206=0x300,11
#
#/sbin/modprobe aztcd aztcd=<I/O address>
#/sbin/modprobe cdu31a cdu31a_port=<I/O address> cdu31a_irq=<interrupt>
#/sbin/modprobe cm206 cm206=<I/O address>,<IRQ>
#/sbin/modprobe gscd gscd=<I/O address>
#/sbin/modprobe mcd mcd=<I/O address>,<IRQ>
#/sbin/modprobe mcdx mcdx=<I/O address>,<IRQ>
#/sbin/modprobe optcd optcd=<I/O address>
# Below, this last number is "1" for SoundBlaster Pro, or "0" for a clone.
#/sbin/modprobe sbpcd sbpcd=<I/O address>,1
#/sbin/modprobe sonycd535 sonycd535=<I/O address>
#/sbin/modprobe sjcd sjcd=<I/O address>

如果你要使用其中某一项,删去你的 CD-ROM 驱动器那一行前面的 '#' 即可。如果你知道输入/输出地址和/或主板的 IRQ,把它填入该行。比如,假设你的 SoundBlaster CD-ROM 在 0x300 处,那么你可以把 sbpcd 那行改成这样:

/sbin/modprobe sbpcd sbpcd=0x300,1

如果你需要读取 CD-ROM 驱动器来安装模块软件包,用你安装系统时使用的引导盘进入系统。在 LILO 提示符处使用如下命令,但是把根设备名替换成你机器上使用的名称:

mount root=/dev/hda1

在你登入后,这样安装模块软件包:

installpkg /cdrom/slackware/a*/modules.tgz

Q34:我能用一个串口上的终端来安装吗?

A:是的,Slackware 引导盘包含了把系统终端放在一个串口上的支持。为了做到这一点,你得在引导盘的引导提示符处使用 console=ttyS0 或者 console=ttyS1(这是 COM1: 和 COM2: 的两个例子)作为额外参数。

比如说,为了在一个串口终端上进行安装,你要启动如 bare.i 的引导盘并等它到引导提示符处停下来。接下来输入如下命令来用 COM1 上的终端引导内核:

ramdisk console=ttyS0

为了从一个可引导并使用串口终端的 CD-ROM 来安装,在 "boot" 提示符处输入内核及串口的名称:

bare.i console=ttyS0

Q35:“总线错误”是什么意思?

A:这通常意味着你机器上的内存不够。看看你是否能设置一些交换空间或者一个交换文件──这样就能解决问题。

另外,LDP 的成员已经发布了一批极好的 Linux 手册。你可以在 metalab.unc.edu 上的 /pub/Linux/docs/LDP 下找到它们。

Patrick Volkerding
[email protected]

翻译:shadkong
[email protected]




欢迎转载,转载请保留译者信息,谢谢!
=================================================

这些都是人们经常问我的问题。希望它们在这里得到解答后不会再次被问到。

很多问题是很老的而且过时,但是我把它们留在这里是因为他们可能会给一些人提供解决相似问题的思路。同时,你也会发现其中的一些从其措辞来看不像是问题,而更像是尖叫着抱怨。嘿,我想要准确的描述。:^)

Q1:装完之后,我的以太网卡、CD-ROM 驱动器和/或其它我认为 Linux 能够支持的硬件不能工作。为什么?
Q2:无软驱安装本操作系统是否可能?
Q3:现在软盘上的 N 系列不合适,我该如何为我的膝上型电脑取得网络支持?
Q4:为什么我的索尼 CDU-31/33a 不再能被 Linux 检测到了?以前可以的!
Q5:内核不能识别一个与 Soundblaster 16 IDE 相连的 CD-ROM!
Q6:我用 RAWRITE 做的磁盘无法启动!
Q7:我能够很好的安装,但是装完的系统不能启动!
Q8:为什么我在 Slackware 下被告知“网络不可达”?
Q9:$%#@! 为什么我的 UltraStor SCSI 不能被检测到?在 DOS 下可以的!
Q10:如果 NFS 安装的安装菜单不能工作,我如何在开始安装之前动手设置网络?
Q11:我的 IBM Thinkpad 不能正确地把跟磁盘加载到 ramdisk,所以我不能安装 Linux。我该怎么办?
Q12:我的大(> 1/2 G) IDE 驱动器报告说多于16个头,因此 Linux 无法在上面安装。我该怎么办?
Q13:我怎么用我新采用的内核作一张 Slackware 引导盘?
Q14:我的退格键在X 下表现怪异?我如何修复它?
Q15:我构建了一个新内核。现在我该如何用这个新的 bzImage 文件替换已存在的内核?
Q16:为什么我不能从 elvis (vi) 中剪切粘贴到一个 xterm?
Q17:为什么我的总线鼠标不工作?内核、选择、X 服务器以及 text-mouse 都说“没有该设备。”
Q18:我看到我的 SoundBlaster/松下 CD-ROM 在引导时被检测到,但我不能从中安装或加载它。怎么办?
Q19:我用的是 UMSDOS 并且想让 Windows 与 Linux 使用同一个交换空间。应该怎么做?
Q20:安装盘上的 root 密码是什么?
Q21:Slackware Linux 发行版在我的机上装好后我怎么添加和删除软件?
Q22:我不知道 setup/pkgtool/installpkg 把哪些文件放到那里?
Q23:我把我的分区设置成为 "Linux native" 但是 Slackware 仍然无法检测到它们!我该怎么办?
Q24:我有一台 (PS/1 || Valuepoint || Thinkpad),由于 fdisk 不能认出我的硬盘而无法安装。我该怎么办?
Q25:为什么我的 /etc/issue 和 /etc/motd 总是在开机是重设置它们自身?
Q26:Emacs 卸载核心,提示说缺少库,或者没有 X 支持!
Q27:为什么我编译东西时提示 'signal 11: internal compiler error' 就死了?
Q28:我该如何改变(处理) ls 的颜色?
Q29:我用 "startx" 启动 X 而且它也工作了,但是我无法切换到虚拟终端。为什么?
Q30:为什么我无法在 X 里用新的 ghostscript?
Q31:所有东西都不能工作了!该怎么办?
Q32:我如何用一个自制的内核做一张引导盘?
Q33:当我刚刚装完 Slackware 的时候,系统可以发现我的 CD-ROM。但是但我尝试用 LILO或引导盘引导后系统就不再能找到 CD-ROM 驱动器了!怎么修复它?
Q34:我能用一个串口上的终端来安装吗?
Q35:“总线错误”是什么意思?

Q1:装完之后,我的以太网卡、CD-ROM 驱动器和/或其它我认为 Linux 能够支持的硬件不能工作。为什么?

A:也许你正在运行的内核不包含这些支持。为解决这个问题,你得安装一个包含这些支持的内核。那可能是 CD-ROM 上 /kernel 目录下的某个合适的内核,或者你可以自己为你的机器编译一个内核。这并不会很难──请看下面关于编译新内核的说明。

Q2:无软驱安装本操作系统是否可能?

A:是的!而且它一点儿也不难。

(注:第一次接触本方法的时候请看 rootdisks/install.zip)

首先,你将需要一个 DOS 分区。安装 Loadlin 到某个目录,比如 C:\LOADLIN (一个可用的ZIP 格式的 Loadlin 包位于 kernels/ 目录下)。你把 Loadlin 装上之后,需要复制一个 Linux 内核及一个 Slackware 安装器映像到 C:\LOADLIN 目录下。我们接下来就来描述这个过程:

你可以在 CD 上的 kernels/ 目录下找到许多内核。那些子目录有着和 Slackware 引导盘一样的名称,并包含了用于制作引导盘的内核。你可能需要参考 bootdisks 目录下的 README 文件来决定哪个内核将会在你的系统上运行得最好。一旦你选中了某个内核(zImage 或者 bzImage),把它复制到 C:\LOCALIN 目录下。然后,从 isolinux 目录下抓取安装器映像(叫做 “initrd.img”)并将该文件复制到你的 Loadlin 目录下。

现在,为了启动安装进程你得启动 DOS。如果你在运行 Windows95,在开始菜单里有个重新启动电脑进入到 MS-DOS 模式的选项。(注:如果你错过了以前你开机后可以自动进入 DOS 而要进 Windows 则需要键入 “win” 的好日子,很容易就可以把 Windows95 修正过来,让它再次那样子工作。编辑 C:\MSDOS.SYS 文件,把 BootGUI=1 改成 BootGUI=0)

启动了 DOS 之后,转到 Loadlin 目录并使用一个如下的命令来开始安装根磁盘:

loadlin zimage rw root=/dev/ram initrd=initrd.img loadramdisk=1

通常安装程序会从引导盘复制内核,因此当你使用这个方法的时候,你必须略过那个菜单,同样,也要略过制作引导盘的菜单。同时,略过 LILO 菜单也是明智的。因为 /vmlinuz 未必是你想要的。你最好的赌注是使用 Loadlin,因为是它把你带到这里来。编辑 LINUX.BAT 文件指向你的 Linux 根分区。

Q3:现在软盘上的 N 系列不合适,我该如何为我的膝上型电脑取得网络支持?

A:首先把 A 系列装上。然后,把 N 系列中的 tcpip.tgz 包放到一张软盘上。如果你的内核不包括网络支持,则把 netmods.tgz (网络内核模块)包放到另一张软盘上。如果你需要 PPP,则把 PPP包也放上。然后,(重启之后,不是从安装软盘重启)运行 “pkgtool”。选择 “install packages from floppy disks” 这一选项,安装 tcpip.tgz netmods.tgz 及 ppp.tgz 包。然后运行 netconfig 来设置你的网络,运行 pppsetup 来设置 PPP,编辑 /etc/rc.d/rc.modules 来为你的以太网卡加载支持。当你重启后,机器就有了网络能力了,而你则可以开始从网络上添加更多的软件。

Q4:为什么我的索尼 CDU-31/33a 不再能被 Linux 检测到了?以前可以的!

A:以下摘自源代码:

* * 警告 - 所有的自动检测已经被从驱动中移除。你必须通过在启动时或者在lilo.conf * * 里设定 LILO 来配置 CDU31A。在我的 lilo.conf 里有如下一行:
* *
* * append=”cdu31a=0x1f88,0,PAS”
* *
* * 第一个数字是这块卡的输入/输出基本地址。第二个数字是中断(0表示没有)。如果* * 在 Pro-Audio spectrum 上则第三个应该是 “PAS”,否则就没有。

你也可以在 Loadlin 中使用以下选项:

C:\LOADLIN\LOADLIN C:\LINUX\VMLINUZ root=/dev/hda1 cdu31a=0x1f88,0,PAS

或者,在引导盘 LILO: 提示符后使用以下选项,例如:

LILO: ramdisk cdu31a=0x1f88,0,PAS

LILO: mount root=/dev/sda1 cdu31a=0x1f88,0,PAS ro

Q5:内核不能识别一个与 Soundblaster 16 IDE 相连的 CD-ROM!

A:首先,确认你正在使用适当的内核──这种情况下需要的是 IDE/ATAPI CD-ROM 类型,而非 SBPCD 类型。然后,如果问题还是没有解决,那么使用第二个 IDE 通道(IRQ 15 0x170),并且确认驱动器被设置为主驱动器(背后的跳线)而非从属驱动器(通常这是默认选项)。

Q6:我用 RAWRITE 做的磁盘无法启动!

A:首先,检查你是否使用了大小正确的映像。如果你在1.2 MB 的软盘上使用1.44 MB 软盘的映像(或者反之亦然),你可能会看到“LI” 的信息,同时引导程序会挂起。

另一个可能是 BIOS 的问题──一位用户曾经向我报告 RAWRITE 在他的机器上失败除非他先在一张 MS-DOS 软盘上做“dir a:“。很明显这是由于 BIOS 不恰当地把地址 0000:0526 (扇区数)初始化做11 h 而不是12 h。在设备上用“dir” 可以修正该值。在本案中受影响的机器使用 Unicore Software 的“Mr. BIOS”。

Q7:我能够很好的安装,但是装完的系统不能启动!

A:Slackware 使用精简的内核来进行安装──换句话说,这些内核仅包含控制完成安装所需设备的驱动。如果你没有安装引导盘的内核,也许应该安装(比如说) bare.i IDE 引导盘,但是却从 A 系列中装了 SCSI 内核到硬盘。由于这个内核内建了许多 SCSI 驱动,如果有一块不常见的硬件或一个非标准的端口/IRQ 不能被内核正确识别的话,这将会导致引导时挂起。如果发生此事,你得尝试一个不同的内核。首先,使用在安装过程中正常工作的引导盘来启动你的系统。为了做到这一点,引导这张盘并在 LILO 提示符处输入如下命令:

mount root=/dev/sda2

(以上假设 /dev/sda2 是你的 Linux 根分区,否则使用你系统上适当的设备名)

一旦你的系统运行起来之后,安装或者编译一个不同的内核。

编译内核的说明可以在你的内核源代码目录下找到(如果你安装了内核源代码就会有的)。内核源代码通常可以在 /usr/src/linux 下找到。

简单说来,构建一个新内核的方法如下:

cd /usr/src/linux

make config (然而回答你所需要回答的问题)

make dep ; make clean ; make zImage

如果 zImage 构建成功,请看关于如何通过 LILO 或者 Loadlin 安装它的说明,或者做一张引导盘。

一旦你完成之后,你可以希望通过 cd'ing 到 /usr/src/linux 来整理它并再次做 'make clean'。

祝你好运!如果你能解决这个问题,那么你在你向一个 Linux 高手转变的道路上表现得非常好。

Q8:为什么我在 Slackware 下被告知“网络不可达”?

A:这有几种可能性。对大多数用户而言,在机箱外面的一切都运作良好。但是,如果你遇到了这个问题,这里有两个办法你可以尝试:

1、把 /etc/rc.d/rc.inet/ 里的 ifconfig 调用中的广播地址和子网掩码的参数(及其变量)对调。确认你没有尝试设定你自己的 IP 地址──你不该那么做。

2、确认 /etc/networks 被恰当地设置。

3、你也许想尝试 'netconfig' 脚本。

它并不完美,但工作却干得漂亮。

4、确认你所用的内核支持你的硬件。Slackware 提供的大多数内核包括一个 /boot/config 文件,你可以查看编译选项。

Q9:$%#@! 为什么我的 UltraStor SCSI 不能被检测到?在 DOS 下可以的!

A:把输入/输出地址设置成 0x340 而非 0x330。

遇到有硬件不能工作,一个好的规则就是在器上玩弄 IRQ 和输入/输出设置并观察有什么发生。比如你的系统启动了并能运行,而 CD-ROM 或者磁带或者其它类似东西,你总是可以在 /usr/src/linux/drivers... 下驱动程序源代码里找一找。真的,这不会令你上当的!通常,源代码里包含了重要的文档,比如该类设备默认的 IRQ 设置,以及在 /dev 里主要的入口数目。你也可以尝试另一张引导盘看看是否有效。

Q10:如果 NFS 安装的安装菜单不能工作,我如何在开始安装之前动手设置网络?

A:如果你的 Linux 及其在 /etc/exports 里的 hosts 中被列出(但并非整个网络),在开始安装之前,你可能需要做下列事情。通常只是当 NFS 服务器与你的 Linux 机器处于不同的子网掩码时才需要这么做:

# Setup the loopback device:
ifconfig lo 127.0.0.1
route add -net 127.0.0.0
# Setup the network:
ifconfig eth0 1.2.3.4 # 1.2.3.4 是我的机器的 IP 地址。
route add -net 1.2.3.0
route add default gw 1.2.3.1 # 在这个例子中,我们的 NFS 服务器 ip 地址为
# 1.2.31.4 且属于不同的网络。

Q11:我的 IBM Thinkpad 不能正确地把跟磁盘加载到 ramdisk,所以我不能安装 Linux。我该怎么办?

A:某些旧的 Thinkpad 的磁盘转换扇区的工作有点不同。这可以通过在引导时指定 "floppy=thinkpad" 来解决:

boot: ramdisk floppy=thinkpad

……在引导盘的 LILO 提示符处。

Q12:我的大(> 1/2 G) IDE 驱动器报告说多于16个头,因此 Linux 无法在上面安装。我该怎么办?

A:查看 /docs/mini/Large-IDE 文件,有关于如何解决这个问题的说明。(感谢 Bob DiMarco 把此问题报告给我,也感谢 Prtrick LoPresti 第一个编译信息)

注:较新的内核 (> 1.1.40) 将会自动为你完成此一翻译,因此多余的工作是不必要的。

Q13:我怎么用我新采用的内核作一张 Slackware 引导盘?
A:好,你选中一个已存在的内核(宁可找个大点的如 "scsinet.s"),把它放到一张软盘上,然后这么做:

mount /dev/fd0 /mnt (加载它)
cat zImage > /mnt/vmlinuz (令新内核就位)
rdev -R /mnt/vmlinuz 0 (加载为可读写)
rdev /mnt/vmlinuz /dev/fd0u1440 (使用这个驱动器,或者 /dev/fd0h1200)
rdev -r /mnt/vmlinuz 49152 (令 ramdisk 可用)
lilo -r /mnt (重装 lilo)
umount /mnt (好了!你成功了!:^)

Q14:我的退格键在X 下表现怪异?我如何修复它?
A:我尚未真正见过此一问题。但我偶尔听到它。你也许可以尝试在 /usr/X11/lib/X11/xinit 下或者 $HOME 下的 .Xmodmap 里加入:

keycode 22=BackSpace

Q15:我构建了一个新内核。现在我该如何用这个新的 bzImage 文件替换已存在的内核?

A:首先,你必须准备新的内核。如果你正在使用 UMSDOS,你会希望你的系统引导成可读写。否则,你将希望它被引导成只读以便你的文件系统得到安全的检查。所以,这么做:

rdev -R bzImage 0

对于其它文件系统:

rdev -R bzImage 1

然后,你需要设置根分区。比如说,如果你的 Linux 根分区是 /dev/hda2,你需要这么做:

rdev bzImage /dev/hda2

然后,如果你喜欢可以设置显示模式。以下例子是设置成80x25普通终端模式:

rdev bzImage -1

其它模式包括:-3 = 提示符,-2 = 扩展 VGA。如果你使用 LILO 而且想试试扩展图象模式,那么你就要把 /etc/lilo.conf 里强制成为普通模式的那一行删去。接下来,你要安装内核。如果你从软盘引导,你可以简单地把一张格式化过的软盘插入软驱,然后这样写入 bzImage:

cat bzImage > /dev/fd0

如果你使用 lilo,你得把 bzImage 复制到你的 lilo.conf 希望它所在的位置(也许是 /vmlinuz)并重装 lilo。如果你用 Slackware 的 liloconf 脚本这同样会奏效的。(这是 setup 使用的脚本)

cp bzImage /vmlinuz ; lilo

你得先备份你原来的 /vmlinuz。

如果你使用 Loadlin,把内核复制到 Loadlin 可见的 DOS 分区(如过你使用 UMSDOS,就不必这么做)。然后像这样从 DOS 启动 Linux:

c:\loadlin\loadlin.exe c:\linux\vmlinuz root=/dev/hda2

那会有效的。

Q16:为什么我不能从 elvis (vi) 中剪切粘贴到一个 xterm?

A:最近的 elvis 用鼠标来代替游标位置。如果你想剪切粘贴,那么请在你使用鼠标的同时按住左 shift 键。

Q17:为什么我的总线鼠标不工作?内核、选择、X 服务器以及 text-mouse 都说“没有该设备。”

A:伴随 Slackware 一起发布的内核都没有包含总线鼠标的驱动。近来我尝试把它们包括进来但是却有严重的驱动程序冲突──所以如果它们无法与其它驱动共存的话最好还是把它们留在外面。要我提供包括全部总线鼠标驱动的各个版本的预编译内核显然是不合理的。我只有一台386。;^)

(我开玩笑的,在1999年3月份的时候,我正用着一台 P2-450)

解决方案是从内核模块中加载你的鼠标支持。编译 /etc/rc.d/rc.modules,取消你的鼠标行前面的注释:

# Mouse support:
# /sbin/modprobe atixlmouse
# /sbin/modprobe busmouse
# /sbin/modprobe msbusmouse

(为了取消一个 shell 脚本的注释行,你可以用一个文本编辑器删掉该行开始处的 '#')

Q18:我看到我的 SoundBlaster/松下 CD-ROM 在引导时被检测到,但我不能从中安装或加载它。怎么办?

A:尝试把驱动器号设置为0.安装盘希望这样。在驱动器的背后应该会有用来设置它的跳线──把它移到 leftmost 的位置。

Q19:我用的是 UMSDOS 并且想让 Windows 与 Linux 使用同一个交换空间。应该怎么做?

A:如果你想让 Linux-UMSDOS 与 Windows 共享交换文件,你可以这么做:

1、创建一个 NNNN 千字节的永久交换文件。
2、在 /etc/rc.d/rc.local 里加入如下行:

rm -f /DOS/windows/spart.par <---用来镇压下次启动时 Windows 的抱怨!
mkswap /DOS/386spart.par NNNN
sync
swapon /DOS/386spart.par

3、在 /etc/rc.d/rc.0 文件里加入 "swapof"。

Q20:安装盘上的 root 密码是什么?

A:没有 root 密码。如果你被要求输入,通常是因为你用来安装的内存不够。

为了解决这个问题,查看你的 CMOS 设置并确认没有打开 ROM 屏蔽。ROM 屏蔽浪费内存且不会提高 Linux 的性能。同时确保你所用的是能够使用的最小的引导盘。比如说,你不是从 NFS 安装到 SCSI 驱动器你不必使用 "scsinet"。使用小一点的东西── 如果可以的话就用 "bare" 磁盘。有人误以为如果它们想在安装完成后使用网络的话就要使用带网络驱动的引导盘。不是这样的!引导盘上包含的东西与你在安装后所能使用的东西没有任何冲突──几乎在所有的情况下你都不需要在安装后的系统上运行与你进行安装时相同的内核。

Q21:Slackware Linux 发行版在我的机上装好后我怎么添加和删除软件?

A:为了删除软件包,输入 "pkgtool" 然后根据提示来做。 pkgtool 也可以让你从当前目录中添加软件包。

更好的安装软件方法是用 "setup" 脚本。当你完成了初次安装之后,setup 把它自己的一个副本放到你的 /sbin 目录下以便将来再用。如果你确实愿意的话,你也可以通过引导盘或者安装盘来添加软件。

如果是通过 NFS 来给一个运行中的系统添加软件的话,你最好手动加载分区并使用 setup 的 'install from a mounted directory' 的功能。还有一些命令行工具可以让你创建、添加和删除软件包。你可以看 manpages: installpkg(8), removepkg(8), makepkg(8), explodepkg(8)。下面是如何用 installpkg 来安装软件包的一个简单例子:

instalpkg package.tgz

Q22:我不知道 setup/pkgtool/installpkg 把哪些文件放到那里?

A:查看 /var/adm/packages。

类似的,你可以在 /var/adm/scripts 里找到每个包的安装脚本。

Q23:我把我的分区设置成为 "Linux native" 但是 Slackware 仍然无法检测到它们!我该怎么办?

A:这个问题比较少见,我还不清楚是什么引起的。

[ 我发现这与 IBM PS/1, Thinkpad 及类似机器上的检测不到硬盘的问题不同。如果你有这些机器的话,fdisk 会产生问题,在下面会提到 :^) ]

通过以下方法你仍然可以进行安装:

1、通过一张引导盘启动 text.gz。
2、为 Linux 创建并格式化分区。
3、把目标分区挂载到 /mnt 下。
4、键入 "setup -target_mounted"
5、参照安装说明的余下部分进行安装。
6、键入 "vi /mnt/etc/fstab" 并输入一个适当的 fstab。
以我的 fstab 文件内容为例:

/dev/hdb2 swap swap defaults
/dev/hda2 / ext2 defaults
/dev/hda3 /usr xiafs defaults
/dev/hda1 /dos msdos defaults
/dev/hdb1 /os2 msdos defaults
none /proc proc defaults

下面略做说明:第一部分是所需要挂载的分区,第二部分是指定它应被挂载到哪里,第三部分是文件系统,最后一个部分是使用选项。除非你是 Linux 专家,否则把它设置为 "defaults"。

其它需要知道的事情:

确认你在把其它分区挂到根分区下之前已列出根分区。
加入 /proc 这样一行,否则 "ps", "w" 等将无效。
在最后插入一个空行是个好主意,因为曾经有人向我报告说最后一行列出的分区不能被加载。

7、当你创建并保存此文件后,你就可以按 ctrl-alt-delet 来重启了。

Q24:我有一台 (PS/1 || Valuepoint || Thinkpad),由于 fdisk 不能认出我的硬盘而无法安装。我该怎么办?

A:你需要在引导盘的提示符处输入你的硬盘参数。你也可以通过在第一个参数后使用第二个 hd= 参数来指定第二个 IDE 驱动器的几何性质。

在你启动了引导盘之后,你会发现有更多的在 LILO 提示符出传递你的硬盘参数到内核使之能够被识别的格式信息。

如果你希望 LILO 能工作,你得编辑 lilo.conf 文件,加入一行类似于 hd= flag。把如下一行加入到该文件的开头处:

append="hd=cyl,hds,secs"

"cyl", "hds",及 "secs" 分别是该驱动器上 cylinders,sectors,及 heads 的数值。

如果你有两个 IDE 驱动器,(像这样)指定它们:

append="hd=967,13,31 hd=944,14,40"

Q25:为什么我的 /etc/issue 和 /etc/motd 总是在开机是重设置它们自身?

A:是 /etc/rc.d/rc.S 在你开机后测得你当前正在运行的内核后设置它们──除非在登入处显示的内核版本不再是当前版本了。

如果你想自己来写 /etc/issue 和 /etc/motd,你可以注释掉 /etc/rc.d/rc.S 中的这部分。

Q26:Emacs 卸载核心,提示说缺少库,或者没有 X 支持!
A:GNU Emacs 系列包括一个你可以选择的带 X11 支持的或不带 X11 支持的版本。确认你的机器上有一个正确的二进制文件。

包含 X11 的二进制文件将被作为第一张光盘上某个软件包的一部分被安装,它是否会被安装取决于你是否需要 X11 支持。如果你不需要 X11 支持,安装最后一张盘上 Emacs 系列中的 "emac_nox.tgz" 就可以了。

Q27:为什么我编译东西时提示 'signal 11: internal compiler error' 就死了?

A:这有99%的可能是暗示了硬件问题。这通常可以通过在 CMOS 设置中加大等第状态的数值来解决。这几乎总是可以通过关闭 RAM 缓存来解决,虽然这也许是当它导致明显减慢时你最后的依靠。

另一个常见的原因是过热,尤其是在 CPU 超频的情况下。我已有几台机有这毛病好多年了,特别是在重负之下。如果 signal 11 的问题通常发生在机器运行了一阵之后,它应该就是跟温度有关。试一下打开机箱运行机器。如果这不起作用,就瞄准主板上的某个风扇。(我曾经用这个方法在一些使用 hot-running SCSI 硬盘的机器上,在其整个生命周期中如此运行)一个高质量的 CPU 风扇也会帮大忙的。如果你只有一个低功率的风扇/散热器的话,考虑把它换成 TennMax (www.TennMax.com)。在我这里使用这种风扇的效果效果非常棒。(一个双风扇模式使我的 P2-450 变得非常稳定)

想了解更多关于 signal 11 问题的原因及对策,请参看 http://www.bitwizard.nl/sig11/ 上 Signal 11 FAQ 的最新版本。

其法文译本可在如下地址找到:http://www.linux-france.com/article/sig11fr

Q28:我该如何改变(处理) ls 的颜色?

A:阅读 man 页,及 /etc/DIR_COLORS 文档。你可以通过任何你喜欢的方法来设置颜色,或者把它们全部都关闭。同时,你也可以复制 /etc/DIR_COLORS 到你的家目录,命名为 '.dir_colors' 通过逐个设定用户从而覆盖全局默认设置。

Q29:我用 "startx" 启动 X 而且它也工作了,但是我无法切换到虚拟终端。为什么?

A:在 Linux 文件模式下,你可以用 Alt-F1 到 Alt-F8 来切换虚拟终端。在 X 下,你得用 Ctrl-Alt-F1 到 Ctrl-Alt-F8。
另一组有用的秘密组合键是RightShift-PgUp/PgDown 来切换。(从零到若干几页是一个随机数字,取决于你的显示文本缓冲内存状态)

Q30:为什么我无法在 X 里用新的 ghostscript?

A:请确认 XAP1 盘上的 gs_x11.tgz 已被正确安装。

Q31:所有东西都不能工作了!该怎么办?

A:如果你看上去遇到了灾难性的失败(!),请检查 ftp.slackware.com 上 /pub/slackware 下的 FILE_LIST 文件与你硬盘内容的不同之处并确认你没有漏掉什么文件。

我也注意到了大多数关于 kernel panics 和系统挂起的问题报告来自只有4 MB 内存的人。如果你正属于这种情况,那么我建议你花点钱再加上4 MB。我用8 MB 的内存从来没有崩溃过。(除非我真的非常倒霉)
如果你不想那么做,浏览你的 /etc/rc.d/rc.* 文件并去除所有你不用的守护进程,像 crond, lpd 或者 selection。

如果你加了4 MB之后被警告说 "virtual memory exceeded in new',确认在运行 setup 前设置并激活了一个交换分区。如果你实在很难增加内存,你可以用 'editroot' 引导一张根磁盘来代替某个常用的引导内核。这会把软盘加载到根驱动器,你得从其它驱动器或者硬盘启动器进行安装。你或许也无法创建任何类型的引导盘,所以你必须安装 LILO 并冒一个险。我只建议不能用交换文件的人用此方法。

Q32:我如何用一个自制的内核做一张引导盘?

A:查看 ./kernels 子目录。你会在哪里发现关于如何做的全部说明。

Q33:当我刚刚装完 Slackware 的时候,系统可以发现我的 CD-ROM。但是但我尝试用 LILO或引导盘引导后系统就不再能找到 CD-ROM 驱动器了!怎么修复它?

A:问题的原因可能是你使用了包含你的 CD-ROM 驱动器支持的引导盘,但是你没有安装一个包含该支持的内核。

如果你准备尝试编译一个内核,你可以通过编译一个自制的内核(参看关于编译 Linux 内核的段落)从而很容易地解决问题,或者你也可以把 CD-ROM 的驱动作为内核模块来加载。你可以通过编辑 /etc/rc.d/rc.modules 文件在下次启动时为你的 CD-ROM 驱动器装载模块。

以下是该文件中装载 CD-ROM 驱动器模块的段落:

# These modules add CD-ROM drive support. Most of these drivers will probe
# for the I/O address and IRQ of the drive automatically if the parameters
# to configure them are omitted. Typically the I/O address will be specified
# in hexadecimal, e.g.: cm206=0x300,11
#
#/sbin/modprobe aztcd aztcd=<I/O address>
#/sbin/modprobe cdu31a cdu31a_port=<I/O address> cdu31a_irq=<interrupt>
#/sbin/modprobe cm206 cm206=<I/O address>,<IRQ>
#/sbin/modprobe gscd gscd=<I/O address>
#/sbin/modprobe mcd mcd=<I/O address>,<IRQ>
#/sbin/modprobe mcdx mcdx=<I/O address>,<IRQ>
#/sbin/modprobe optcd optcd=<I/O address>
# Below, this last number is "1" for SoundBlaster Pro, or "0" for a clone.
#/sbin/modprobe sbpcd sbpcd=<I/O address>,1
#/sbin/modprobe sonycd535 sonycd535=<I/O address>
#/sbin/modprobe sjcd sjcd=<I/O address>

如果你要使用其中某一项,删去你的 CD-ROM 驱动器那一行前面的 '#' 即可。如果你知道输入/输出地址和/或主板的 IRQ,把它填入该行。比如,假设你的 SoundBlaster CD-ROM 在 0x300 处,那么你可以把 sbpcd 那行改成这样:

/sbin/modprobe sbpcd sbpcd=0x300,1

如果你需要读取 CD-ROM 驱动器来安装模块软件包,用你安装系统时使用的引导盘进入系统。在 LILO 提示符处使用如下命令,但是把根设备名替换成你机器上使用的名称:

mount root=/dev/hda1

在你登入后,这样安装模块软件包:

installpkg /cdrom/slackware/a*/modules.tgz

Q34:我能用一个串口上的终端来安装吗?

A:是的,Slackware 引导盘包含了把系统终端放在一个串口上的支持。为了做到这一点,你得在引导盘的引导提示符处使用 console=ttyS0 或者 console=ttyS1(这是 COM1: 和 COM2: 的两个例子)作为额外参数。

比如说,为了在一个串口终端上进行安装,你要启动如 bare.i 的引导盘并等它到引导提示符处停下来。接下来输入如下命令来用 COM1 上的终端引导内核:

ramdisk console=ttyS0

为了从一个可引导并使用串口终端的 CD-ROM 来安装,在 "boot" 提示符处输入内核及串口的名称:

bare.i console=ttyS0

Q35:“总线错误”是什么意思?

A:这通常意味着你机器上的内存不够。看看你是否能设置一些交换空间或者一个交换文件──这样就能解决问题。

另外,LDP 的成员已经发布了一批极好的 Linux 手册。你可以在 metalab.unc.edu 上的 /pub/Linux/docs/LDP 下找到它们。

Patrick Volkerding
[email protected]

翻译:shadkong
[email protected]

月下刀客 发表于 2005-10-25 14:23:42

shadkong辛苦 8)

shadkong 发表于 2005-10-25 15:42:37

:-)
多谢刀兄加精。

月下刀客 发表于 2005-10-25 22:27:22

很想弄弄Slackware,fox说它如何如何好 :lol:
页: [1]
查看完整版本: Slackware 的 FAQ(非官方中译本)